<?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/"
	>

<channel>
	<title>Степень свободы &#187; Work</title>
	<atom:link href="http://www.snut.ru/?feed=rss2&#038;tag=work" rel="self" type="application/rss+xml" />
	<link>http://www.snut.ru</link>
	<description>Немного слов о жизни и IT</description>
	<lastBuildDate>Tue, 14 Dec 2010 19:11:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>Крылатые в офисе!</title>
		<link>http://www.snut.ru/?p=193</link>
		<comments>http://www.snut.ru/?p=193#comments</comments>
		<pubDate>Fri, 12 Mar 2010 10:53:55 +0000</pubDate>
		<dc:creator>Snut</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Quote]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.snut.ru/?p=193</guid>
		<description><![CDATA[&#171;С падением сервера поднимается паника. Падает паника — поднимается сервер.&#187; © Денис aka _etc Коляко]]></description>
			<content:encoded><![CDATA[<p>&laquo;С падением сервера поднимается паника. Падает паника — поднимается сервер.&raquo; © <a href="http://etcs.ru/">Денис aka _etc Коляко</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.snut.ru/?feed=rss2&amp;p=193</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Интересно, что дальше?</title>
		<link>http://www.snut.ru/?p=191</link>
		<comments>http://www.snut.ru/?p=191#comments</comments>
		<pubDate>Mon, 08 Mar 2010 22:32:13 +0000</pubDate>
		<dc:creator>Snut</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[Have a nice day]]></category>
		<category><![CDATA[Vacation]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.snut.ru/?p=191</guid>
		<description><![CDATA[Ну вот и закончен отпуск, отпразднован день рождения и завтра на работу. Там ждут новые проекты и новые заботы. Чего-то даже соскучился по работе. Ну вперед, с новыми силами!]]></description>
			<content:encoded><![CDATA[<p>Ну вот и закончен отпуск, отпразднован день рождения и завтра на работу. Там ждут новые проекты и новые заботы. Чего-то даже соскучился по работе. Ну вперед, с новыми силами!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.snut.ru/?feed=rss2&amp;p=191</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Привет сумасшедшие массивы!</title>
		<link>http://www.snut.ru/?p=129</link>
		<comments>http://www.snut.ru/?p=129#comments</comments>
		<pubDate>Wed, 27 Jan 2010 13:39:20 +0000</pubDate>
		<dc:creator>Snut</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Incredible toons]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.snut.ru/?p=129</guid>
		<description><![CDATA[Что же случилось? А все просто, в справке написано: var oneArray:Array = new Array(&#171;a&#187;, &#171;b&#187;, &#171;c&#187;); типо вот у нас массив, с тремя элементами, ну клево, возрадуемся мощности технологий, а вот мне надо создать массив не с элементами &#171;a&#187;, &#171;b&#187;, &#171;c&#187;, а с элементами 1, 2, 3, пожалуйста: var oneArray:Array = new Array(1, 2, 2); легко, вот вам [...]]]></description>
			<content:encoded><![CDATA[<p>Что же случилось? А все просто, в справке написано: var oneArray:Array = new Array(&laquo;a&raquo;, &laquo;b&raquo;, &laquo;c&raquo;); типо вот у нас массив, с тремя элементами, ну клево, возрадуемся мощности технологий, а вот мне надо создать массив не с элементами &laquo;a&raquo;, &laquo;b&raquo;, &laquo;c&raquo;, а с элементами 1, 2, 3, пожалуйста: var oneArray:Array = new Array(1, 2, 2); легко, вот вам массив с тремя элементами.</p>
<p>Теперь совсем &laquo;не тривиальная задача&raquo;, нужен массив с одним элементом равный 1, чтобы oneArray[0] = 1, ну чтож, делаем по предыдущей схеме var oneArray:Array = new Array(1); ожидая, что oneArray[0] = 1, aн нет, oneArray[0] = undefined, чтобы вы думали? Конструкция new Array(1) создает массив единичной длинны, и неопределенным 0 элементом. Выход: var oneArray:Array =  [1];</p>
<p>Час искал какого-ж хрена не работает, расстроен.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.snut.ru/?feed=rss2&amp;p=129</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Лог комита: зачем он нужен на самом деле?</title>
		<link>http://www.snut.ru/?p=51</link>
		<comments>http://www.snut.ru/?p=51#comments</comments>
		<pubDate>Thu, 14 Aug 2008 19:57:36 +0000</pubDate>
		<dc:creator>Snut</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[SVN]]></category>
		<category><![CDATA[Team]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.snut.ru/?p=51</guid>
		<description><![CDATA[Разработчики уже давно привыкли пользоваться системами контроля версий. Для кого-то это является естественным переходом, кто-то воспринимает сначала систему контроля версий как некоторое дополнительное усложнение своей работы, но работа над проектом в команде невозможна без этого инструмента. Очень часто переход от мышления «я сохранил файл — код зафиксирован» к мышлению «я сделал комит — код зафиксирован» [...]]]></description>
			<content:encoded><![CDATA[<p>Разработчики уже давно привыкли пользоваться системами контроля версий. Для кого-то это является естественным переходом, кто-то воспринимает сначала систему контроля версий как некоторое дополнительное усложнение своей работы, но работа над проектом в команде невозможна без этого инструмента.</p>
<p>Очень часто переход от мышления «я сохранил файл — код зафиксирован» к мышлению «я сделал комит — код зафиксирован» натыкается на то, что процесс комита требует написания <em>лога комита</em>. Первое решение — оставить лог пустым или написать что-то из:</p>
<ul>
<li>«фикс бага»;</li>
<li>«закомитил всё, что сделал»;</li>
<li>«тестовый комит»;</li>
<li>«исправил опечатку»;</li>
<li>и т.п.</li>
</ul>
<p><a name="habracut"></a><br />
 Почему это плохо?</p>
<p><span id="more-51"></span></p>
<p>Один ответ на этот вопрос заключается в том, что лог комита является документацией на код и на изменение. Идеальный лог комита должен позволять по истории изменений конкретного файла понять, что произошло в каждой ревизии, не заглядывая в само изменение (дифф файла). Лог комита может содержать дополнительную мета-информацию: номер тикета, имя человека, который провел code-review, ссылки на другие комиты и т.п.</p>
<p>Пытаясь удовлетворить приведенным выше требованиям разработчик часто возьмет заголовок тикета и впишет его в лог комита. Однако, чаще всего тикет формулируется в терминах не разработки, а исходной задачи, например: «Сделать отступ 10 пикселей между блоками А и Б». Такая фраза в качестве лога комита в CSS-файл сообщает информацию о изменении, но какую информацию она дает <em>читающему</em> такой лог? Ведь на самом деле, например, был создан новый CSS-класс с именем таким-то, из другого CSS-класса был удален какой-то стиль и т.п. То есть само по себе изменение описывается на другом языке, не на языке менеджера проекта. Было бы полезно иметь и то, и другое представление комита, например:</p>
<p><code> Сделать отступ 10 пикселей между блоками А и Б: был <br />
 создан новый класс blockC, из класса blockA удалено <br />
 padding-bottom: 0.5em, т.к. все paddingи перенесены в <br />
 класс blockC.</code></p>
<p>Тикет: #1734</p>
<p>Такой лог комита стал гораздо более информативным, по нему и менеджер проекта может понять смысл изменения (если захочет), и каждый разработчик понимает цель изменения и какие именно изменения произошли с файлом в данной ревизии.</p>
<p>Что нового дает такой лог комита по сравнению с логом: «закомитил CSS-фикс»?</p>
<p>Мне кажется, основное преимущество состоит в <em>вербализации</em> изменения. И оно даже не для читающего этот лог когда-то, а для пишущего. Процесс программирования сегодня особенно в web-разработке очень быстрый. Мы не пишем псевдо-код, редко рисуем диаграммы, часто между постановкой задачи и выкладкой нового кода на рабочие сервера может пройти несколько часов. За эти часы код не может пройти естественные этапы: отлежаться «пару дней», чтобы автор мог вернуться к нему с «незамутненным взглядом», не успеет пройти code-review, другие разработчики не успеют получить его из репозитория, и т.п. В то время как основная масса кода оказывается лучше изучена и протестирована за время от одного релиза до другого. Но и очень часто мы допускаем ошибки просто в силу того, что упускаем из вида важные детали из-за каких-то еще причин: отсутствия опыта, усталости, частого переключения между задачами и т.п. Как обеспечить качество разработки в таких условиях?</p>
<p>Процесс программирования невербален. Он начинается с задачи, поставленной не в терминах разработчика, а в терминах заказчика. И часто эта формулировка каким-то образом трансформируется в уме разработчика в конкретное решение в терминах языка программирования без фиксации на словах промежуточных результатов. Код на языке программирования не содержит формулировки задачи в терминах разработчика, он содержит некое решение, которое, возможно решает исходную задачу, возможно привносит некоторые ошибки (баги).</p>
<p>Код написан, и вот сейчас подошло время фиксировать изменение в репозитории, а значит, писать лог комита! И это самое время попробовать вербализировать своё изменение на естественном языке. Если ограничиться отпиской вида «фикс бага» или скопировать часть фразы из тикета, процесс вербализации не включается, т.к. мы ничего не формулируем. А давайте попробуем на хорошем русском языке сформулировать что же именно мы изменили, почему мы изменили, какие это имеет последствия (возможно) для другого кода? Для того, чтобы сформулировать точно, что же именно мы изменили, потребуется просмотреть дифф текущего изменения, что замечательно, это фиксирует внимание на каждом блоке изменений в попытке рассмотреть каждую строчку кода, резюмировать изменения общей идеей, не упуская при этом важных деталей. Этот дополнительный взгяд на дифф изменений позволяет найти как простые технические ошибки, как, например, отсутствие докблока, так и нетривиальные — забытые отладочные операторы, изменения, сделанные временно в процессе программирования, «меньше» вместо «больше» и т.п.</p>
<p>Процесс формулирования самого лога комита на естественном языке позволяет найти логические ошибки в изменении, когда мы понимаем, что наше исправление неполно, избыточно, противоречиво, не решает исходную задачу и т.п. Магия состоит именно в попытке сформулировать рассказ об изменении, т.е. рассказать о своем изменении другим разработчикам. Наверное, многие замечали, что иногда достаточно подойти за помощью к другому разработчику и <em>рассказать</em> о проблеме, чтобы тут же в голове появилось решение. Именно процесс вербализации нашей потусторонней, фантастической деятельности программистов, заключающейся в переводе мыслей заказчика в фразы языка программирования, позволяет осознать суть сделанных изменений и найти скрытую ошибку в коде. Поэтому… пишите хорошие логи комитов!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.snut.ru/?feed=rss2&amp;p=51</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WI-FI дали</title>
		<link>http://www.snut.ru/?p=44</link>
		<comments>http://www.snut.ru/?p=44#comments</comments>
		<pubDate>Mon, 21 Jul 2008 10:01:35 +0000</pubDate>
		<dc:creator>Snut</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.snut.ru/?p=44</guid>
		<description><![CDATA[Потихоньку обустраиваюсь. Встретил парня с прошлой работы. Ужасъ. Тут не моя любимая операционка:) Пощупаем:)]]></description>
			<content:encoded><![CDATA[<p>Потихоньку обустраиваюсь. Встретил парня с прошлой работы.</p>
<p>Ужасъ. Тут не моя любимая операционка:) Пощупаем:)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.snut.ru/?feed=rss2&amp;p=44</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Первый рабочий день</title>
		<link>http://www.snut.ru/?p=43</link>
		<comments>http://www.snut.ru/?p=43#comments</comments>
		<pubDate>Mon, 21 Jul 2008 05:18:57 +0000</pubDate>
		<dc:creator>Snut</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.snut.ru/?p=43</guid>
		<description><![CDATA[Сегодня первый рабочий день в TimeZero, вечерком отпишусь как все прошло.]]></description>
			<content:encoded><![CDATA[<p>Сегодня первый рабочий день в <a href="http://www.timezero.com">TimeZero</a>, вечерком отпишусь как все прошло.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.snut.ru/?feed=rss2&amp;p=43</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ура! Меня Взяли в TimeZero</title>
		<link>http://www.snut.ru/?p=42</link>
		<comments>http://www.snut.ru/?p=42#comments</comments>
		<pubDate>Mon, 14 Jul 2008 14:53:37 +0000</pubDate>
		<dc:creator>Snut</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[Have a nice day]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.snut.ru/?p=42</guid>
		<description><![CDATA[Оххх&#8230;. море счастья и радости, очень я уж хотел эту работу. Все, с понедельника выхожу!!! Только вот косяки с документами надо разруливать.]]></description>
			<content:encoded><![CDATA[<p>Оххх&#8230;. море счастья и радости, очень я уж хотел эту работу. Все, с понедельника выхожу!!! Только вот косяки с документами надо разруливать.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.snut.ru/?feed=rss2&amp;p=42</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Да!</title>
		<link>http://www.snut.ru/?p=41</link>
		<comments>http://www.snut.ru/?p=41#comments</comments>
		<pubDate>Sun, 13 Jul 2008 17:13:13 +0000</pubDate>
		<dc:creator>Snut</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.snut.ru/?p=41</guid>
		<description><![CDATA[Ура, тестовое задание сделал и отправил! Эк я молодец) Буду ждать ответа. Уж очень хочу к ним.]]></description>
			<content:encoded><![CDATA[<p>Ура, тестовое задание сделал и отправил! Эк я молодец) Буду ждать ответа. Уж очень хочу к ним.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.snut.ru/?feed=rss2&amp;p=41</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Собеседование в TimeZero</title>
		<link>http://www.snut.ru/?p=38</link>
		<comments>http://www.snut.ru/?p=38#comments</comments>
		<pubDate>Wed, 09 Jul 2008 13:56:44 +0000</pubDate>
		<dc:creator>Snut</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[Hello world]]></category>
		<category><![CDATA[TimeZero]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.snut.ru/?p=38</guid>
		<description><![CDATA[Сегодня собственно был в Timezero на собеседовании. Офис классный, мне понравился, переговорная в моем любимом стиле, металл и стекло (за это отдельный плюс). Как и ожидалось собеседовал меня в том числе и __etc, чтобы там не говорили, но человек вполне нормальный. Так что я терь буду всем рассказывать:) Сказали, что в понедельник перезвонят. Ну чтож [...]]]></description>
			<content:encoded><![CDATA[<p>Сегодня собственно был в <a href="http://www.timezero.com">Timezero</a> на собеседовании. Офис классный, мне понравился, переговорная в моем любимом стиле, металл и стекло (за это отдельный плюс). Как и ожидалось собеседовал меня в том числе и <a href="http://etcs.ru/">__etc</a>, чтобы там не говорили, но человек вполне нормальный. Так что я терь буду всем рассказывать:) Сказали, что в понедельник перезвонят. Ну чтож будем ждать понедельника, а теперь &#8211; Привет тебе, ParticleSystem, я иду.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.snut.ru/?feed=rss2&amp;p=38</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Хозяин! Работы давай!</title>
		<link>http://www.snut.ru/?p=37</link>
		<comments>http://www.snut.ru/?p=37#comments</comments>
		<pubDate>Mon, 07 Jul 2008 20:41:58 +0000</pubDate>
		<dc:creator>Snut</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.snut.ru/?p=37</guid>
		<description><![CDATA[Господа, работодатели, работопредлагатели и иже с ними! Дайте мне работать! Дайте мне идей и офис с iMac&#8217;ом. Я очень хочу программировать на своем любимом языке &#8211; ActionScript 3, в своем любимом фреймворке &#8211; Flex&#8217;e. Да, я конечно хочу еще и денег за работу, но больше хочется именно работать! Прям всем сердцем, всей душой! Что-то давно [...]]]></description>
			<content:encoded><![CDATA[<p>Господа, работодатели, работопредлагатели и иже с ними! Дайте мне работать! Дайте мне идей и офис с <a href="http://ru.wikipedia.org/wiki/IMac">iMac&#8217;ом</a>. Я очень хочу программировать на своем любимом языке &#8211; <a href="http://ru.wikipedia.org/wiki/ActionScript">ActionScript 3</a>, в своем любимом фреймворке &#8211; <a href="http://ru.wikipedia.org/wiki/Adobe_Flex">Flex&#8217;e</a>. Да, я конечно хочу еще и денег за работу, но больше хочется именно работать! Прям всем сердцем, всей душой! Что-то давно у меня такого рвения к работе не было. Прям даже настораживает.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.snut.ru/?feed=rss2&amp;p=37</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Мир вертикален.</title>
		<link>http://www.snut.ru/?p=34</link>
		<comments>http://www.snut.ru/?p=34#comments</comments>
		<pubDate>Fri, 04 Jul 2008 14:53:48 +0000</pubDate>
		<dc:creator>Snut</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[Things]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.snut.ru/?p=34</guid>
		<description><![CDATA[Вот задумался я, сейчас же у почти 75% процентов населения кто пользуется компьютерами в москве &#8211; широкоформатные мониторы. А у разработчиков &#8211; и подавно. И тут я задумался, ну вот блог мой, ну вертикальный он, и даже сжат по ширине до 800, и страница в ворде &#8211; тоже вертикальная, и код во Flex Builder &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>Вот задумался я, сейчас же у почти 75% процентов населения кто пользуется компьютерами в москве &#8211; широкоформатные мониторы. А у разработчиков &#8211; и подавно. И тут я задумался, ну вот блог мой, ну вертикальный он, и даже сжат по ширине до 800, и страница в ворде &#8211; тоже вертикальная, и код во Flex Builder &#8211; тоже вертикален. Ну и плюнул я на все, ворнул монитор на 90 градусов сзади подпер книжками, в настройках видеокарты сделал поворот изображения на 90 градусов и вуаля, разрешение теперь 1200*1920 &#8211; что крайне удобно, теперь правда его чуть повыше повесить надо как-то! Удобно, хоть немного и не привычно, был монитор широкоформатный, а стал высокоформатный <img src='http://www.snut.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Кстати, кто-то скажет, а мне менюшек в фотошопе не хватает (привет Джексон). Помнишь я говорил о втором 24&#8243; iMac&#8217;e. Думай <img src='http://www.snut.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Ну а теперь доказательства (картинка кликабельна).</p>
<p style="text-align: center;"><a title="Большим форматом." href="http://www.snut.ru/wp-content/uploads/2008/07/vertical-screen.jpg" target="_blank"><img class="size-medium wp-image-35" title="vertical-screen" src="http://www.snut.ru/wp-content/uploads/2008/07/vertical-screen-187x300.jpg" alt="Поверни разработку под 90 градусов." width="187" height="300" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.snut.ru/?feed=rss2&amp;p=34</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
