<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2russianfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>GQ's blog</title>
	
	<link>http://gq.net.ru</link>
	<description>Next step is the world domination...</description>
	<lastBuildDate>Tue, 06 Jul 2010 13:57:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/gq" /><feedburner:info uri="gq" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>55.803789</geo:lat><geo:long>37.970982</geo:long><creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license><image><link>http://gq.net.ru</link><url>http://gq.net.ru/userpic.png</url><title>Yo!</title></image><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fgq" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fgq" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Fgq" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/gq" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fgq" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fgq" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fgq" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://lenta.yandex.ru/settings.xml?name=feed&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2Fgq" src="http://lenta.yandex.ru/i/addfeed.gif">?????? ? ??????.?????</feedburner:feedFlare><item>
		<title>Ррррреволюция</title>
		<link>http://feedproxy.google.com/~r/gq/~3/9xJMYZCTLsE/</link>
		<comments>http://gq.net.ru/2010/07/06/rrrrevolution/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 13:52:54 +0000</pubDate>
		<dc:creator>GQ</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Почта]]></category>
		<category><![CDATA[Радостное]]></category>
		<category><![CDATA[Удивительное]]></category>

		<guid isPermaLink="false">http://gq.net.ru/?p=442</guid>
		<description><![CDATA[Что-то происходит! Приятелю письмо из штатов ФедЭксом доставили за 4 дня. При чем с прохождением таможни в воскресенье. Мне бандероль из ЮК приехала за 12 дней. Обычной почтой. Или это случайное чудо?]]></description>
			<content:encoded><![CDATA[<p>Что-то происходит!</p>
<p>Приятелю письмо из штатов ФедЭксом доставили за 4 дня. При чем с прохождением таможни в воскресенье.<br />
Мне бандероль из ЮК приехала за 12 дней. Обычной почтой.</p>
<p>Или это случайное чудо?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gq?a=9xJMYZCTLsE:8AtUKT1zahU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/gq?i=9xJMYZCTLsE:8AtUKT1zahU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gq?a=9xJMYZCTLsE:8AtUKT1zahU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/gq?i=9xJMYZCTLsE:8AtUKT1zahU:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/gq/~4/9xJMYZCTLsE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://gq.net.ru/2010/07/06/rrrrevolution/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://gq.net.ru/2010/07/06/rrrrevolution/</feedburner:origLink></item>
		<item>
		<title>Авангард интернет-банкинг vs. Linux</title>
		<link>http://feedproxy.google.com/~r/gq/~3/LVT7rvKQWTs/</link>
		<comments>http://gq.net.ru/2010/05/08/avangard-ru-vs-linux/#comments</comments>
		<pubDate>Fri, 07 May 2010 22:35:25 +0000</pubDate>
		<dc:creator>GQ</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Авангард]]></category>
		<category><![CDATA[Банк]]></category>
		<category><![CDATA[Интернет]]></category>
		<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://gq.net.ru/?p=421</guid>
		<description><![CDATA[Садись, малыш, сегодня я расскажу тебе как пользоваться интернет-банкингом Авангарда в Линуксе. Итак ты являешься клиентом банка Авангард. У тебя должны быть: логин и пароль от интернет-банкинга; карточка с одноразовыми паролями; флэшка с ключом ЭЦП. С первыми двумя пунктами всё просто: логин с паролем позволяют зайти в веб-интерфейс и получить любую информацию. Если требуется выполнить [...]]]></description>
			<content:encoded><![CDATA[<p>Садись, малыш, сегодня я расскажу тебе как пользоваться интернет-банкингом Авангарда в Линуксе.</p>
<p>Итак ты являешься клиентом банка Авангард. У тебя должны быть:</p>
<ul>
<li>логин и пароль от интернет-банкинга;</li>
<li>карточка с одноразовыми паролями;</li>
<li>флэшка с ключом ЭЦП.</li>
</ul>
<p>С первыми двумя пунктами всё просто: логин с паролем позволяют зайти в веб-интерфейс и получить любую информацию. Если требуется выполнить типовой платеж, то раз в сеанс будет запрошен одноразовый пароль с карточки. Самое интересное происходит в ситуации, когда требуется выполнить какое-либо действие, которое по законодательству требует твоей подписи. Например, хочется открыть вклад. Или поменять какой-нибудь лимит для карточки. Или перевести миллионы в другой банк. Казалось бы надо идти в офис и там писать заявление, но не всё так страшно: в нашей самой лучшей на свете стране есть закон об Электронных Цифровых Подписях и Авангард как раз одну такую ЭЦП с православным ГОСТовским криптоключем внутри тебе сгенерировал.</p>
<p>Но тут-то и кроется подстава: софт, конечно же, кривой. Ну как не то чтобы совсем уж, чего обижать авторов, но не без забавностей.</p>
<p>Для того, чтобы проверить работу цифровой подписи можно попробовать изменить какой-нибудь лимит на закладке &#8220;Справочники/Лимиты по картам&#8221;.</p>
<p>Во-первых, для работы ЭЦП требуется java-plugin. Не знаю, как там с icedtea (или как там оно зовется), хотя вроде где-то писали, что и он работает, но я не стал оригинальничать и поставил java-plugin от некогда славной фирмы SUN (пакет sun-java6-plugin).</p>
<p>И ничего не заработало. Честно сказать, я это заметил еще месяца полтора назад, что не работают у меня java-апплеты, но списал это на то, что где-то прописалась какая альтернативная джава из gcj или еще какого проекта, и забил. А тут занялся вопросом серьезно &#8211; сносил, переставлял&#8230; Ничего не помогает. Вместо апплета выдает окошко с надписью &#8220;Error. Click for detail&#8221;, по клику на которое вызывается java-console с текстом о Class not found и прочих эксепшнах, но главное с ключевой строчкой: &#8220;Caused by: java.net.ConnectException: Network is unreachable&#8221;</p>
<p>Небольшое расследование вывело на следующую проблему: <a href=http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=560238>#560238</a>. Если коротко, то суть ее состоит в том, что Marco d&#8217;Itri добавил в пакет netbase установку sysctl&#8217;я ломающего некоторый &#8220;кривой&#8221; софт. Не будем сейчас обсуждать Марко и его маму, равно как кривость сановской джавы и информационность RFC 3493. Просто факт остается фактом. Сейчас сановская джава не сможет подключиться к сети при установленном net.ipv6.bindv6only=1</p>
<p>Так что первым нашим шагом будет открытие /etc/sysctl.d/bindv6only.conf и установку там net.ipv6.bindv6only в значение 0. После чего стоит сказать &#8220;/etc/init.d/procps start&#8221; Ну это всё пока что актуально только на Debian Squeeze, остальным повезло. (Пока?)</p>
<p>Теперь апплет-таки запускается и, если тебе особенно повезло, радостно сообщает: &#8220;Обнаружение программы&#8230; Err&#8221; с очень содержательным пояснением: &#8220;Ошибка обнаружения/скачивания программы шифрования: invalid stream header: 0D0A0D0A&#8221;</p>
<p>Тут всё просто и очевидно (да, это сарказм): открываешь настройки IceWeasel/FireFox и разрешаешь там &#8220;Third-party cookies&#8221;. Они там в разных версиях в по разному называются/находятся, так что проще всего открыть &#8220;about:config&#8221; и там поставить значение переменной network.cookie.cookieBehavior в 0. Кстати эта проблема, наверняка должна проявляться и под виндой.</p>
<p>Едем дальше: аппет сообщает &#8220;Ошибка выполнения программы подписи  : Cannot run program &#8220;c:\avn_ib/avn_cc.exe&#8221;: java.io.IOException: error=13, Permission denied&#8221;. Если посмотреть в домашний каталог пользователя (а именно он является текущим для java-приложений, запускаемых из браузера), то мы радостно обнаружим там каталог &#8220;c:\avn_ib&#8221; внутри которого действительно есть неисполняемый файл avn_cc.exe</p>
<p>Как ты уже догадался, гений русских программистов бесконечен. Java-апплет всего-лишь является <s>троян-дроппером</s>загрузчиком для настоящей боевой криптографии. Которая написана, естественно под винду. Ну тут всё просто. Он хочет запускать этот бинарник? Нет проблем! Чтобы работали виндовые программы, ставим wine. Чтобы бинарник можно было запускать напрямую, ставим binfmt-support. (Вообще он рекомендуется вайном, но мало ли, у тебя он не стоит. Ну и в других дистрибутивах пакет может называться иначе, ты уж сам разберись, главное чтобы работал прямой запуск виндовых прог: не только &#8220;wine prog.exe&#8221;, но и просто &#8220;./prog.exe&#8221;) Дальше, понятно, надо сделать бинарник avn_cc.exe исполняемым.</p>
<p>Нет, это еще не всё. Теперь апплет выдает нам не менее экзистенциальное &#8220;Ошибка выполнения программы подписи: ret 2 команда &lt;c:\avn_ib/avn_cc.exe c:\avn_ib/avn_clb_sign.in&gt;&#8221; Надо немного подумать: чтобы бинарник можно было запустить из вайна, он должен быть доступен внутри виндового окружения. А какой путь сейчас у этого бинарника? Правильно Z:\home\user\c:\avn_ib\avn_cc.exe В общем не бывает таких путей в виндовсе. Решаем всё просто:</p>
<pre>mv ~/c:\\avn_ib ~/.wine/drive_c/avn_ib&amp;&amp;ln -s ~/.wine/drive_c/avn_ib ~/c:\\avn_ib</pre>
<p>Пробуем еще раз&#8230; О чудо! Крипто-хрень спрашивает нас где лежит приватный ключик. Ну теперь достаточно воткнуть флэшку с ключом, примонтировать и оно всё само подпишет.</p>
<p>Велик русский Левша. Умеет подковать англицкую джаву.</p>
<p>PS А Авангард и его интернет-банкинг действительно хорош. Ну и MasterCard.Metro у него по самым адекватным тарифам. В общем рекомендую. Кстати, обещают подружиться до конца года(?) с московским наземным транспортом и питерской подземкой.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gq?a=LVT7rvKQWTs:oHFOzBXsHuk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/gq?i=LVT7rvKQWTs:oHFOzBXsHuk:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gq?a=LVT7rvKQWTs:oHFOzBXsHuk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/gq?i=LVT7rvKQWTs:oHFOzBXsHuk:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/gq/~4/LVT7rvKQWTs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://gq.net.ru/2010/05/08/avangard-ru-vs-linux/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://gq.net.ru/2010/05/08/avangard-ru-vs-linux/</feedburner:origLink></item>
		<item>
		<title>Паранойя</title>
		<link>http://feedproxy.google.com/~r/gq/~3/Dr0gziZmJ4Q/</link>
		<comments>http://gq.net.ru/2010/05/05/paranoia/#comments</comments>
		<pubDate>Wed, 05 May 2010 07:47:03 +0000</pubDate>
		<dc:creator>GQ</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Железки]]></category>
		<category><![CDATA[Паранойя]]></category>
		<category><![CDATA[Рекомендую]]></category>

		<guid isPermaLink="false">http://gq.net.ru/?p=417</guid>
		<description><![CDATA[Всегда было не по себе, когда приходилось выкидывать в мусор всякие бумажки, на которых написана разная условно конфиденциальная информация, вроде паспортных данных. Позавчера паранойа взыграла особенно сильно, как результат был куплен замечательный настольный USB-шредер. Всего 350 рубликов в ilmax.ru и новый томагочи поселится у вас на столе. ЗЫ Кстати о паранойе. Очень впечатлили дельцы, которые [...]]]></description>
			<content:encoded><![CDATA[<p>Всегда было не по себе, когда приходилось выкидывать в мусор всякие бумажки, на которых написана разная условно конфиденциальная информация, вроде паспортных данных.<br />
Позавчера паранойа взыграла особенно сильно, как результат был куплен замечательный настольный <a href="http://www.f1cd.ru/gadgets/reviews/usb_mini_shredder_orient_page_1/">USB-шредер</a>.<br />
Всего 350 рубликов в ilmax.ru и новый томагочи поселится у вас на столе.</p>
<p>ЗЫ Кстати о паранойе. Очень впечатлили дельцы, которые продают в Москве RFID-блокирующие обложки на &#8220;биометрические&#8221; паспорта по цене в 3т.р. Хорошо так люди деньги делают. (Купил на e-bay в 5 раз дешевле.)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gq?a=Dr0gziZmJ4Q:VOrngmAYDAg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/gq?i=Dr0gziZmJ4Q:VOrngmAYDAg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gq?a=Dr0gziZmJ4Q:VOrngmAYDAg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/gq?i=Dr0gziZmJ4Q:VOrngmAYDAg:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/gq/~4/Dr0gziZmJ4Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://gq.net.ru/2010/05/05/paranoia/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://gq.net.ru/2010/05/05/paranoia/</feedburner:origLink></item>
		<item>
		<title>Копируй, Шура, они золотые…</title>
		<link>http://feedproxy.google.com/~r/gq/~3/8d_82q8QCws/</link>
		<comments>http://gq.net.ru/2010/04/08/copy-em/#comments</comments>
		<pubDate>Thu, 08 Apr 2010 05:34:03 +0000</pubDate>
		<dc:creator>GQ</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Copyright]]></category>
		<category><![CDATA[Видео]]></category>
		<category><![CDATA[Реклама]]></category>
		<category><![CDATA[Смешное]]></category>

		<guid isPermaLink="false">http://gq.net.ru/?p=415</guid>
		<description />
			<content:encoded><![CDATA[<p><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/zjaHOme5VHo&#038;color1=0x3a3a3a&#038;color2=0x999999&#038;hl=ru_RU&#038;feature=player_embedded&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.youtube.com/v/zjaHOme5VHo&#038;color1=0x3a3a3a&#038;color2=0x999999&#038;hl=ru_RU&#038;feature=player_embedded&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="385"></embed></object></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gq?a=8d_82q8QCws:K9NaxGr7mSo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/gq?i=8d_82q8QCws:K9NaxGr7mSo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gq?a=8d_82q8QCws:K9NaxGr7mSo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/gq?i=8d_82q8QCws:K9NaxGr7mSo:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/gq/~4/8d_82q8QCws" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://gq.net.ru/2010/04/08/copy-em/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://gq.net.ru/2010/04/08/copy-em/</feedburner:origLink></item>
		<item>
		<title>Из жизни</title>
		<link>http://feedproxy.google.com/~r/gq/~3/0U0Ku0zKXgU/</link>
		<comments>http://gq.net.ru/2010/04/04/life/#comments</comments>
		<pubDate>Sun, 04 Apr 2010 16:39:59 +0000</pubDate>
		<dc:creator>GQ</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Вело]]></category>
		<category><![CDATA[Максимка]]></category>
		<category><![CDATA[Оффлайн]]></category>

		<guid isPermaLink="false">http://gq.net.ru/?p=410</guid>
		<description><![CDATA[Купил ребенку байк. На три года. Орбеа. Шура привет =) Всё как у взрослых: тормоза, тросики, ручки, подседельник на эксцентрике&#8230; И пусть коллеги показывают на меня пальцем, я не смог купить пластилиновый китай. Хорошие велосипеды развращают. ЗЫ Через 2 недели Бегущий Город. На этот раз команда будет полностью из ЛВК. Все 4 человека.]]></description>
			<content:encoded><![CDATA[<p>Купил ребенку байк. На три года. Орбеа. Шура привет =) Всё как у взрослых: тормоза, тросики, ручки, подседельник на эксцентрике&#8230; И пусть коллеги показывают на меня пальцем, я не смог купить пластилиновый китай. Хорошие велосипеды развращают.</p>
<p>ЗЫ Через 2 недели Бегущий Город. На этот раз команда будет полностью из ЛВК. Все 4 человека.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gq?a=0U0Ku0zKXgU:ACSOZIa0vSg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/gq?i=0U0Ku0zKXgU:ACSOZIa0vSg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gq?a=0U0Ku0zKXgU:ACSOZIa0vSg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/gq?i=0U0Ku0zKXgU:ACSOZIa0vSg:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/gq/~4/0U0Ku0zKXgU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://gq.net.ru/2010/04/04/life/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://gq.net.ru/2010/04/04/life/</feedburner:origLink></item>
		<item>
		<title>Maemo conference Moscow 2010</title>
		<link>http://feedproxy.google.com/~r/gq/~3/tML3z0hBExg/</link>
		<comments>http://gq.net.ru/2010/03/26/maemo-conference-moscow-2010/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 20:18:08 +0000</pubDate>
		<dc:creator>GQ</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Оффлайн]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Maemo]]></category>
		<category><![CDATA[Nokia]]></category>

		<guid isPermaLink="false">http://gq.net.ru/?p=406</guid>
		<description><![CDATA[Побывал сегодня на конференции, посвященной платформе Maemo. Довольно любопытно. Оказывается, что Нокиевцы сами не ожидали, что N900 удастся (в такой степени), а сейчас они расходятся как пирожки. В России 4е место по прибыли (порядка 1500-2000шт в месяц), в мире 5е. Планы на 2009 Q4 были перевыполнены в два с лишним раза. При этом средний покупатель, [...]]]></description>
			<content:encoded><![CDATA[<p>Побывал сегодня на конференции, посвященной платформе Maemo.</p>
<p>Довольно любопытно. Оказывается, что Нокиевцы сами не ожидали, что N900 удастся (в такой степени), а сейчас они расходятся как пирожки. В России 4е место по прибыли (порядка 1500-2000шт в месяц), в мире 5е. Планы на 2009 Q4 были перевыполнены в два с лишним раза. При этом средний покупатель, оказывается, вовсе даже не гик (политкорректно маркетинговые люди их называют &#8220;тэкникал лидерз&#8221;), а человек, переросший E серию (не по статусу, а по потребностям). Хотя встречаются перебежчики с яблок и форточек.</p>
<p>Кстати Россия сейчас для Нокии &#8220;4й по величине рынок&#8221;. Не совсем понятно правда, в мире или в азиатском регионе, но всё равно.</p>
<p>Люди из Нокии потравили много интересных баек в коридоре. Они всерьез уверены, что за Маэмо будущее. При этом вроде бы настроены очень лицом к сообществу. Правда основная причина это &#8220;лучше я сейчас потрачу 30 тысяч, чтобы замейнлайнить наше изменение в апстрим, чем 3 лимона за поддержку всего этого самим в течении 5 лет&#8221;. Но всё равно это звучит весьма позитивно.</p>
<p>Насколько их планы на завоевание рынка кажутся реалистичными? Не знаю. Но они говорят очень много правильных вещей в том, что касается юзабилити (в более широком, чем юзабилити пользовательского интерфейса, смысе), возможностей, которые они требуют от платформы. Хочется надеяться, что прок будет. В общем, если и вправду N920 будет без клавиатуры, и если навител портирует под него свою навигацию, то я, пожалуй, куплю себе и то и другое. А пока FS n560. Хотя и исключительно в роли нафигатора.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gq?a=tML3z0hBExg:5EtEzMS6OqY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/gq?i=tML3z0hBExg:5EtEzMS6OqY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gq?a=tML3z0hBExg:5EtEzMS6OqY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/gq?i=tML3z0hBExg:5EtEzMS6OqY:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/gq/~4/tML3z0hBExg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://gq.net.ru/2010/03/26/maemo-conference-moscow-2010/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://gq.net.ru/2010/03/26/maemo-conference-moscow-2010/</feedburner:origLink></item>
		<item>
		<title>Spin Debian package</title>
		<link>http://feedproxy.google.com/~r/gq/~3/bQWQz9biVt0/</link>
		<comments>http://gq.net.ru/2010/03/17/spin-debian-package/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 13:13:34 +0000</pubDate>
		<dc:creator>GQ</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Package]]></category>
		<category><![CDATA[Spin]]></category>

		<guid isPermaLink="false">http://gq.net.ru/?p=400</guid>
		<description><![CDATA[SPIN is a general tool for verifying the correctness of distributed software models in a rigorous and mostly automated fashion. It was written by Gerard J. Holzmann and others in the original Unix group of the Computing Sciences Research Center at Bell Labs, beginning in 1980. The software has been available freely since 1991, and [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>SPIN is a general tool for verifying the correctness of distributed software models in a rigorous and mostly automated fashion. It was written by Gerard J. Holzmann and others in the original Unix group of the Computing Sciences Research Center at Bell Labs, beginning in 1980. The software has been available freely since 1991, and continues to evolve to keep pace with new developments in the field.</p></blockquote>
<p><a href="http://spinroot.com">http://spinroot.com</a></p>
<p>Unfortunately Bell Labs use <a href="http://lists.debian.org/debian-legal/2004/01/msg00273.html">strange non-free copyleft-like license</a> instead of good old GPL. So it could not be included in Debian archive. But as I need Debian package for it, I&#8217;ve prepared one and put into my <a href="http://gq.net.ru/debian/pool/main/s/spin/">repository</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gq?a=bQWQz9biVt0:U3FI0Hi9mU0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/gq?i=bQWQz9biVt0:U3FI0Hi9mU0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gq?a=bQWQz9biVt0:U3FI0Hi9mU0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/gq?i=bQWQz9biVt0:U3FI0Hi9mU0:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/gq/~4/bQWQz9biVt0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://gq.net.ru/2010/03/17/spin-debian-package/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://gq.net.ru/2010/03/17/spin-debian-package/</feedburner:origLink></item>
		<item>
		<title>Роняю ядра. Недорого.</title>
		<link>http://feedproxy.google.com/~r/gq/~3/QZM15nPmgFA/</link>
		<comments>http://gq.net.ru/2010/03/09/kenel-panic-discounter/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 13:14:30 +0000</pubDate>
		<dc:creator>GQ</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Crash]]></category>
		<category><![CDATA[Удивительное]]></category>
		<category><![CDATA[Ext2]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://gq.net.ru/?p=397</guid>
		<description><![CDATA[Сегодня научился ронять ядро. Следующим образом: mkfs.ext2 /dev/sdc2 mount /dev/sdc2 /mnt iozone &#8230; -f /mnt/io #бенчмарк В другом потоке: dd if=/dev/zero of=/dev/sdc2 bs=1024 count=1024 mkfs.reiserfs /dev/sdc2 Вот я теперь думаю: я был не прав или всё-таки оно не должно было упасть? Что ответит Александр ДрузьКО?]]></description>
			<content:encoded><![CDATA[<p>Сегодня научился ронять ядро.<br />
Следующим образом:<br />
mkfs.ext2 /dev/sdc2<br />
mount /dev/sdc2 /mnt<br />
iozone &#8230; -f /mnt/io #бенчмарк</p>
<p>В другом потоке:<br />
dd if=/dev/zero of=/dev/sdc2 bs=1024 count=1024<br />
mkfs.reiserfs /dev/sdc2</p>
<p>Вот я теперь думаю: я был не прав или всё-таки оно не должно было упасть?<br />
Что ответит <s>Александр Друзь</s>КО?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gq?a=QZM15nPmgFA:JjFEgYdZjv4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/gq?i=QZM15nPmgFA:JjFEgYdZjv4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gq?a=QZM15nPmgFA:JjFEgYdZjv4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/gq?i=QZM15nPmgFA:JjFEgYdZjv4:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/gq/~4/QZM15nPmgFA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://gq.net.ru/2010/03/09/kenel-panic-discounter/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		<feedburner:origLink>http://gq.net.ru/2010/03/09/kenel-panic-discounter/</feedburner:origLink></item>
		<item>
		<title>Редактирование истории в git</title>
		<link>http://feedproxy.google.com/~r/gq/~3/p8-B-loVqag/</link>
		<comments>http://gq.net.ru/2009/12/16/git-history-rewrite/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 13:35:00 +0000</pubDate>
		<dc:creator>GQ</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://gq.net.ru/2009/12/16/%d1%80%d0%b5%d0%b4%d0%b0%d0%ba%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b8%d1%81%d1%82%d0%be%d1%80%d0%b8%d0%b8-%d0%b2-git/</guid>
		<description><![CDATA[Еще один внутренний документик по работе с гитом от Максима Чистолинова: Редактирование истории в git Более строго следует говорить не о "редактировании" или "изменении" истории, а о cоздании "альтернативной" истории. Если специально ничего не предпринимать, в репозитории git остаются все объекты "старой" истории, соответствующие предыдущим коммитам и версиям файлов. На эти объекты не будут "ссылаться" [...]]]></description>
			<content:encoded><![CDATA[<p>Еще один внутренний документик по работе с гитом от Максима Чистолинова:</p>
<p><strong>Редактирование истории в git</strong></p>
<pre>Более строго следует говорить не о "редактировании" или "изменении" истории,
а о cоздании "альтернативной" истории. Если специально ничего не предпринимать,
в репозитории git остаются все объекты "старой" истории, соответствующие
предыдущим коммитам и версиям файлов.
На эти объекты не будут "ссылаться" ветки, но если Вы вспомните их SHA1-ключи,
либо как-то специально позаботитесь их "пометить" (тэгом, или другой веткой),
то старая история будет c точки зрения git "ничем не хуже" новой.

Почти во всех командах git можно ссылаться на коммиты любым способом:
 - с помощью SHA1-ключа,
 - с помощью имени ветки (если это последний коммит на ветке),
 - с помощью тэга (если вы его предусмотрительно поставили git tag),
 - c помощью специальных имён, например HEAD - последний коммит на
   данной ветке, HEAD^ - предпоследний (точнее, первый предок
   последнего коммита) и т.п. Подробности см. git-rev-parse --help
Ниже в командах, которые допускают любую идентификацию коммита, я буду
указывать в качестве аргумента &lt;id&gt;, или &lt;id-...&gt;. Если допускается только
имя ветки, указывается &lt;ветка&gt;.

Для начинающих я рекомендую приступая к редактированию истории пометить
все ключевые точки тэгами. Их хорошо видно в gitk.
Только не забудьте их потом удалить git tag -d

В понятие истории git я буду включать не только совокупность коммитов
git-а, но и содержание рабочего каталога (да простят меня потомки).

Типовые задачи редактирования истории:

1. Отказаться от всех изменений в рабочем каталоге (аналог revert в svn).
   Кошерный способ: git checkout -f
   Отказаться от части изменений можно с помощью: git checkout &lt;path&gt;
   НО: git checkout . не удалит, например, вновь добавленных файлов.
   Более жёсткий способ удалить _все_ изменения: git reset --hard HEAD

2. "Сохранить" изменения (состояние) рабочего каталога.
   git stash
   При этом рабочий каталог "очищается" до HEAD, а сохранённые изменения
   можно в последствии "применить" к текущему, либо к любому другому
   состоянию рабочего каталога с помощью git stash apply
   В частности, это позволяет "переносить" изменения между ветками
   (хотя, лучше их оформлять как коммиты, и оперировать потом уже с ними).

3. Отредактировать/дополнить последний коммит:
   git commit --amend
   Можно применять даже если Вам просто понадобилось переписать commit-log
   (например, Вы его "недописали" или он оказался не в той кодировке).
   Фактически при выполнении этой операции будет создан _другой_ commit
   object, и HEAD ветки будет связан с ним. (Старый объект в репозитории
   git тоже сохранится).

4. "Отказаться" от нескольких последних коммитов в истории (в частности,
    от последнего)
   Создать новую ветку new в нужной нам точке истории и переставить на
   неё существующую:
   git checkout &lt;id&gt; -b new
   git branch -M &lt;нужная нам ветка&gt;
   Например, отказаться от последнего коммита на ветке master (если мы
   на нём находимся), можно так:
   git checkout HEAD^ -b new_master
   git branch -M master
   После первой команды мы находимся "на один коммит назад" и создали там
   новую ветку с именем new_master (текущей веткой является new_master).
   После второй команды мы "переименовали" new_master в master, -M позволяет
   проигнорировать, что master уже есть.
   Тоже самое можно сделать одной командой:
   git reset --hard &lt;id&gt;
   Но это менее безопасно (см. ниже).

5. "Переставить" метки веток.
   git reset [--ключ] &lt;id&gt;
   Позволяет "передвинуть" текущий HEAD (и метку ветки) на заданный коммит.
   Есть три варианта, задаваемых ключами:
    --hard - "выкидывает" всё текущее состояние рабочий копии, вы оказываетесь
             на коммите &lt;id&gt;, как будто после него ничего не было;
             Т.е. это просто "перестановка ветки".
    --soft - "сохраняет" изменения в рабочей копии (и в "индексе" git) и добавляет
             к ним изменения из "истории" от &lt;id&gt; до точки, из которой мы переходим.
             Более подробно см. п. "Слияние нескольких коммитов в один".
    --mixed - (по умолчанию) - ведёт себя как --soft, но не изменяет состояние
             "индекса" git (оно будет соответствовать коммиту &lt;id&gt;, на который мы
             перешли) - новые и изменённые файлы не считаются "добавленными" в индекс,
             т.е. в отличии от --soft для них требуется явно делать git add,
             git rm, .etc
   Поскольку git reset (особенно --hard), позволяет "потерять" последнее
   положение ветки (т.е. оставить HEAD "непомеченным"), следует использовать
   эту команду с осторожностью.

6. Слияние нескольких коммитов в один.
   Если это "последние" коммиты в истории этой ветки:
   git reset --soft &lt;id&gt;
   git commit -a -s [--amend]
   Первая команда позволяет "отскочить" HEAD на несколько коммитов назад, при
   этом сохранив все "изменения" этих коммитов в рабочем каталоге.
   Например, git reset --soft HEAD^^ позволит "объединить" изменения последнего
   и предпоследнего коммитов.
   Если мы хотим "добавить" к этим изменениям, изменения из коммитов с другой
   ветки, нам поможет git cherry-pick --no-commit &lt;id&gt;
   Эта команда "добавляет" изменения коммита в рабочий каталог и в индекс, но не
   выполняет операцию commit.

7. Удаление нескольких коммитов "внутри истории". git-rebase magic
   Например, у Вас есть история ветки:
    ...-(N-5)-(N-4)-(N-3)-(N-2)-(N-1)-(N) - ветка
   и вам захотелось удалить коммиты (N-4)-(N-2) включительно.
   Это можно сделать с помощью команды git-rebase:
   git-rebase --onto &lt;ветка&gt;~5 &lt;ветка&gt;~2 &lt;ветка&gt;
   Например, git-rebase --onto master~5 master~2 master
   Нотация &lt;id&gt;~&lt;n&gt; означает n-ый коммит назад, т.е. в данном случае:
    - master - (N)
    - master~2 - (N-2)
    - master~5 - (N-5)
   Смысл операции git-rebase --onto &lt;id-newbase&gt; &lt;id-upstream&gt; &lt;id-head&gt;:
    1) Переключиться на коммит &lt;id-head&gt; (== git checkout &lt;ветка&gt;, если
       &lt;id-head&gt; - это HEAD ветки)
    2) Начать новую ветку от точки &lt;id-newbase&gt;
    3) "Поместить" на новую ветку коммиты от &lt;id-upstream&gt; до &lt;id-head&gt;,
       не включая &lt;id-upstream&gt;
    4) Если &lt;id-head&gt; - это HEAD ветки, переставить &lt;ветку&gt; на то, что получилось
   В данном случае:
   От коммита (N-5) мы начинаем "применять" коммиты (N-1) и (N), и переставляем
   метку ветки, в результате чего получается "новая история":
        (N-1)'-(N)' - ветка
         /
   ...-(N-5)-(N-4)-(N-3)-(N-2)-(N-1)-(N)

8. Объединение коммита с "внутренним" коммитом в истории.
   Например, в коммите &lt;id-src&gt; Вы исправили ошибку в "старом исправлении" &lt;id-dst&gt;,
   которое было несколько коммитов назад.
   Последовательность действий:
   1) Создать новую ветку new_branch от коммита &lt;id-dst&gt;, который надо
      поменять (дополнить).
      git checkout &lt;id-dst&gt; -b new_branch
   2) Сделать cherry-pick коммита &lt;id-src&gt;, который вы хотите "приплюсовать" к
      внутреннему.
      git cherry-pick --no-commit &lt;id-src&gt;
   3) "Дополнить" последний коммит изменениями из рабочего каталога.
      git commit --amend
   4) Добавить в новую историю последовательность "правильных" коммитов:
      git rebase --onto HEAD &lt;id-первый коммит&gt;^  &lt;id-последний коммит&gt;
   5) Переставить ветку на новый HEAD
      git branch -f &lt;имя ветки&gt;

   Пояснения требуют два последних действия:
     git rebase в данном случае добавляет нужную последовательность коммитов
     "в голову" новой ветки, но если &lt;id-последний коммит&gt; - это не HEAD
     старой ветки, то после git rebase новый HEAD не будет соответствовать
     ни какой ветке ! (так уж работает git rebase)
     Для этого требуется последняя операция, она явно переставляет ветку
     на HEAD.

   Если наше исправление было бы не закоммичено, можно было воспользоваться
   git stash и git stash apply вместо git cherry-pick.

9. Редактирование "внутреннего" коммита.
   Действия аналогичны п.8, но проще. Пусть мы находимся на ветке &lt;имя ветки&gt;.
   1) Извлечь коммит &lt;id-dst&gt;, подлежащий редактированию; ветку new_branch
      создавать при этом не обязательно, но желательно:
      git checkout &lt;id-dst&gt; [-b new_branch]
   2) Исправить код, "дополнить" последний коммит изменениями из рабочего
      каталога.
      git commit -a --amend
   3) Добавить в новую историю последовательность "правильных" коммитов:
      git rebase --onto HEAD &lt;id-dst&gt; &lt;имя ветки&gt;
   4) Удалить ветку new_branch, если она была создана на шаге 1)
      git branch -D new_branch

   Специально переставлять ветку &lt;имя ветки&gt; в данном случае не требуется, т.к.
   в команде git rebase в п. 3) в качестве последнего аргумента было имя ветки,
   а не просто SHA1-id. В такой ситуации эта команда "автоматически" переставит
   ref ветки.

10. rebase ветки с помощью git rebase.
    git rebase &lt;upstream-branch&gt;
    Эта операция подробно рассмотрена в разъяснениях Никиты по идеологии и
    сценариям использования git.
    Не следует относится к git rebase "формально": например, если Вы считаете,
    что некоторые коммиты с ветки разумнее было бы переместить на master, можно
    "продублировать" их на master с помощью git cherry-pick, после чего сделать
    git rebase. После этого, с веки эти коммиты волшебным образом исчезнут.

11. "Откат" отдельного коммита.
    Строго говоря, это не редактирование истории: просто автоматически добавляется
    коммит (либо, изменение в рабочей копии), "отменяющее" заданный коммит.
    git revert [--no-commit] &lt;id&gt;
    Эту возможность следует использовать если Вы не хотите "честно" редактировать
    историю. Например, коммит надо откатить только на одной из ветвей, либо
    этот коммит был "очень давно", и не хочется перестраивать из-за него всю
    историю целиком.</pre>
<p>(cc) Mike Chistolinov</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gq?a=p8-B-loVqag:ULh0F4mLCtE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/gq?i=p8-B-loVqag:ULh0F4mLCtE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gq?a=p8-B-loVqag:ULh0F4mLCtE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/gq?i=p8-B-loVqag:ULh0F4mLCtE:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/gq/~4/p8-B-loVqag" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://gq.net.ru/2009/12/16/git-history-rewrite/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		<feedburner:origLink>http://gq.net.ru/2009/12/16/git-history-rewrite/</feedburner:origLink></item>
		<item>
		<title>Copyright ≠ Авторское право</title>
		<link>http://feedproxy.google.com/~r/gq/~3/ypxbR4y7iI8/</link>
		<comments>http://gq.net.ru/2009/12/15/copyright%e2%89%a0authorship/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 16:13:52 +0000</pubDate>
		<dc:creator>GQ</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Copyright]]></category>
		<category><![CDATA[Авторское право]]></category>
		<category><![CDATA[Удивительное]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://gq.net.ru/?p=386</guid>
		<description><![CDATA[Сегодня был ткнут мордой в очаровательный факт. Подавляющее большинство словарей трактует/переводит Копирайт как Авторское право. И я тоже был в этом долгое время уверен. Таки нет! Нам все эти годы врали! Английское Copyright обозначает только отчуждаемые авторские права. А к неотчуждаемым правам отношения не имеет. А вы говорите, что изюм это сушеный виноград&#8230;]]></description>
			<content:encoded><![CDATA[<p>Сегодня был ткнут мордой в очаровательный факт. Подавляющее большинство словарей трактует/переводит Копирайт как Авторское право. И я тоже был в этом долгое время уверен.</p>
<p>Таки нет! Нам все эти годы врали! Английское Copyright обозначает только отчуждаемые авторские права. А к неотчуждаемым правам отношения не имеет.</p>
<p>А вы говорите, что изюм это сушеный виноград&#8230;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gq?a=ypxbR4y7iI8:t6XGYJJ82so:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/gq?i=ypxbR4y7iI8:t6XGYJJ82so:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gq?a=ypxbR4y7iI8:t6XGYJJ82so:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/gq?i=ypxbR4y7iI8:t6XGYJJ82so:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/gq/~4/ypxbR4y7iI8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://gq.net.ru/2009/12/15/copyright%e2%89%a0authorship/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://gq.net.ru/2009/12/15/copyright%e2%89%a0authorship/</feedburner:origLink></item>
		<item>
		<title>NeTAMS in Debian</title>
		<link>http://feedproxy.google.com/~r/gq/~3/zHkZO47Mz-k/</link>
		<comments>http://gq.net.ru/2009/12/01/netams-in-debian/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 19:38:45 +0000</pubDate>
		<dc:creator>GQ</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[NeTAMS]]></category>

		<guid isPermaLink="false">http://gq.net.ru/2009/12/01/netams-in-debian/</guid>
		<description><![CDATA[Уж не знаю, имеет ли сегодня это какой смысл, но NeTAMS таки попал в архив Debian. А, с другой стороны, свободных аналогов-то и не видно что-то. ЗЫ В моем репозитории в секции main лежат бэкпорты под все актуальные дистрибутивы Debian/Ubuntu.]]></description>
			<content:encoded><![CDATA[<p>Уж не знаю, имеет ли сегодня это какой смысл, но NeTAMS таки попал в архив Debian. А, с другой стороны, свободных аналогов-то и не видно что-то.</p>
<p>ЗЫ В моем репозитории в секции main лежат бэкпорты под все актуальные дистрибутивы Debian/Ubuntu.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gq?a=zHkZO47Mz-k:GiiCdusvlnE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/gq?i=zHkZO47Mz-k:GiiCdusvlnE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gq?a=zHkZO47Mz-k:GiiCdusvlnE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/gq?i=zHkZO47Mz-k:GiiCdusvlnE:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/gq/~4/zHkZO47Mz-k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://gq.net.ru/2009/12/01/netams-in-debian/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		<feedburner:origLink>http://gq.net.ru/2009/12/01/netams-in-debian/</feedburner:origLink></item>
		<item>
		<title>Весёлые картинки</title>
		<link>http://feedproxy.google.com/~r/gq/~3/rLDBP8mIrXA/</link>
		<comments>http://gq.net.ru/2009/11/12/funny-pictures/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 19:05:17 +0000</pubDate>
		<dc:creator>GQ</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Оффлайн]]></category>
		<category><![CDATA[Слайды]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://gq.net.ru/?p=376</guid>
		<description><![CDATA[Вчера делал аж два рассказа про Debian. Один про то, как это всё вообще устроено, другой про то как выглядит работа мейнтейнера. Картинки раз и два. Upd: Лицензия на второй файл cc-3.0-by-sa, на первый, скорее всего тоже, но надо еще уточнить, потому что я использовал за основу творчество Сэма Хосевара, напишу ему и спрошу.]]></description>
			<content:encoded><![CDATA[<p>Вчера делал аж два рассказа про Debian. Один про то, как это всё вообще устроено, другой про то как выглядит работа мейнтейнера.<br />
Картинки <a href="http://gq.net.ru/wp-content/uploads/2009/11/DebianProject.odp">раз</a> и <a href="http://gq.net.ru/wp-content/uploads/2009/11/Debian.packaging.odp">два</a>.</p>
<p>Upd: Лицензия на второй файл cc-3.0-by-sa, на первый, скорее всего тоже, но надо еще уточнить, потому что я использовал за основу творчество Сэма Хосевара, напишу ему и спрошу.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gq?a=rLDBP8mIrXA:tqZhpiSxzpc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/gq?i=rLDBP8mIrXA:tqZhpiSxzpc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gq?a=rLDBP8mIrXA:tqZhpiSxzpc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/gq?i=rLDBP8mIrXA:tqZhpiSxzpc:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/gq/~4/rLDBP8mIrXA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://gq.net.ru/2009/11/12/funny-pictures/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://gq.net.ru/2009/11/12/funny-pictures/</feedburner:origLink></item>
		<item>
		<title>Басня о гит</title>
		<link>http://feedproxy.google.com/~r/gq/~3/yN2zgNP5S7M/</link>
		<comments>http://gq.net.ru/2009/10/23/the-git-gable/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 07:57:14 +0000</pubDate>
		<dc:creator>GQ</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://gq.net.ru/?p=374</guid>
		<description><![CDATA[Эдик Торощин перевел довольно забавную байку. Читать здесь.]]></description>
			<content:encoded><![CDATA[<p>Эдик Торощин перевел довольно забавную байку.<br />
<a href=http://hades.name/blog/2009/05/23/the-git-parable-ru/>Читать здесь.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gq?a=yN2zgNP5S7M:eAfZXulsRmY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/gq?i=yN2zgNP5S7M:eAfZXulsRmY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gq?a=yN2zgNP5S7M:eAfZXulsRmY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/gq?i=yN2zgNP5S7M:eAfZXulsRmY:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/gq/~4/yN2zgNP5S7M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://gq.net.ru/2009/10/23/the-git-gable/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://gq.net.ru/2009/10/23/the-git-gable/</feedburner:origLink></item>
		<item>
		<title>Смена бизнес-модели</title>
		<link>http://feedproxy.google.com/~r/gq/~3/GbLZObyvVbs/</link>
		<comments>http://gq.net.ru/2009/10/15/business-model-switch/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 12:53:34 +0000</pubDate>
		<dc:creator>GQ</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Восхитительное]]></category>
		<category><![CDATA[Музыка]]></category>
		<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[OnLine]]></category>

		<guid isPermaLink="false">http://gq.net.ru/2009/10/15/%d1%81%d0%bc%d0%b5%d0%bd%d0%b0-%d0%b1%d0%b8%d0%b7%d0%bd%d0%b5%d1%81-%d0%bc%d0%be%d0%b4%d0%b5%d0%bb%d0%b8/</guid>
		<description><![CDATA[Производишь музыку? Продавать компакт диски уже не модно. Продавать треки через интернет-магазин? Прошлый век. Новые возможности, новые горизонты, растущая прибыль.]]></description>
			<content:encoded><![CDATA[<p>Производишь музыку? Продавать компакт диски уже не модно. Продавать треки через интернет-магазин? Прошлый век. <a href="http://www.securitylab.ru/news/386438.php" title="я сам фшоке">Новые возможности, новые горизонты, растущая прибыль.</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gq?a=GbLZObyvVbs:BRSVbrPbAhU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/gq?i=GbLZObyvVbs:BRSVbrPbAhU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gq?a=GbLZObyvVbs:BRSVbrPbAhU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/gq?i=GbLZObyvVbs:BRSVbrPbAhU:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/gq/~4/GbLZObyvVbs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://gq.net.ru/2009/10/15/business-model-switch/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://gq.net.ru/2009/10/15/business-model-switch/</feedburner:origLink></item>
		<item>
		<title>MyDNS to BIND convert script</title>
		<link>http://feedproxy.google.com/~r/gq/~3/5TlDiGTMc44/</link>
		<comments>http://gq.net.ru/2009/09/27/mydns-to-bind-convert-script/#comments</comments>
		<pubDate>Sun, 27 Sep 2009 13:34:24 +0000</pubDate>
		<dc:creator>GQ</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[BIND]]></category>
		<category><![CDATA[ispconfig]]></category>
		<category><![CDATA[IXFR]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MyDNS]]></category>

		<guid isPermaLink="false">http://gq.net.ru/?p=364</guid>
		<description><![CDATA[Понадобилось мне тут на одном хосте поднять ispconfig. Ниче так, работает, одна проблема: для поддержки DNS там используется MyDNS (реально mydns-ng), который как-то странно работает. В частности он не умеет (не смотря на заявления автора) IXFR, так что на нормальные вторичники зона не трансферится, пока там явно не включишь request-ixfr no; для первичного сервера. И [...]]]></description>
			<content:encoded><![CDATA[<p>Понадобилось мне тут на одном хосте поднять ispconfig. Ниче так, работает, одна проблема: для поддержки DNS там используется MyDNS (реально mydns-ng), который как-то странно работает. В частности он не умеет (не смотря на заявления автора) IXFR, так что на нормальные вторичники зона не трансферится, пока там явно не включишь request-ixfr no; для первичного сервера. И вроде как заменить MyDNS нечем, исправить нереально, а работать должно. В итоге родилась извращенная идея генерить гонфиги и зоны для BIND на лету. Был написан такой скрипт:</p>
<pre>#!/bin/sh

rm -f /etc/bind/mydns/db.*
echo -n > /etc/bind/named.conf.mydns

echo "select origin from dns_soa where active='Y';" | mysql --defaults-file=/etc/mysql/debian.cnf dbispconfig | while read DOMAIN;do
[ "$DOMAIN" = "origin" ]&amp;&amp;continue

mydnsexport "$DOMAIN" &gt; /etc/bind/mydns/db."$DOMAIN"

XFER=$(echo "select xfer from dns_soa where origin=\"$DOMAIN\"" | mysql --defaults-file=/etc/mysql/debian.cnf dbispconfig | tail -n1|tr , \;| sed -e 's/;;/;/g' -e 's/^;$//')\;

echo "zone \"$DOMAIN\" { type master; allow-transfer { $XFER }; file \"/etc/bind/mydns/db.$DOMAIN\"; };" &gt;&gt; /etc/bind/named.conf.mydns

done

/etc/init.d/bind9 reload &gt; /dev/null</pre>
<p>где /etc/mysql/debian.cnf &#8211; это файл содержащий параметры доступа к mysql:</p>
<pre>[client]
host     = localhost
user     = root
password = password
socket   = /var/run/mysqld/mysqld.sock</pre>
<p>Правда, как оказалось, mydnsexport генерирует невалидный файл зоны, так что пришлось его слегка пропатчить:</p>
<pre>diff -rNu mydns-1.2.8/src/lib/rr.c mydns-1.2.8.patched/src/lib/rr.c
--- mydns-1.2.8/src/lib/rr.c	2009-02-03 12:15:26.000000000 +0300
+++ mydns-1.2.8.patched/src/lib/rr.c	2009-09-27 05:00:26.000000000 +0400
@@ -866,6 +866,7 @@
 			     "%s%s%s"
 			     "%s%s"
 			     "%s%s"
+			     "%s"
 			     "%s",

 			     columns,
@@ -891,8 +892,9 @@
 			     (filter)? " AND " : "",
 			     (filter)? filter : "",

+			     " ORDER BY name,type",
 			     /* Optional sorting */
-			     (mydns_rr_use_stamp)? " ORDER BY stamp DESC" : "");
+			     (mydns_rr_use_stamp)? ",stamp DESC" : "");

   RELEASE(namequery);
</pre>
<p>Ну и вставить вызов скрипта в крон. Извращение, но работает.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gq?a=5TlDiGTMc44:uYJhIn-6NAU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/gq?i=5TlDiGTMc44:uYJhIn-6NAU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gq?a=5TlDiGTMc44:uYJhIn-6NAU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/gq?i=5TlDiGTMc44:uYJhIn-6NAU:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/gq/~4/5TlDiGTMc44" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://gq.net.ru/2009/09/27/mydns-to-bind-convert-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://gq.net.ru/2009/09/27/mydns-to-bind-convert-script/</feedburner:origLink></item>
		<item>
		<title>Встреча выпускников Лицея 1502</title>
		<link>http://feedproxy.google.com/~r/gq/~3/FrSOow6FWXE/</link>
		<comments>http://gq.net.ru/2009/09/07/lyceum-graduates-meeting/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 11:05:31 +0000</pubDate>
		<dc:creator>GQ</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[1502]]></category>
		<category><![CDATA[Лицей]]></category>
		<category><![CDATA[Оффлайн]]></category>
		<category><![CDATA[Радостное]]></category>

		<guid isPermaLink="false">http://gq.net.ru/?p=358</guid>
		<description><![CDATA[Кросспост из списка рассылки. Всем привет. Как уже всем должно быть известно, в этом году Лицею исполняется 20 лет. В связи с этим планируется проведение встреч выпускников. Так как народу суммарно получается очень много, то было решено провести это мероприятие в 2 этапа: выпуски до 98го года включительно будут собираться 19го сентября, а с 99го [...]]]></description>
			<content:encoded><![CDATA[<p><em>Кросспост из списка рассылки.</em></p>
<p>Всем привет.</p>
<p>Как уже всем должно быть известно, в этом году Лицею исполняется 20 лет. В связи с этим планируется проведение встреч выпускников. Так как народу суммарно получается очень много, то было решено провести это мероприятие в 2 этапа: выпуски до 98го года включительно будут собираться 19го сентября, а с 99го по 2005 &#8211; 28го ноября.</p>
<p>Кашкарова сказала, что с Ольгой Николаевной у нее связь есть и, вероятно, она придет.</p>
<p>Официальная программа для нашего выпуска пока выглядит так: часов в 11 сбор в Лицее в отдельной аудитории (классами или парами классов), в 12 часов начало официальной части в актовом зале. Планируется, что Кашкарова с Чудовым расскажут о том что и как сейчас происходит в Лицее, покажут видео о лицее вообще и нарезку архивов, касающихся нашего выпуска. Ну и, естественно, аэробика, чтобы добить эту программу до положенных полутора часов =)</p>
<p>Также планируется в каком-то виде экскурсия по Лицею.</p>
<p>После этого можно еще какое-то время походить по Лицею, пообщаться с преподавателями (Обещали постараться собрать не только тех, кто работает в Лицее сейчас, но и тех, кто работал во время нашего там обучения.), посмотреть что к чему. После этого можно, например, пойти классом в какой-нибудь кабак чтобы продолжить там.</p>
<p>Планы пока что предварительные, возможно что-то будет скорректировано по результатам сентябрьской встречи.</p>
<p>Если у кого-то есть желание принять участие в официальной программе с песней, пляской или иным цирковым номером &#8211; то можете обращаться к Кашкаровой либо напрямую, либо, если хотите, через меня.</p>
<p>Опять же если есть какие-то предложения/пожелания &#8211; их можно высказывать.</p>
<p>Кашкарова с Чудовым очень боятся возможного количества участников и даже кагбе намекали, что если кому неинтересно, то тянуть их на встречу не надо, тем не менее, передайте по возможности эту информацию своим знакомым из других классов и других выпусков, потому что из нашего<br />
выпуска на собрании присутствовали только Алла из XI-2-99 и я.</p>
<p>ЗЫ А новый бассейн на территории Лицея действительно построили <img src='http://gq.net.ru/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gq?a=FrSOow6FWXE:gSWgshV7P5w:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/gq?i=FrSOow6FWXE:gSWgshV7P5w:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gq?a=FrSOow6FWXE:gSWgshV7P5w:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/gq?i=FrSOow6FWXE:gSWgshV7P5w:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/gq/~4/FrSOow6FWXE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://gq.net.ru/2009/09/07/lyceum-graduates-meeting/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://gq.net.ru/2009/09/07/lyceum-graduates-meeting/</feedburner:origLink></item>
		<item>
		<title>RuNIX.org update</title>
		<link>http://feedproxy.google.com/~r/gq/~3/5Y5BjvtuVo0/</link>
		<comments>http://gq.net.ru/2009/08/28/runixorg-update/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 13:18:59 +0000</pubDate>
		<dc:creator>GQ</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Runix]]></category>

		<guid isPermaLink="false">http://gq.net.ru/2009/08/28/runixorg-update/</guid>
		<description><![CDATA[Обновили RuNIX.org. Детали тут. Порядок записей на странице &#8211; это артефакт обновления, насколько я понимаю, скорее всего в дальнейшем всё будет нормально. Со всеми замечаниями как всегда на root@runix.org. Cheers.]]></description>
			<content:encoded><![CDATA[<p>Обновили <a href=http://runix.org>RuNIX.org</a>. Детали <a href=http://sovety.blogspot.com/2009/08/runixorg-upgrade.html>тут</a>.<br />
Порядок записей на странице &#8211; это артефакт обновления, насколько я понимаю, скорее всего в дальнейшем всё будет нормально.</p>
<p>Со всеми замечаниями как всегда на root@runix.org.</p>
<p>Cheers.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gq?a=5Y5BjvtuVo0:kcGDEiHMBek:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/gq?i=5Y5BjvtuVo0:kcGDEiHMBek:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gq?a=5Y5BjvtuVo0:kcGDEiHMBek:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/gq?i=5Y5BjvtuVo0:kcGDEiHMBek:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/gq/~4/5Y5BjvtuVo0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://gq.net.ru/2009/08/28/runixorg-update/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://gq.net.ru/2009/08/28/runixorg-update/</feedburner:origLink></item>
		<item>
		<title>Калькуляция</title>
		<link>http://feedproxy.google.com/~r/gq/~3/Ho6bMM49us0/</link>
		<comments>http://gq.net.ru/2009/07/23/calculation/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 04:59:16 +0000</pubDate>
		<dc:creator>GQ</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Авто]]></category>
		<category><![CDATA[Удивительное]]></category>

		<guid isPermaLink="false">http://gq.net.ru/?p=348</guid>
		<description><![CDATA[Попалась мне тут в руки таможенная декларация на Renault Koleos. Почитал и проникся. Не ну я, конечно, слышал что всё плохо, но что так&#8230; Итак, Автофрамос ввозит машину. Цена машины: 426т.р. С нее снимают налог 1,8евро на кубик: 162т.р. Потом еще и c мощности 194р. за 0,75киловатт: 33т.р. Дальше мне очень нравится: взимается еще 18%, [...]]]></description>
			<content:encoded><![CDATA[<p>Попалась мне тут в руки таможенная декларация на Renault Koleos. Почитал и проникся. Не ну я, конечно, слышал что всё плохо, но что так&#8230;</p>
<p>Итак, Автофрамос ввозит машину. Цена машины: 426т.р.<br />
С нее снимают налог 1,8евро на кубик: 162т.р.<br />
Потом еще и c мощности 194р. за 0,75киловатт: 33т.р.<br />
Дальше мне очень нравится: взимается еще 18%, с <b>получившейся</b> суммы.<br />
Незаметно машина дорожает до 732т.р.<br />
В нашей стране умеют делать деньги.</p>
<p>ЗЫ А под французским именем-то скрывается кореец.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gq?a=Ho6bMM49us0:pOYbNiVfMSc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/gq?i=Ho6bMM49us0:pOYbNiVfMSc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gq?a=Ho6bMM49us0:pOYbNiVfMSc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/gq?i=Ho6bMM49us0:pOYbNiVfMSc:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/gq/~4/Ho6bMM49us0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://gq.net.ru/2009/07/23/calculation/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		<feedburner:origLink>http://gq.net.ru/2009/07/23/calculation/</feedburner:origLink></item>
		<item>
		<title>Git trac post-receive hook</title>
		<link>http://feedproxy.google.com/~r/gq/~3/MW1UvJhca0M/</link>
		<comments>http://gq.net.ru/2009/07/15/git-trac-post-receive-hook/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 14:46:42 +0000</pubDate>
		<dc:creator>GQ</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[hook]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Trac]]></category>

		<guid isPermaLink="false">http://gq.net.ru/?p=344</guid>
		<description><![CDATA[Добавил тут для одного из проектов хук в репозиторий, который закрывает тикеты по коммит-логам. Неочевидное тут вот что: закрывать тикеты надо тогда, когда коммит попадает на master (такая у нас модель разработки), соответственно надо отлавливать мержи и в случае мержа просматривать смерженные коммиты. Upd: Гит оказался умнее меня и сам (rev-list) выводит коммиты со смерженных [...]]]></description>
			<content:encoded><![CDATA[<p>Добавил тут для одного из проектов хук в репозиторий, который закрывает тикеты по коммит-логам.</p>
<p>Неочевидное тут вот что:<br />
закрывать тикеты надо тогда, когда коммит попадает на master (такая у нас модель разработки), соответственно надо отлавливать мержи и в случае мержа просматривать смерженные коммиты.</p>
<p><b>Upd</b>: Гит оказался умнее меня и сам (rev-list) выводит коммиты со смерженных веток. Поэтому всё намного проще и получившийся скрипт даже и не интересен ни разу.</p>
<p>Скрипт получился такой:<br />
<code>
<pre>#!/bin/sh
# This script is run after receive-pack has accepted a pack and the
# repository has been updated.  It is passed arguments in through stdin
# in the form
#  oldrev newrev refname
# For example:
#  aa453216d1b3e49e7f6f98441fa56946ddcd6a20 68f7abf4e6f922807889f52bc043ecd31b79f814 refs/heads/master

TRAC_HOOK="/srv/git/hooks/trac-post-commit-hook"
TRAC_DIR="/srv/trac/stand"

procrevs() {
    while read gitrev; do
	"$TRAC_HOOK" -p "$TRAC_DIR" -r "$gitrev"
    done
}

while read OLD NEW NAME;do
	test "$NAME" == "refs/heads/master"||continue
	git rev-list --no-merges "$OLD..$NEW"|procrevs
done
</pre>
<p></code></p>
<p>Где TRAC_HOOK &#8211; это trac-post-commit-hook из дистрибутива trac, TRAC_DIR &#8211; каталог с проектом trac. В самом trac&#8217;е должен быть включен и настроен плагин trac-git.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gq?a=MW1UvJhca0M:MqLM7AS9LB8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/gq?i=MW1UvJhca0M:MqLM7AS9LB8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gq?a=MW1UvJhca0M:MqLM7AS9LB8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/gq?i=MW1UvJhca0M:MqLM7AS9LB8:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/gq/~4/MW1UvJhca0M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://gq.net.ru/2009/07/15/git-trac-post-receive-hook/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://gq.net.ru/2009/07/15/git-trac-post-receive-hook/</feedburner:origLink></item>
		<item>
		<title>TWIMC</title>
		<link>http://feedproxy.google.com/~r/gq/~3/PHUJDKwaAmQ/</link>
		<comments>http://gq.net.ru/2009/07/02/twimc/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 00:51:04 +0000</pubDate>
		<dc:creator>GQ</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Оффлайн]]></category>

		<guid isPermaLink="false">http://gq.net.ru/2009/07/02/twimc/</guid>
		<description><![CDATA[TWIMC: Новоселье откладывается-таки на август. Улетел в Таганрог, в субботу вечером только вернусь.]]></description>
			<content:encoded><![CDATA[<p>TWIMC: Новоселье откладывается-таки на август. Улетел в Таганрог, в субботу вечером только вернусь.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gq?a=PHUJDKwaAmQ:kclGNe5CKp4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/gq?i=PHUJDKwaAmQ:kclGNe5CKp4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gq?a=PHUJDKwaAmQ:kclGNe5CKp4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/gq?i=PHUJDKwaAmQ:kclGNe5CKp4:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/gq/~4/PHUJDKwaAmQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://gq.net.ru/2009/07/02/twimc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://gq.net.ru/2009/07/02/twimc/</feedburner:origLink></item>
	</channel>
</rss>
