<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Developer&#8217;s Notes</title>
	<atom:link href="https://bthemad.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://bthemad.wordpress.com</link>
	<description>WebGeekStuff</description>
	<lastBuildDate>Tue, 20 Sep 2011 19:59:55 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<site xmlns="com-wordpress:feed-additions:1">2584638</site><cloud domain='bthemad.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>https://s2.wp.com/i/webclip.png</url>
		<title>Developer&#8217;s Notes</title>
		<link>https://bthemad.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="https://bthemad.wordpress.com/osd.xml" title="Developer&#039;s Notes" />
	<atom:link rel='hub' href='https://bthemad.wordpress.com/?pushpress=hub'/>
	<item>
		<title>Конфиги для bash</title>
		<link>https://bthemad.wordpress.com/2010/06/16/bash-config-files-layout/</link>
					<comments>https://bthemad.wordpress.com/2010/06/16/bash-config-files-layout/#respond</comments>
		
		<dc:creator><![CDATA[bthemad]]></dc:creator>
		<pubDate>Tue, 15 Jun 2010 21:50:55 +0000</pubDate>
				<category><![CDATA[development]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[shell]]></category>
		<guid isPermaLink="false">http://bthemad.wordpress.com/2010/06/16/%d0%ba%d0%be%d0%bd%d1%84%d0%b8%d0%b3%d0%b8-%d0%b4%d0%bb%d1%8f-bash/</guid>

					<description><![CDATA[Практически у каждого гуманоида, обреченного возиться с консолью, есть набор конфигурационных файлов, который собирается годами и содержит мудрость предков и пыль веков. И каждый неофит, постигший необходимость настройки bash под свои нужды, прежде всего стучится в гугл и тратит достаточно большое количество времени на чтение чужих конфигов. Огромное число их можно откопать на GitHub. Есть [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Практически у каждого гуманоида, обреченного возиться с консолью, есть набор конфигурационных файлов, который собирается годами и содержит мудрость предков и пыль веков. И каждый неофит, постигший необходимость настройки bash под свои нужды, прежде всего стучится в гугл и тратит достаточно большое количество времени на чтение чужих конфигов.<br />
Огромное число их можно откопать на <a href="http://github.com/search?q=dotfiles">GitHub</a>. Есть даже <a href="http://dotfiles.org/">специальный сайт</a>, где сложено 1474 (на данный момент) конфиг-файла (там правда все в кучу .vimrc, .bashrc, .zshrc и т.д.).<br />
Но в хранении конфигов есть один тонкий момент, с которым приходится сталкиваться любому, кто растит их некоторое время. Во-первых, они становятся довольно объемными и, следовательно, трудно поддерживаемыми, а во-вторых, часты бывают нужны разные настройки для разных машин.<br />
Если обратиться к интернетам в поисках мудрости, то довольно часто рекомендуют простейший расклад, когда создается три файла:</p>
<pre><code>
aliases - разные удобные сокращения (alias lsa='ls -lha')
config  - настройки самого bash (export HISTSIZE=10000)
env     - настройки среды окружения (export LANG=en_EN.UTF-8)
</code></pre>
<p>Плюс еще пара файлов, которые это все загружают: bashrc и bash_profile<br />
Данное решение нацелено на структуризацию и просто предлагает не сваливать все в кучу, а как-то разнести по темам. В принципе, это лучше, чем один .bashrc на 1500 строк.<br />
Но проблема того, что на linux-сервере нам совершенно невозможно иметь TextMate, который стоит редактором по-умолчанию на mac-машине остается в силе, не говоря уже о различных PATH-переменных окружения, которые могут внести некоторую путаницу.<br />
При этом я предполагаю, что мы храним все где-то в системе контроля версий на удаленном сервере (я храню на <a href="http://github.com/bthemad/dotfiles">GitHub</a>) и используем на каждой машине, где нам выдают шелл. Можно поколдовать с .gitignore и не пушить в репозиторий host-specific файлы, но не хочется их разом потерять вместе с внезапно сгоревшим хардом. Поэтому я решил немного допилить напильником изначальный расклад и вот, что получилось:</p>
<pre><code>
aliases         - общие aliases
config          - общий config 
hostname        - директория для host-specific файлов
    server-1    - очень боевой сервер
    dev-1       - сильно разработческая машина
platform        - директория для platform-specific файлов
    darwin      - все, что относится к миру mac
    linux       - все, что относится к миру суровых linux
scripts         - директория со вспомогательными скриптами
bashrc          - файл, который подгружает весь этот зоопарк
</code></pre>
<p>В самом bashrc есть только загрузка нужных файлов, выглядит это так:</p>
<pre><code>
droot=~/.dotfiles/bash

# Load common files
. ${droot}/config
. ${droot}/aliases

# Load platform-specific shortcuts
platform=`uname | awk '{print tolower($0)}'`
if [ -f ${droot}/platform/${platform} ]; then
    . ${droot}/platform/${platform}
fi

# Load machine-specific files, if presented
hostname=`hostname -s`
if [ -f ${droot}/hostname/${hostname} ]; then
    . ${droot}/hostname/${hostname}
fi
</code></pre>
<p>Теперь можно продолжать наращивать парк серверов и не бояться, что конфиги для bash распухнут до полной неюзабельности. А я, тем временем, все еще посматриваю в сторону zsh и все надеюсь как-нибудь перебраться на него в качестве каждодневного шелла.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://bthemad.wordpress.com/2010/06/16/bash-config-files-layout/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">323</post-id>
		<media:content url="https://1.gravatar.com/avatar/406218fe0699297a63e1de9b71792b0a0208f3a1d4869490cfa8a5f85a485d30?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">BTheMad</media:title>
		</media:content>
	</item>
		<item>
		<title>Изучаем Computer Science в MIT, Berkley, Stanford, etc.</title>
		<link>https://bthemad.wordpress.com/2010/06/03/study-computer-science-in-mit-berkley-stanford/</link>
					<comments>https://bthemad.wordpress.com/2010/06/03/study-computer-science-in-mit-berkley-stanford/#comments</comments>
		
		<dc:creator><![CDATA[bthemad]]></dc:creator>
		<pubDate>Thu, 03 Jun 2010 04:57:49 +0000</pubDate>
				<category><![CDATA[development]]></category>
		<category><![CDATA[lifehack]]></category>
		<guid isPermaLink="false">http://bthemad.wordpress.com/2010/06/03/%d0%b8%d0%b7%d1%83%d1%87%d0%b0%d0%b5%d0%bc-computer-science-%d0%b2-mit-berkley-stanford-etc/</guid>

					<description><![CDATA[Образование 2.0 Как-то так сложилось, что программирование я изучал по книжкам и интернетам. Мне кажется, что это довольно распространенная практика, учитывая культ высшего образования в нашей стране и слабые представления абитуриентов о том, чем они хотят заниматься в дальнейшем. Есть, конечно, люди, которые выбирают себе увлечение в 10 лет и спокойно развиваются в выбранном направлении, [&#8230;]]]></description>
										<content:encoded><![CDATA[<h3>Образование 2.0</h3>
<p>Как-то так сложилось, что программирование я изучал по книжкам и интернетам. Мне кажется, что это довольно распространенная практика, учитывая культ высшего образования в нашей стране и слабые представления абитуриентов о том, чем они хотят заниматься в дальнейшем. Есть, конечно, люди, которые выбирают себе увлечение в 10 лет и спокойно развиваются в выбранном направлении, но таких меньшинство.<br />
Программинг&nbsp;&mdash; штука очень многогранная с большим количеством уровней абстракции и возможностями для саморазвития. Т.е. учиться программированию можно спокойно всю жизнь и все равно узнавать что-то новое. В какой-то момент на собеседовании выпускник Гарварда попросил меня решить одну задачку, а после того, как я не смог предоставить ему решение, объяснил, что надо было использовать модифицированный алгоритм Дейкстры. Тогда я понял, что в моем книжно-интернетном образовании есть провалы =).<br />
Книги по околокомпьютерам я читаю постоянно, но ни одна из них не претендует на фундаментальность. Именно эта фундаментальность закладывается в университетских курсах, о которых я сегодня кратко расскажу.<br />
Все началось с того, что где-то я наткнулся на сайт <a href="http://www.academicearth.org/">Academic Earth</a>, на котором собраны записи с лекций в ведущих американских ВУЗах. Погуглив эту тему вглубь, я понял, что в америках давно существует практика выкладывания этих самых лекций и прочего сопроводительного материала в глобальную сеть, надо просто знать, где искать. Потом я вспомнил, что в iTunes есть раздел <a href="http://deimos3.apple.com/indigo/main/main.xml">iTunesU</a>, где оказались все те же лекции, только их там намного удобнее смотреть. Поэтому я здесь выложу подборку того, что мне показалось интересным со ссылками на оба источника, а вы сами решайте что по вам лучше. Сразу скажу, что все это курсы базового уровня, которые призваны устранить именно пробелы и дать немного пищи для размышлений. К сожалению, продвинутые курсы никто не расшаривает, чтобы люди не переставали платить деньги =)</p>
<h3>MIT</h3>
<p><strong>Introduction to Computer Science and Programming</strong><br />
Раньше в качестве введения в программирование там читали легендарный <a href="http://mitpress.mit.edu/sicp/">Structure and Interpretation of Computer Programs</a> и Scheme давали в качестве первого языка. Сейчас используют Python, и читают курс пара мужиков, один очень веселый и интересные, а второй суровый и я от него засыпаю.<br />
<a href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/">Страничка с материалами к курсу</a><br />
<a href="http://www.academicearth.org/courses/introduction-to-computer-science-and-programming">AcademicEarth</a><br />
<a href="http://deimos3.apple.com/WebObjects/Core.woa/Browse/mit.edu.2394447485">iTunesU</a></p>
<p><strong>Introduction to Algorithms</strong><br />
Тем, кто уже прочел Осла или Кнута этот курс не даст ничего нового, но остальным может пригодиться как популярное введение в классические алгоритмы<br />
<a href="http://www.academicearth.org/courses/introduction-to-algorithms">AcademicEarth</a><br />
<a href="http://deimos3.apple.com/WebObjects/Core.woa/Browse/mit.edu.1298167185.01856524955">iTunesU</a></p>
<p>MIT выкладывает, по-моему, больше всех курсов, полный список можно найти <a href="http://ocw.mit.edu/courses/">здесь</a>.</p>
<h3>Stanford</h3>
<p><strong>CS106a Programming Methodology</strong><br />
Курс для тех, кто в глаза не видел программирования, но уже знает как включать компьютер. Примечательно, что курс идет на Java и, в принципе, в конце там довольно приличные приложения пишутся. Ведет очень веселый индус, которого позитивно смотреть за завтраком.<br />
<a href="http://www.academicearth.org/courses/programming-methodology">AcademicEarth</a><br />
<a href="http://deimos3.apple.com/WebObjects/Core.woa/Browse/itunes.stanford.edu.1615329425">iTunesU</a></p>
<p><strong>CS106b Programming Abstractions</strong><br />
Это уже посерьезнее, там C++ и довольно нескучная тетка. Является логическим продолжением предыдущего курса.<br />
<a href="http://www.academicearth.org/courses/programming-abstractions">AcademicEarth</a><br />
<a href="http://deimos3.apple.com/WebObjects/Core.woa/Browse/itunes.stanford.edu.1616924949">iTunesU</a></p>
<p><strong>CS107 Programming Paradigms</strong><br />
Последний из CS курсов, доступных от Stanford, самый продвинутый. Но даже в нем не обсуждают еще Design Patterns.<br />
<a href="http://www.academicearth.org/courses/programming-paradigms">AcademicEarth</a><br />
<a href="http://deimos3.apple.com/WebObjects/Core.woa/Browse/itunes.stanford.edu.1617348111">iTunesU</a></p>
<p>Stanford лучше всех подходит к выкладыванию дополнительных материалов. Вот <a href="http://see.stanford.edu/see/courses.aspx">здесь</a> можно найти прямо целые архивы со всем необходимым чтивом, исходниками и даже стенограммами лекций(!), которые пригодятся по мере выполнения домашних заданий.</p>
<h3>Berkley</h3>
<p>До этих курсов я пока не добрался, но в списке они у меня есть, поэтому кратко:<br />
<strong>The Structure and Interpretation of Computer Programs</strong><br />
Это курс по той самой легендарной книжке, от которой отказались в MIT. Хотя я бы рекомендовал смотреть оригинальные записи с их лекций, благо они доступны на их сайте.<br />
<a href="http://www.academicearth.org/courses/the-structure-and-interpretation-of-computer-programs">AcademicEarth</a><br />
<a href="http://deimos3.apple.com/WebObjects/Core.woa/Browse/berkeley.edu.1621506930">iTunesU</a></p>
<p><strong>Operating Systems and System Programming</strong><br />
Курс по системному программированию, для общего развития<br />
<a href="http://www.academicearth.org/courses/operating-systems-and-system-programming">AcademicEarth</a><br />
<a href="http://deimos3.apple.com/WebObjects/Core.woa/Browse/berkeley.edu.1622384617">iTunesU</a></p>
<p><strong>Data Structures</strong><br />
Курс по классическим структурам данных.<br />
<a href="http://www.academicearth.org/courses/data-structures">AcademicEarth</a><br />
<a href="http://deimos3.apple.com/WebObjects/Core.woa/Browse/berkeley.edu.1623318133">iTunesU</a></p>
<p>Какие-то из этих курсов пересекаются и стоит просто посмотреть на лекторов и выбрать того, кто лучше воспринимается. Обратите внимание, что в iTunesU собрались лекции за несколько лет и если в последнем году каких-то лекций не хватает, можно стащить их из прошлых лент.</p>
<p>На хабре проскакивала <a href="http://habrahabr.ru/blogs/edu_2_0/80059/">статья</a>, где автор тоже собирал множество ссылок на разные источники знаний. Ну а для разгрузки,  я хотел бы еще порекомендовать смотреть на <a href="http://www.youtube.com/user/GoogleTechTalks">YouTube Google Tech Talks</a>, где участвуют приглашенные ораторы и рассказывают много интересных вещей.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://bthemad.wordpress.com/2010/06/03/study-computer-science-in-mit-berkley-stanford/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">317</post-id>
		<media:content url="https://1.gravatar.com/avatar/406218fe0699297a63e1de9b71792b0a0208f3a1d4869490cfa8a5f85a485d30?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">BTheMad</media:title>
		</media:content>
	</item>
		<item>
		<title>Последний из Things, The Hit List и OmniFocus</title>
		<link>https://bthemad.wordpress.com/2010/06/03/things-the-hit-list-and-omnifocus-last-one/</link>
					<comments>https://bthemad.wordpress.com/2010/06/03/things-the-hit-list-and-omnifocus-last-one/#comments</comments>
		
		<dc:creator><![CDATA[bthemad]]></dc:creator>
		<pubDate>Thu, 03 Jun 2010 03:35:08 +0000</pubDate>
				<category><![CDATA[gtd]]></category>
		<category><![CDATA[lifehack]]></category>
		<category><![CDATA[lyrics]]></category>
		<category><![CDATA[mac]]></category>
		<guid isPermaLink="false">http://bthemad.wordpress.com/?p=314</guid>

					<description><![CDATA[OmniFocus OmniFocus&#160;&#8212; это тяжелая артиллерия в рядах таск-менеджеров. Когда начал барахлить THL, и я подумал, что надо бы мигрировать куда-то я подумал про него. Потом нашел скрипт, который импортировал все таски из THL (в plain-виде, т.е. без иерархий) и потратил пару часов на то, чтобы воссоздать дерево проектов и списков. Получилось красиво и серьезно. Дальше [&#8230;]]]></description>
										<content:encoded><![CDATA[<h3>OmniFocus</h3>
<p>OmniFocus&nbsp;&mdash; это тяжелая артиллерия в рядах таск-менеджеров. Когда начал барахлить THL, и я подумал, что надо бы мигрировать куда-то я подумал про него. Потом нашел скрипт, который импортировал все таски из THL (в plain-виде, т.е. без иерархий) и потратил пару часов на то, чтобы воссоздать дерево проектов и списков. Получилось красиво и серьезно. Дальше я повспоминал то, что слышал про него во всяких <a href="http://macpowerusers.com/">MacPowerUsers</a> и отправился <a href="http://www.screencastsonline.com/index_files/SCO0178-omnifocusbasics.php">смотреть</a> <a href="http://www.screencastsonline.com/index_files/SCO0180-omnifocuspt2.php">скринкасты</a> все с тем же шотландским акцентом. На это ушло еще пара часов. И вот спустя почти полдня я понял, что так и не понимаю, как с ним работать =).<br />
Во-первых он тоже очень сильно мышко-ориентирован. Т.е. навигация по проектам и спискам другими способами невозможна, хотя емаксовские биндинги на вверх-вниз он поддерживает и можно с клавиатуры обеспечивать вложенность проектов и тасков.<br />
Во-вторых интерфейс у него какой-то совершенно не маковский, перегруженный непонятными кнопками, которые на проверку оказываются предустановками системы фильтрации. И вот эта система фильтрации и есть его главная фича. На ней построены все кейсы работы с этой программой.<br />
<img src="https://bthemad.wordpress.com/wp-content/uploads/2010/06/omnifocus.png?w=450" /><br />
Должен сказать, что по сравнению с Things, который был немного игрушечным, но вызывал симпатию и с ним хотелось работать, эта штука своей монструозностью вызывает у меня некоторое отторжение.В принципе, я понимаю, что с точки зрения GTD&nbsp;&mdash; это очень хороший инструмент. Потому что у него есть встроенные reviews, которые все ленятся делать и есть ощущение «надежной системы», которой можно доверять. Т.е. когда ты уже не можешь держать в голове названия всех своих проектов и забываешь когда у тебя какие дедлайны и хочешь ну чего-то сильно автоматизированного, вот тут OmniFocus очень хорошо подойдет. Надо только отказаться от желания все сделать на бегу и с клавиатуры, а каждый день тратить на него немного времени, выставляя все эти «последовательно-параллельно», даты review, сроки начала и окончания, флаги и контексты и все будет отлично. Это вечером, а утром надо пробегать через все активные проекты, выставлять, допустим флажок, который говорит нам, что мы хотим это делать сегодня и врубать фильтр, отсекающий все остальное.<br />
Проще говоря, не подружился я пока с этой чудесной программой и теперь, когда у меня кончились претенденты я немного в растерянности. Я написал систему бэкапа для THL, но она не спасает, т.к. он просто не пишет в свой файл на диск, а хранит данные где-то в памяти и потом благополучно их теряет. Есть еще идея дампить из него данные через AppleScript, но их потом сложно запихивать обратно. Одно расстройство, короче. Видимо, придется делать свой таск-менеджер с клавиатурой и шаблонами проектов.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://bthemad.wordpress.com/2010/06/03/things-the-hit-list-and-omnifocus-last-one/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">314</post-id>
		<media:content url="https://1.gravatar.com/avatar/406218fe0699297a63e1de9b71792b0a0208f3a1d4869490cfa8a5f85a485d30?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">BTheMad</media:title>
		</media:content>

		<media:content url="https://bthemad.wordpress.com/wp-content/uploads/2010/06/omnifocus.png" medium="image" />
	</item>
		<item>
		<title>Еще немного про Things, OmniFocus и The Hit List</title>
		<link>https://bthemad.wordpress.com/2010/05/24/some-more-on-things-omnifocus-and-the-hit-list/</link>
		
		<dc:creator><![CDATA[bthemad]]></dc:creator>
		<pubDate>Mon, 24 May 2010 16:13:42 +0000</pubDate>
				<category><![CDATA[gtd]]></category>
		<category><![CDATA[lifehack]]></category>
		<category><![CDATA[lyrics]]></category>
		<category><![CDATA[mac]]></category>
		<guid isPermaLink="false">http://bthemad.wordpress.com/2010/05/24/%d0%b5%d1%89%d0%b5-%d0%bd%d0%b5%d0%bc%d0%bd%d0%be%d0%b3%d0%be-%d0%bf%d1%80%d0%be-things-omnifocus-%d0%b8-the-hit-list/</guid>

					<description><![CDATA[Things Начинать проще всего с Things, потому что он проще. Программа доступна для всех маковских девайсов (iPhone, iPad), что позитивно, другие платформы по старинной маковской традиции не поддерживаются и не планируются. Когда запускаешь программу, она просто очаровывает тебя своей простотой. В Things все даже чуть проще, чем в THL. Здесь есть таски (с тэгами, заметками [&#8230;]]]></description>
										<content:encoded><![CDATA[<h3>Things</h3>
<p>Начинать проще всего с <a href="http://culturedcode.com/">Things</a>, потому что он проще. Программа доступна для всех маковских девайсов (iPhone, iPad), что позитивно, другие платформы по старинной маковской традиции не поддерживаются и не планируются. Когда запускаешь программу, она просто очаровывает тебя своей простотой.<br />
<img src="https://bthemad.wordpress.com/wp-content/uploads/2010/05/things-home.png?w=450" /><br />
В Things все даже чуть проще, чем в THL. Здесь есть таски (с тэгами, заметками и дедлайном) и пять предопределенных папок для их жизни. В Today живут таски, которые специально отмечены звездочкой «сделать сегодня» или у которых сегодня дедлайн (тогда они еще красненькие будут). В Scheduled живут таски, появление которых приурочено к какой-то дате и до этого обращать на них внимание без смысла. В Someday живут таски, у которых даже даты появления нет, т.е. вы еще не определились будете их выполнять или нет.<br />
Следующей сущностью являются проекты. Они отличаются от тасков только тем, что содержат подТаски. Здесь нас подстерегает первая засада. В программе не предусмотрена произвольная иерархия. Т.е. таски не могут содержать подтасков, а проекты подПроектов. Для тех, кто привык мыслить и работать с иерархиями это может стать серьезной проблемой.<br />
Но, в принципе, разработчики предоставляют некоторую возможность сделать еще один уровень вложенности и называют его «Areas» &#8212; области ответственности, которые тоже могут содержать таски и проекты. Но все равно это не похоже на пространство для маневра.<br />
Центральной точкой программы, с которой предполагатеся работать больше всего является папка Next.<br />
<img src="https://bthemad.wordpress.com/wp-content/uploads/2010/05/things-next.png?w=450" /><br />
Здесь содержатся все таски, которые живут вне проектов и по нескольку тасков из каждого проекта, который активен (т.е. не в Someday или Scheduled) и именно отсюда предполагается составлять себе расписание на день.<br />
Через все эти дебри папок предполагается продираться с помощью тэгов (которые можно биндить на отдельные клавиши, что удобно) и мышки. И здесь вторая и главная, для меня, засада Things. По нему практически невозможно бродить с клавиатуры. Разработчики явно что-то делают в этом направлении, например, можно фильтровать по тэгам и перемещаться по пяти предопределенным папкам, но попасть в произвольный проект или область нельзя, до поиска добраться нельзя и, что вообще непонятно, нельзя бродить по таскам с помощью маппингов emacs, только стрелочками (занудство, знаю, но почти в любой макопрограмме это возможно).<br />
В принципе, Things не безнадежен. Если четко следовать их сценарию работы, то бродить про проектам не нужно, а нужно сидеть в Next, но иногда приходится вносить новые таски и их надо тащить мышкой в нужные проект. Еще почти удобно сделано делегирование, можно добавлять своих коллег в специальный список и мышкой таскать на них таски. Области ответственности можно использовать как SmartFolder, т.е. определять тэги, по которым таски будут падать в определенные области. Есть интеграция с iCal, куда можно выгружать из папок и фильтровать по тэгам.<br />
В конечном итоге, программа мне действительно нравится, нравится как она выглядит, как работает, но в качестве ежедневника я ее использовать не могу. Она просто отсутствует на кончиках пальцев. В принципе, можно перекроить свои привычки и пойти на поводу у разработчиков, живя в папке Next, записывая все в Inbox и садиться раз в день разгребать его мышкой, но как-то я привык к большей гибкости. Вот OmniFocus известен как раз своими богатыми возможностями, о них мы и поговорим в следующий раз.</p>
<p><strong>Upd.</strong><br />
Очень неплохие скринкасты по Things с прекрасным шотландским акцентом. <a href="http://www.screencastsonline.com/index_files/SCO0217-thingspt1.php">Часть 1</a>, <a href="http://www.screencastsonline.com/index_files/SCO0219-thingspt2.php">Часть 2</a>, <a href="http://www.screencastsonline.com/index_files/SCO0221-thingspt3.php">Things for iPhone</a>, <a href="http://www.screencastsonline.com/index_files/SCO0245a-thingsforipad.php">Things for iPad</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">299</post-id>
		<media:content url="https://1.gravatar.com/avatar/406218fe0699297a63e1de9b71792b0a0208f3a1d4869490cfa8a5f85a485d30?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">BTheMad</media:title>
		</media:content>

		<media:content url="https://bthemad.wordpress.com/wp-content/uploads/2010/05/things-home.png" medium="image" />

		<media:content url="https://bthemad.wordpress.com/wp-content/uploads/2010/05/things-next.png" medium="image" />
	</item>
		<item>
		<title>Things, OmniFocus и The Hit List</title>
		<link>https://bthemad.wordpress.com/2010/05/22/things-omnifocus-%d0%b8-the-hit-list-2/</link>
		
		<dc:creator><![CDATA[bthemad]]></dc:creator>
		<pubDate>Fri, 21 May 2010 22:06:39 +0000</pubDate>
				<category><![CDATA[gtd]]></category>
		<category><![CDATA[lifehack]]></category>
		<category><![CDATA[lyrics]]></category>
		<category><![CDATA[mac]]></category>
		<guid isPermaLink="false">http://bthemad.wordpress.com/2010/05/22/things-omnifocus-%d0%b8-the-hit-list-2/</guid>

					<description><![CDATA[Проблемы выбора После миграции на мак, я столкнулся с выбором системы для учета добрых дел и намерений. А все из-за того, что мое любимое приложение ThinkingRock смотрелось ну слишком чужеродно в новой среде. Виной тому, конечно Java, которая везде выглядит не нативно, а именно как Java. И если под Linux это не бросалось в глаза [&#8230;]]]></description>
										<content:encoded><![CDATA[<h3>Проблемы выбора</h3>
<p>После миграции на мак, я столкнулся с выбором системы для учета добрых дел и намерений. А все из-за того, что мое любимое приложение <a href="http://www.trgtd.com.au/index.php">ThinkingRock</a> смотрелось ну слишком чужеродно в новой среде. Виной тому, конечно Java, которая везде выглядит не нативно, а именно как Java. И если под Linux это не бросалось в глаза из-за чрезмерной разношерстности тамошних приложений, то под маком, где все более или менее однородно, это стало заметно (а новая версия приложения и подавно стала платной).<br />
Перелистывая маковскую прессу еще до покупки, я знал, что сильных игроков на этом поприще насчитывается ровно 2: <a href="http://culturedcode.com/">Things</a> и <a href="http://www.omnigroup.com/products/omnifocus/">OmniFocus</a>. Оба приложения имели за собой армию поклонников и немного разную ауру. OmniFocus считается приложением серьезным и для взрослых, в то время, как Things он для менее требовательных пользователей, которым, однако, не безразличен интерфейс.<br />
Однако, по счастливой случайности, купив бандл <a href="http://www.macheist.com/">MacHeist 3</a>, я обнаружил в нем нового участника парада под названием <a href="http://www.potionfactory.com/thehitlist/">The Hit List</a>, который и стал моим приложением для добрых дел. Причин тому множество.</p>
<h3>The Hit List</h3>
<p>Ведение списка добрых дел вещь очень индивидуальная. Конечно, есть <a href="http://ru.wikipedia.org/wiki/Getting_Things_Done">GTD</a>, <a href="http://zenhabits.net/zen-to-done-ztd-the-ultimate-simple-productivity-system/">ZTD</a> и даже <a href="http://www.pomodorotechnique.com/">техника помидора&trade;</a>, но, каждый конкретный индивидуум в итоге выстраивает свой процесс, который является некоей вариацией существующих или вообще смешной третьей опцией. И для программы очень важно не мешать ему это делать. Именно этим и хорош THL, он, как любой хороший инструмент, дает вам достаточно веревки, а дальше вы делаете то, что хотите. Кто-то может возразить, что намного проще «становить» систему, когда тебя загоняют в какие-то рамки, но мне кажется, что когда ты из рамок выбираешься, а программа твоя не позволяет тебе вольностей, приходится значительно хуже. Так что мне по душе изначальная свобода действий.<br />
<img src="https://bthemad.wordpress.com/wp-content/uploads/2010/05/thl-home1.png?w=450" /><br />
В THL все очень просто.У вас есть таск с привычными параметрами. У вас есть список тасков, где их может быть сколько угодно, они могут быть вложены как угодно и т.д. У вас есть папки, в которые можно распихивать эти самые списки. Это простые сущности. Для радости есть еще умные папки, концепция которых повтоярет маковскую, т.е. там мышкой настраиваются разные условия, по которым этот таск в них находится. Еще есть инбокс, куда можно складывать свои умные мысли для последующей обработки, и еще пара предопределенных умных папок: Сегодня (где живут все таски с датой начала на сегодня или раньше) и Скоро (где живут все таски с определенными датами начала).<br />
<img src="https://bthemad.wordpress.com/wp-content/uploads/2010/05/thl-smart1.png?w=450" /><br />
Помимо этого есть табы, тэги и уникальный Card View, когда на экране у вас один единственный таск со всеми его заметкими и т.д. Плюс есть система приоритетов циферками от 0 до 9, таймер для замера времени работы над таском и привычная интеграция с iCal. И никаких ограничений на творчество =)<br />
<img src="https://bthemad.wordpress.com/wp-content/uploads/2010/05/thl-card1.png?w=450" /><br />
Но и это еще не все. Самое, на мой скромный взгляд, ценное в THL это управление с клавиатуры. Клавиатурные шорткаты есть практически для всего (ну кроме перемещения листов и папочек в иерархии, там только мышкой можно справиться). Переходы(!) по проектам, правка, сортировка, вложенность тасков, тэгирование, установка дат. Причем поддерживаются стандартные emacs-овские биндинги, которые в макоси везде работают, кроме Java-приложений (опять, да). Т.е. это приложение совершенно не осложняет вам жизнь, оно просто живет себе на кончиках пальцев и появляется, когда это необходимо.<br />
При этом, благодаря MacHeist, у приложения появилась армия поклонников, которые пишут скрипты, расширяющие возможности создания тасков или позволяющие вбивать таски из <a href="http://www.obdev.at/index.html">LaunchBar</a>. Единственное, что всех расстаривало, это отсутствие iPhone-приложения. Меня это никак не тревожит, поэтому я просто работал себе в удовольствие.<br />
Но не все чудесно в датском королевстве. В какой-то момент, примерно на рождество прошлого года, разработчик выложил скриншот приложения под iPhone и исчез, натурально так. На письма не отвечает, в контакт с пользователями не входит, в твиттер не пишет. И фиг бы с ним. Но после миграции на Snow Leopard мое приложение стало терять данные. Т.е. вводишь таск, выходишь из приложения, заходишь обратно &mdash; таска нет. Расстраиваешься. На третий раз мне это надоело и я написал в поддержку, что мол так и так, проблемы пам-пам, но ответа не последовало. Тогда я серьезно задумался о смене своего ежедневника на что-нибудь более поддерживаемое и вновь обратился к Things и OmniFocus.<br />
Что из этого получилось, расскажу в следующий раз =)</p>
<p><strong>Upd.</strong> Судя по всему, разработчик жив, потому что он <a href="http://www.tuaw.com/2010/03/17/things-coming-to-ipad-updates-to-1-3/">выходил на связь</a> с TUAW и уверял их, что работа кипит.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">294</post-id>
		<media:content url="https://1.gravatar.com/avatar/406218fe0699297a63e1de9b71792b0a0208f3a1d4869490cfa8a5f85a485d30?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">BTheMad</media:title>
		</media:content>

		<media:content url="https://bthemad.wordpress.com/wp-content/uploads/2010/05/thl-home1.png" medium="image" />

		<media:content url="https://bthemad.wordpress.com/wp-content/uploads/2010/05/thl-smart1.png" medium="image" />

		<media:content url="https://bthemad.wordpress.com/wp-content/uploads/2010/05/thl-card1.png" medium="image" />
	</item>
		<item>
		<title>Немного про ExtJS</title>
		<link>https://bthemad.wordpress.com/2010/05/14/thoughts-on-extjs/</link>
					<comments>https://bthemad.wordpress.com/2010/05/14/thoughts-on-extjs/#comments</comments>
		
		<dc:creator><![CDATA[bthemad]]></dc:creator>
		<pubDate>Fri, 14 May 2010 19:10:43 +0000</pubDate>
				<category><![CDATA[development]]></category>
		<category><![CDATA[extjs]]></category>
		<guid isPermaLink="false">http://bthemad.wordpress.com/2010/05/14/%d0%bd%d0%b5%d0%bc%d0%bd%d0%be%d0%b3%d0%be-%d0%bf%d1%80%d0%be-extjs/</guid>

					<description><![CDATA[Надо сказать, что я не использовал ExtJS около полутора лет. За это время сменился мажорный номер версии (на 3) и у библиотеки добавилось приятных возможностей, которые упрощают жизнь. Самым значительным изменением для меня стала доступность Ext.data.Writer, который сильно облегчает задачу сохранения данных. Вообще заметно, что библиотека становится все более зрелой и фишко-насыщенной. Но, одновременно со [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Надо сказать, что я не использовал ExtJS около полутора лет. За это время сменился мажорный номер версии (на 3) и у библиотеки добавилось приятных возможностей, которые упрощают жизнь. Самым значительным изменением для меня стала доступность Ext.data.Writer, который сильно облегчает задачу сохранения данных. Вообще заметно, что библиотека становится все более зрелой и фишко-насыщенной. Но, одновременно со всем этим, у нее остались теже проблемы, которые меня всегда в ней немного раздражали. При всей ее зрелости, любой шаг вправо-влево от того, что предлагает библиотека все так же карается расстрелом, багами и жестокими оверрайтами, которые потом вылезают боком. Я, конечно, соглашусь с теми, кто скажет, что я просто не умею ее готовить и с любой библиотекой так получается. Но весь прикол как раз в том, что для того, чтобы эффективно писать на ExtJS, надо с ней жить =) Т.е. тратить значительное строить и строить на ней приложения, запоминать хлипкие куски и знакомые паттерны багов и так далее. А что-то не хочется. А теперь немного речей от моего внутреннего героя Стэна, который в очередной раз многое понял.</p>
<p>Про архитектуру приложений на ExtJS написано уже достаточно много (раз, два на вскидку), я ничего добавлять не буду. Для собирающих модулей я предпочитаю, так называемый <a href="http://www.wait-till-i.com/2007/08/22/again-with-the-module-pattern-reveal-something-to-the-world/">Revealing Module Pattern</a>, который является продолжением идей Yahoo про <a href="http://www.yuiblog.com/blog/2007/06/12/module-pattern/">Module Pattern</a>, но по структуре мне нравится больше. А так все тоже, создаем свои компоненты, наследуя из от экстовских и оживляем их =)</p>
<p>Когда используешь какие-то плагины, оверрайты и прочие модификации ExtJS, лучше всего документировать это подробно. Т.е. элементарно составить список плагинов, которые используются в проекте и иногда послеживать за ними. Особенно, когда вы замечаете какое-то ненормальное поведение.</p>
<p>Довольно часто сталкиваешься с тем, что обновив ExtJS что-то перестает работать. В первую очередь, надо следить за тем, что вы обновили плагины, которые входят в поставку ExtJS (например RowEditor). Затем надо проследить, что все внешние плагины обновлены. Если ничего не помогло, то стоит отправится на форум. Часто там уже вовсю обсуждают, как починить вашу проблему =), потому что она не только ваша. Ну и потом уже можно вооружаться FireBug и писать на форум.</p>
<p>Вот список самых интересных плагинов, с которыми я работал в этот раз:<br />
<a href="http://www.extjs.com/forum/showthread.php?98292">Ext.ux.form.DateTime</a> &#8212; позволяет выбирать дату и время, а не просто дату.<br />
<a href="http://www.extjs.com/forum/showthread.php?53521">Ext.ux.form.GroupingCombobox</a> &#8212; позволяет использовать группировку значений, как обычный &lt;optgroup&gt;.<br />
<a href="http://www.extjs.com/forum/showthread.php?25924">Ext.ux.form.XCheckbox</a> &#8212; в отличие от обычного чекбокса, всегда отправляет значение, вне зависимости от того, отмечен он или нет.<br />
Ext.ux.grid.CheckColumn &#8212; позволяет делать колонку из чекбоксов<br />
<a href="http://www.marcusschiesser.de/?p=309">Ext.ux.grid.ItemDeleter</a> &#8212; добавляет колонку по нажатию на ячейки которой можно удалять строки<br />
<a href="http://www.extjs.com/deploy/dev/examples/grid/row-editor.html">Ext.ux.grid.RowEditor</a> &#8212; из официальной поставки, удобно редактировать строки в гриде<br />
<a href="http://gridsearch.extjs.eu/">Ext.ux.gird.Search</a> &#8212; старый-старый плагин, который позволяет осуществлять поиск по разным колонкам грида<br />
<a href="http://www.extjs.com/forum/showthread.php?89395">Ext.ux.PanelCollapsedTitle</a> &#8212; плагин, который добавляет заголовки на свернутые панели BorderLayout (причем и для IE, и для остальных вменяемых браузеров)<br />
<a href="http://www.extjs.com/forum/showthread.php?14503">Ext.ux.grid.Filter</a> &#8212; семейство фильтров, который вешаются в меню колонки и позволяют не загромождать тулбар всякими поисковыми формами</p>
]]></content:encoded>
					
					<wfw:commentRss>https://bthemad.wordpress.com/2010/05/14/thoughts-on-extjs/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">291</post-id>
		<media:content url="https://1.gravatar.com/avatar/406218fe0699297a63e1de9b71792b0a0208f3a1d4869490cfa8a5f85a485d30?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">BTheMad</media:title>
		</media:content>
	</item>
		<item>
		<title>Чарльз Петцольд — «Код. Тайный язык информатики»</title>
		<link>https://bthemad.wordpress.com/2010/05/03/code-book/</link>
		
		<dc:creator><![CDATA[bthemad]]></dc:creator>
		<pubDate>Mon, 03 May 2010 11:44:07 +0000</pubDate>
				<category><![CDATA[books]]></category>
		<category><![CDATA[review]]></category>
		<guid isPermaLink="false">http://bthemad.wordpress.com/2010/05/03/%d1%87%d0%b0%d1%80%d0%bb%d1%8c%d0%b7-%d0%bf%d0%b5%d1%82%d1%86%d0%be%d0%bb%d1%8c%d0%b4-%e2%80%93-%c2%ab%d0%ba%d0%be%d0%b4-%d1%82%d0%b0%d0%b9%d0%bd%d1%8b%d0%b9-%d1%8f%d0%b7%d1%8b%d0%ba-%d0%b8%d0%bd/</guid>

					<description><![CDATA[Так уж сложилось, что в последнее время программированием занимается все больше людей, которые получали образование по совершенно другим специальностям. Да и в университетах все больше отходят от низкоуровневых языков. И получается, что очень многие программисты совершенно не представляют, как на самом деле работают компьютеры и что там происходит за пределами их IDE. А бывает, что [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://i0.wp.com/www.ozon.ru/multimedia/books_covers/08_13_001.jpg" alt="Код - тайный язык информатики" align="left" />Так уж сложилось, что в последнее время программированием занимается все больше людей, которые получали образование по совершенно другим специальностям. Да и в университетах все больше отходят от низкоуровневых языков. И получается, что очень многие программисты совершенно не представляют, как на самом деле работают компьютеры и что там происходит за пределами их IDE. А бывает, что по молодости лет мы просто не уделяем внимания этим предметам в институте, считая что все эти ассемблеры уже отжили свое и Java всех победит.<br />
Эта книга создана для того, чтобы восполнить пробелы в образовании или просто напомнить о том, как оно на самом деле. Вместе с автором мы проходим путь от разных способов кодирования информации (язык Брайля, код Морзе) до современных операционных систем с графическими интерфейсами.<br />
По ходу дела мы узнаем как построить простейший, но вполне себе компьютер их 5 миллионов реле и небольшого колличества лампочек, как их потом заменить на лампы, а затем и на транзисторы. Что представляет собой язык машинных кодов для процессора 8080 и зачем использовались сопроцессоры. Узнаем, как представлены дроби и пиксели в памяти компьютера и пишем простейшие программы на ассемблере. Именно этой низкоуровневой части посвящена основная часть книги.<br />
Ну а в последних главах, автор очень быстро проходится по всяким периферическим устройствам, вроде сканера, MIDI-секвенсоров и принтеров.<br />
Рекомендуется к прочтению всем, кто так или иначе вовлечен в программирование и хочет получше узнать что же происходит внутри этой умной железки.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">283</post-id>
		<media:content url="https://1.gravatar.com/avatar/406218fe0699297a63e1de9b71792b0a0208f3a1d4869490cfa8a5f85a485d30?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">BTheMad</media:title>
		</media:content>

		<media:content url="http://www.ozon.ru/multimedia/books_covers/08_13_001.jpg" medium="image">
			<media:title type="html">Код - тайный язык информатики</media:title>
		</media:content>
	</item>
		<item>
		<title>Автодополнение ssh хостов</title>
		<link>https://bthemad.wordpress.com/2010/03/31/ssh-host-autocompletion/</link>
		
		<dc:creator><![CDATA[bthemad]]></dc:creator>
		<pubDate>Wed, 31 Mar 2010 09:49:06 +0000</pubDate>
				<category><![CDATA[shell]]></category>
		<guid isPermaLink="false">http://bthemad.wordpress.com/2010/03/31/%d0%b0%d0%b2%d1%82%d0%be%d0%b4%d0%be%d0%bf%d0%be%d0%bb%d0%bd%d0%b5%d0%bd%d0%b8%d0%b5-ssh-%d1%85%d0%be%d1%81%d1%82%d0%be%d0%b2/</guid>

					<description><![CDATA[Автодополнение хостов ssh&#160;&#8212; это благо, особенно, когда их набивается достаточно много. Одной из хороших подсказок является создание файла ~/.ssh/config с примерно таким содержанием: Host myhost # Имя хоста HostName server.com # Это удаленнй хост User username # Пользователь на удаленном хосте Port 22222 # Номер порта Этот файл является очень хорошим подспорьем, особенно если вы [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Автодополнение хостов ssh&nbsp;&mdash; это благо, особенно, когда их набивается достаточно много. Одной из хороших подсказок является создание файла <code>~/.ssh/config</code> с примерно таким содержанием:</p>
<pre>
<code>
Host        myhost      # Имя хоста
HostName    server.com  # Это удаленнй хост
User        username    # Пользователь на удаленном хосте
Port        22222       # Номер порта
</code>
</pre>
<p>Этот файл является очень хорошим подспорьем, особенно если вы устроили коннект по ключу. Тогда запоминать надо только пароль от ключа и имя хоста из нашего конфига. Но иногда и этого бывает не достаточно. Точнее уже бывает лень набирать даже <code>ssh myhost</code> и хочется автодополнения. На этот случай можно поискать в интернетах скрипты bash ssh autocompletion, но они все опираются на файлик known_hosts, а мне хотелось бы чтобы автодополнение шло по именам из конфига. Нет ничего проще. Стоит добавить пару строк к себе в <code>~/.bashrc</code> или <code>~/.profile</code>:</p>
<p><code><br />
# SSH Auto Completion of Remote Hosts<br />
complete -W "$(echo `cat ~/.ssh/config | grep '^Host ' | colrm 1 5`)" ssh<br />
</code></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">275</post-id>
		<media:content url="https://1.gravatar.com/avatar/406218fe0699297a63e1de9b71792b0a0208f3a1d4869490cfa8a5f85a485d30?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">BTheMad</media:title>
		</media:content>
	</item>
		<item>
		<title>Vim на Mac Os X 10.6</title>
		<link>https://bthemad.wordpress.com/2010/03/18/vim-on-mac-os-x-10-6/</link>
					<comments>https://bthemad.wordpress.com/2010/03/18/vim-on-mac-os-x-10-6/#respond</comments>
		
		<dc:creator><![CDATA[bthemad]]></dc:creator>
		<pubDate>Wed, 17 Mar 2010 20:41:32 +0000</pubDate>
				<category><![CDATA[install]]></category>
		<category><![CDATA[vim]]></category>
		<guid isPermaLink="false">http://bthemad.wordpress.com/2010/03/18/vim-%d0%bd%d0%b0-mac-os-x-10-6/</guid>

					<description><![CDATA[Если не сильно заморачиваться, то в поставке Os X уже есть вим. Но он там сильно урезанный и работать в нем подолгу просто не реально. Хотя бы потому, что он собран без поддержки GUI, а значит никакие красивые темки (с помощью CSApprox) вам установить не удастся. Ну а без темок жизнь не жизнь и работа [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Если не сильно заморачиваться, то в поставке Os X уже есть вим. Но он там сильно урезанный и работать в нем подолгу просто не реально. Хотя бы потому, что он собран без поддержки GUI, а значит никакие красивые темки (с помощью <a href="http://www.vim.org/scripts/script.php?script_id=2390">CSApprox</a>) вам установить не удастся. Ну а без темок жизнь не жизнь и работа не работа.</p>
<p>Добрые люди собирают приложение под нехитрым названием <a href="http://code.google.com/p/macvim/">MacVim</a>, которое представляет собой обычное GUI-Vim типа GVim. Но, к сожалению, вы не можете использовать его в коммандной строке (можете, конечно, но об этом позже), но самое главное, что вам не дают свободы при конфигурировании, например включить интерпретаторы питона и руби. Поэтому все приходится делать самому, благо на сайте приведена <a href="http://code.google.com/p/macvim/wiki/Building">подробная инструкция</a> по сборке, так что ошибиться особо не получится. Для ленивых вот ее краткое содержание</p>
<p><code><br />
	1. git clone git://repo.or.cz/MacVim.git vim7<br />
	2. cd vim7/src<br />
	3. ./configure \<br />
		--with-macarchs=i386 \<br />
	   	--with-features=huge \<br />
		--enable-pythoninterp \<br />
		--enable-rubyinterp \<br />
		--enable-cscope \<br />
		--enable-multibyte \<br />
		--enable-gui \<br />
		--with-macsdk=10.6<br />
	4. make<br />
	5. open MacVim/build/Release/MacVim.app<br />
</code></p>
<p>Таким образом, мы получаем наш любимый Vim таким, каким мы хотим его видеть. В данном случае, это 32-битный билд, с питоном, руби, cscope и GUI. Что ж еще для счастья надо! А надо, чтобы можно было стартовать его из коммандной строки, причем иметь порядочный терминальный вим, а не окошечный =) Нет ничего проще. Для начала стоит скопировать MacVim.app в папку <code>/Applications</code> и в файл ~/.profile стоит добавить одну строчку:</p>
<p><code>alias vim=/Applications/MacVim.app/Contents/MacOS/Vim</code></p>
<p>Все, теперь ничто не помешает поставить все любимые плагины и темку RailsCast =)</p>
<p>Стоит добавить, что для корректной работы Vim его необходимо запускать не в стандартном Terminal, а в <a href="http://iterm.sourceforge.net/">iTerm</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://bthemad.wordpress.com/2010/03/18/vim-on-mac-os-x-10-6/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">267</post-id>
		<media:content url="https://1.gravatar.com/avatar/406218fe0699297a63e1de9b71792b0a0208f3a1d4869490cfa8a5f85a485d30?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">BTheMad</media:title>
		</media:content>
	</item>
		<item>
		<title>TextMate. Дополнительные бандлы</title>
		<link>https://bthemad.wordpress.com/2010/03/17/textmate-useful-bundles/</link>
		
		<dc:creator><![CDATA[bthemad]]></dc:creator>
		<pubDate>Wed, 17 Mar 2010 05:29:21 +0000</pubDate>
				<category><![CDATA[textmate]]></category>
		<guid isPermaLink="false">http://bthemad.wordpress.com/2010/03/17/textmate-%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%b1%d0%b0%d0%bd%d0%b4%d0%bb%d1%8b/</guid>

					<description><![CDATA[Для начала хочется сказать, что бандл – это плагин, который расширяет возможности редактора. Из чего он состоит мы, возможно, поговорим потом, а сейчас рассмотрим те бандлы, которые наиболее интересны, но не входят в стандартную поставку. Project+ Начать хочется с ProjectPlus, который является надстройкой для более удобной работы сайдБара. Он заменяет текстмэйтовский drawlwer на привычный и [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Для начала хочется сказать, что бандл – это плагин, который расширяет возможности редактора. Из чего он состоит мы, возможно, поговорим потом, а сейчас рассмотрим те бандлы, которые наиболее интересны, но не входят в стандартную поставку.</p>
<h3>Project+</h3>
<p>Начать хочется с <a href="http://ciaranwal.sh/projectplus">ProjectPlus</a>, который является надстройкой для более удобной работы сайдБара. Он заменяет текстмэйтовский drawlwer на привычный и логичный sidebar. Возможно, это шаг в сторону от изначальной задумки, но мне так удобнее. Помимо этого, он привносит несколько дополнительных опций в контекстное меню сайдбара, позволяет следить за файлами под SCM (Git, SVN, Mercurial, Bazaar) и сохраняет состояние дерева проекта при выходе. В общем вещь полезная для организации жизни.</p>
<h3>GetBundles</h3>
<p>Второй незаменимый плагин &#8212; это <a href="http://github.com/adamsalter/GetBundles.tmbundle">getBundles</a>, который позволяет наиболее комфортным образом инсталлировать дополнительный бандлы прямо из репозиториев разработчиков. При этом можно добавлять эти репозитории и он забирает из них то, чего нет в основном. Эдакая система менеджмена пакетов для текстового редактора =). Без него придется постоянно клонировать репозитории руками для установки дополнений. Полезен и прост в использовании. Главное – не перепутайте его со старым и забытым getBundle, а то будете удивляться зачем вам это посоветовали, ведь оно как-то не работает =)</p>
<h3>Ack in project</h3>
<p><a href="http://betterthangrep.com/">Ack</a> &#8212; это магия Perl. Штука, которая быстрее grep и предназначена для поиска по исходным кодам (это с их сайта, может по протым текстам им религия не позволяет искать, я не знаю =). Для начала стоит установить сам <a href="http://betterthangrep.com/ack-standalone">бинарник</a> куда-нибудь, например в <code>/usr/local/bin</code> (не забыть выставить права на исполнение, ну и переименовать его в ack). Можно так же установить его из <a href="http://search.cpan.org/dist/ack/">CPAN</a> или <a href="http://trac.macports.org/browser/trunk/dports/perl/p5-app-ack/Portfile">MacPorts</a>. Далее ставиться бандл Ack in project (проще всего через getBundles) и по Cmd+Shift+A у вас появляется окошко, сильно похожее на поиск. Но преимущество Ack проявляется на действительно больших объемах исходников. Там где Find, встроенный в TextMate просто повисает на произвольное число минут. При этом результаты выдаются прямо по мере нахождения. Незаменимая вещь для больших проектов.</p>
<h3>Zen Coding</h3>
<p><a href="http://code.google.com/p/zen-coding/">ZenCoding</a> &#8212; это плагин для скоростного написания html и css. Плагин был изначально на снипетах текстмэйта, но потом его переписали в один большой питоновский скрипт, который теперь можно приделать к довольно большому числу редакторов. По сути ЗенКодинг позволяет писать html методом css-селекторов =) Синтаксис того, что вы пишете чем-то похож на <a href="http://haml-lang.com/">haml</a>, ну а в результате получается вполне обычный html. Автор этого бандла ведет очень приятный <a href="http://pepelsbey.net/">блог</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">260</post-id>
		<media:content url="https://1.gravatar.com/avatar/406218fe0699297a63e1de9b71792b0a0208f3a1d4869490cfa8a5f85a485d30?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">BTheMad</media:title>
		</media:content>
	</item>
	</channel>
</rss>
