<?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/" version="2.0">

<channel>
	<title>Simulyant's blog</title>
	
	<link>http://otryvankin.com</link>
	<description>Блог о моделировании, аналитике и околокомпьютерных вещах</description>
	<lastBuildDate>Fri, 03 Sep 2010 06:57:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/SimulyantsBlog" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="simulyantsblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FSimulyantsBlog" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FSimulyantsBlog" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FSimulyantsBlog" 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 xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.bloglines.com/sub/http://feeds.feedburner.com/SimulyantsBlog" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FSimulyantsBlog" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FSimulyantsBlog" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FSimulyantsBlog" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://lenta.yandex.ru/settings.xml?name=feed&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2FSimulyantsBlog" src="http://lenta.yandex.ru/i/addfeed.gif">?????? ? ??????.?????</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2FSimulyantsBlog" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2FSimulyantsBlog" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2FSimulyantsBlog" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.newsalloy.com/?rss=http%3A%2F%2Ffeeds.feedburner.com%2FSimulyantsBlog" src="http://www.newsalloy.com/subrss3.gif">Subscribe with NewsAlloy</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2FSimulyantsBlog" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FSimulyantsBlog" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FSimulyantsBlog" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FSimulyantsBlog" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FSimulyantsBlog" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2FSimulyantsBlog" src="http://www.flurry.com/images/flurry_rss_logo2.gif">Subscribe with Flurry</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2FSimulyantsBlog" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2FSimulyantsBlog" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><item>
		<title>Установка g-client в emacs под Windows</title>
		<link>http://otryvankin.com/?p=755</link>
		<comments>http://otryvankin.com/?p=755#comments</comments>
		<pubDate>Thu, 02 Sep 2010 13:54:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Без рубрики]]></category>
		<category><![CDATA[Emacs]]></category>
		<category><![CDATA[g-client]]></category>
		<category><![CDATA[greader]]></category>
		<category><![CDATA[Raman]]></category>
		<category><![CDATA[w3m]]></category>

		<guid isPermaLink="false">http://otryvankin.com/?p=755</guid>
		<description><![CDATA[Для чтения новостной ленты Google Reader в emacs есть специальный плагин g-client. Кроме Google Reader g-client поддерживает и другие сервисы Google &#8211; Calendar, Blogger. G-client входит в состав проекта Emacspeak. Emacspeak разрабатывает T.V. Raman из Корнелльского университета. Raman активно работает над проектом Emacspeak, но g-client не обновлялся с марта 2007. G-client использует аутентификацию на Google [...]]]></description>
			<content:encoded><![CDATA[<div>Для чтения новостной ленты Google Reader в emacs есть специальный плагин <a href="http://code.google.com/p/emacspeak/downloads/detail?name=g-client.tar.bz2">g-client</a>. <span id="more-755"></span>Кроме Google Reader g-client поддерживает и другие сервисы Google &#8211; Calendar, Blogger. G-client входит в состав проекта <a href="http://code.google.com/p/emacspeak/">Emacspeak</a>. Emacspeak разрабатывает <a href="http://en.wikipedia.org/wiki/T._V._Raman">T.V. Raman</a> из Корнелльского университета. Raman активно работает над проектом Emacspeak, но g-client не обновлялся с марта 2007. G-client использует аутентификацию на Google Reader через токен SID. Весной 2010 аутентификация по токену SID в Google API была отключена. Сейчас не-web приложения должны аутентифицироваться через токен Auth. Следовательно, если сейчас просто установить g-client, то он не будет работать. До внесения в механизм аутентификации g-client curl, запущенный из консоли cygwin bash, с теми же параметрами, которые ему передает g-client, у меня возвращал следующее:</div>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;</span>table<span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;</span>tbody<span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;</span><span style="color: #c20cb9; font-weight: bold;">tr</span><span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;</span>td <span style="color: #007800;">rowspan</span>=<span style="color: #ff0000;">&quot;3&quot;</span> <span style="color: #007800;">width</span>=<span style="color: #ff0000;">&quot;1%&quot;</span><span style="color: #000000; font-weight: bold;">&gt;&lt;</span>strong<span style="color: #000000; font-weight: bold;">&gt;&lt;</span>span <span style="color: #007800;">style</span>=<span style="color: #ff0000;">&quot;font-family: times; color: #0039b6;&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span>G<span style="color: #000000; font-weight: bold;">&lt;/</span>span<span style="color: #000000; font-weight: bold;">&gt;&lt;</span>span <span style="color: #007800;">style</span>=<span style="color: #ff0000;">&quot;font-family: times; color: #c41200;&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span>o<span style="color: #000000; font-weight: bold;">&lt;/</span>span<span style="color: #000000; font-weight: bold;">&gt;&lt;</span>span <span style="color: #007800;">style</span>=<span style="color: #ff0000;">&quot;font-family: times; color: #f3c518;&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span>o<span style="color: #000000; font-weight: bold;">&lt;/</span>span<span style="color: #000000; font-weight: bold;">&gt;&lt;</span>span <span style="color: #007800;">style</span>=<span style="color: #ff0000;">&quot;font-family: times; color: #0039b6;&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span>g<span style="color: #000000; font-weight: bold;">&lt;/</span>span<span style="color: #000000; font-weight: bold;">&gt;&lt;</span>span <span style="color: #007800;">style</span>=<span style="color: #ff0000;">&quot;font-family: times; color: #30a72f;&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span>l<span style="color: #000000; font-weight: bold;">&lt;/</span>span<span style="color: #000000; font-weight: bold;">&gt;&lt;</span>span <span style="color: #007800;">style</span>=<span style="color: #ff0000;">&quot;font-family: times; color: #c41200;&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span>e<span style="color: #000000; font-weight: bold;">&lt;/</span>span<span style="color: #000000; font-weight: bold;">&gt;</span>  <span style="color: #000000; font-weight: bold;">&lt;/</span>strong<span style="color: #000000; font-weight: bold;">&gt;&lt;/</span>td<span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;</span>td<span style="color: #000000; font-weight: bold;">&gt;&lt;/</span>td<span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;/</span><span style="color: #c20cb9; font-weight: bold;">tr</span><span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;</span><span style="color: #c20cb9; font-weight: bold;">tr</span><span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;</span>td <span style="color: #007800;">bgcolor</span>=<span style="color: #ff0000;">&quot;#3366cc&quot;</span><span style="color: #000000; font-weight: bold;">&gt;&lt;</span>span <span style="color: #007800;">style</span>=<span style="color: #ff0000;">&quot;font-family: arial, sans-serif; color: #ffffff;&quot;</span><span style="color: #000000; font-weight: bold;">&gt;&lt;</span>strong<span style="color: #000000; font-weight: bold;">&gt;</span>Error<span style="color: #000000; font-weight: bold;">&lt;/</span>strong<span style="color: #000000; font-weight: bold;">&gt;&lt;/</span>span<span style="color: #000000; font-weight: bold;">&gt;&lt;/</span>td<span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;/</span><span style="color: #c20cb9; font-weight: bold;">tr</span><span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;</span><span style="color: #c20cb9; font-weight: bold;">tr</span><span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;</span>td<span style="color: #000000; font-weight: bold;">&gt;&lt;/</span>td<span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;/</span><span style="color: #c20cb9; font-weight: bold;">tr</span><span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;/</span>tbody<span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;/</span>table<span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;</span>blockquote<span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;</span>h1<span style="color: #000000; font-weight: bold;">&gt;</span>Forbidden<span style="color: #000000; font-weight: bold;">&lt;/</span>h1<span style="color: #000000; font-weight: bold;">&gt;</span>
Your client does not have permission to get URL <span style="color: #000000; font-weight: bold;">&lt;</span>code<span style="color: #000000; font-weight: bold;">&gt;/</span>reader<span style="color: #000000; font-weight: bold;">/</span>api<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">0</span><span style="color: #000000; font-weight: bold;">/</span>token<span style="color: #000000; font-weight: bold;">&lt;/</span>code<span style="color: #000000; font-weight: bold;">&gt;</span> from this server.<span style="color: #000000; font-weight: bold;">&lt;/</span>blockquote<span style="color: #000000; font-weight: bold;">&gt;</span></pre></div></div>

<div>Не в упрёк Raman&#8217;у будет сказано, но я написал ему об этой проблеме 31.08.2010 и не получил никакого ответа. К <a href="http://code.google.com/p/emacspeak/source/checkout">SVN с исходниками g-client</a> есть доступ только на чтение. Поэтому, далее я опишу как сделать так, чтобы g-client работал.</div>
<div>Я ставил g-client на компьютер с ОС Windows XP S3. Поэтому в качестве emacs использовался <a href="http://www.emacswiki.org/emacs/EmacsW32">EmacsW32</a>. Установка под Linux в целом аналогична, но намного проще. В Linux не надо решать проблемы отсутствия некоторых консольных утилит. Кроме того, Emacspeak есть в Ubuntu 10.04 в SoftwareCenter.</div>
<div>Итак, для установки и работы g-client потребуется ряд консольных утилит. Я использовал <a href="http://www.cygwin.com/">cygwin</a>. Но это не единственный вариант. Можно, например, использовать <a href="http://www.mingw.org/">MiniGW</a>. Есть и другие альтернативы. Cygwin я выбрал потому что он хорошо интегрируется с emacs и потому что в cygwin есть большой набор консольных утилит. Про процесс настройки cygwin для emacs я уже писал <a href="http://otryvankin.com/?p=759">тут</a>.Можно сначала поставить самые необходимые, а потом по мере необходимости доустановить то, что требуется.</div>
<div>Итак, необходимы следующие *nix консольные утилиты:</div>
<ul>
<li>для компиляции исходников g-client на ELisp потребуется утилита make;</li>
<li>для работы g-client с HTTP используется утилита curl;</li>
<li>для осуществления XSLT-преобразования полученного XML от Google Reader используется утилита xsltproc.</li>
</ul>
<p>Утилита <a href="http://www.boscomonkey.com/2006/09/xsltproc-on-cygwin.html">xsltproc присутствует в cygwin</a> <a href="http://www.cygwin.com/ml/cygwin-announce/2002/msg00018.html">в составе пакета libxslt</a> в категории Libs.</p>
<p>Для просмотра результирующей HTML-страницы я использовал emacs браузер <a href="http://emacs-w3m.namazu.org/">emacs-w3m</a>. Разумеется, может быть использован любой другой браузер. Но тогда какой смысл разбираться с g-client под emacs если для просмотра будет использоваться сторонний браузер. Хотя, emacs-w3m имеет свои недостатки, но об этом после. Emacs-w3m &#8211; это набор скриптов на ELisp, которые реализуют интерфейс в emacs к консольному браузеру <a href="http://w3m.sourceforge.net/">w3m</a>. Соответственно, в cygwin я устанавливал ещё и w3m. Но установка и настройка emacs-w3m &#8211; это отдельная песня. Не будет отвлекаться.</p>
<p>Вообще говоря, после того, как вы разместили el-скрипты в какой-либо подходящей директории (например, C:\Documents and Settings\&lt;username&gt;\Application Data\.emacs.d\g-client) их необходимо скомпилировать. скомпилированные el-файлы имеют расширение elc. Для компиляции el-файлов необходимо в emacs выполнить команду &laquo;M-x byte-recompile-directory&raquo; для компиляции всех файлов в директории или &laquo;M-x byte-compile-file&raquo; для компиляции конкретного файла. Перекомпиляцию скриптов потребуется делать ещё и далее после внесения изменений в файлы.</p>
<p>При компиляции файлов g-client постоянно возникают предупреждения &laquo;cl package required at runtime&raquo;. Эти предупреждения можно просто игнорировать.</p>
<p>Если в процессе работы с emacs у вас будет возникать ошибка &laquo;Symbol&#8217;s function definition is void: &lt;function_name&gt;&raquo; и если вы уверены. что эта функция должна быть видима попробуйте перекомпилировать модуль с этой функцией командой &laquo;M-x byte-compile-file&raquo;. Команда &laquo;M-x byte-recompile-directory&raquo; в таких случаях мне не помогала.</p>
<p>В файл .emacs необходимо внести следующие строки:</p>

<div class="wp_syntax"><div class="code"><pre class="lisp" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span>add-to-<span style="color: #b1b100;">list</span> 'load-path <span style="color: #ff0000;">&quot;~/.emacs.d/g-client&quot;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>load-library <span style="color: #ff0000;">&quot;g-loaddefs&quot;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">setq</span> g-user-email <span style="color: #ff0000;">&quot;your_email@gmail.com&quot;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">setq</span> g-html-handler 'w3m-buffer<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>autoload 'w3m-buffer <span style="color: #ff0000;">&quot;w3m&quot;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">setq</span> max-lisp-eval-depth <span style="color: #cc66cc;">1000</span><span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>Строка &laquo;(setq g-html-handler &#8216;w3m-buffer)&raquo; определяет, что просмотр результирующей html-страницы будет осуществляться браузером emacs-w3m. Последующие две строки &#8211; &laquo;(autoload &#8216;w3m-buffer &laquo;w3m&raquo;)&raquo; и &laquo;(setq max-lisp-eval-depth 1000)&raquo; необходимы для корректной работы браузера emacs-w3m с g-client.</p>
<p>Функция w3m-buffer используется для рендеринга текущего буфера. Она была добавлена в в emacs-w3m в модуль w3m.el 2006-10-02.</p>
<p>Параметр max-lisp-eval-depth по умолчанию у меня был равна 800. При этом в процессе рендеринга результирующей html-страницы браузером emacs-w3m возникало сообщение &raquo;with-current-buffer: Lisp nesting exceeds `max-lisp-eval-depth&#8217;&raquo;. При увеличении значения этой переменной до 1000 такая ошибка больше не возникала.</p>
<p>Теперь перейдем к исправлению механизма аутентификации в модуле greader.el. Google Reader больше не поддерживает аутентификацию по токену SID (<a href="http://code.google.com/intl/ru-RU/apis/accounts/docs/AuthForInstalledApps.html">proof link</a>), которая используется в модуле greader.el. Надо использовать аутентификацию по токену Auth.</p>
<p>1. В модуле g-auth.el:</p>
<p>1.1. в структуре g-auth удалим (или безопаснее закомментировать) поле &laquo;session-id&raquo; за ненадобностью</p>

<div class="wp_syntax"><div class="code"><pre class="lisp" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span>defstruct g-auth
  <span style="color: #66cc66;">&#40;</span>username  <span style="color: #66cc66;">&#40;</span>user-login-<span style="color: #b1b100;">name</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
  email
  password
  token
  <span style="color: #808080; font-style: italic;">;session-id ;gsession-id</span>
  cookie-alist
  service
  <span style="color: #66cc66;">&#40;</span>lifetime  g-auth-lifetime<span style="color: #66cc66;">&#41;</span>
  timestamp
  post-auth-action<span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>1.2. в функции g-authenticate при вызове shell-command-on-region добавил параметр g-curl-common-options после g-curl-program. Соответственно в строку функции format необходимо добавить &laquo;%s&raquo; в соответствующую позицию.  В параметр g-curl-common-options в конце добавил ключ &laquo;&#8211;insecure&raquo;. Этот ключ необходим для того, чтобы пока не заморачиваться с настройкой SSL-сертификатов для curl при взаимодействии с Google API. Установить значение параметра g-curl-common-options можно или через setq в файле .emacs или можно использовать команду &laquo;M-x customize-option&raquo;. Параметр g-curl-common options у меня в итоге равен &laquo;&#8211;compressed &#8211;silent &#8211;location &#8211;location-trusted &#8211;insecure&raquo;. Если SSL для curl + g-client не настроить, то может возникать сообщение &laquo;cURL ERROR: 60: SSL certificate problem&raquo;.</p>

<div class="wp_syntax"><div class="code"><pre class="lisp" style="font-family:monospace;">       <span style="color: #66cc66;">&#40;</span>format <span style="color: #ff0000;">&quot;%s %s %s -X POST --data-binary @- %s 2&amp;gt;/dev/null&quot;</span>
               g-curl-program g-curl-common-options g-cookie-options
               <span style="color: #66cc66;">&#40;</span>g-auth-url <span style="color: #66cc66;">&#40;</span>g-auth-service auth-handle<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>2. В модуле greader.el:</p>
<p>2.1. В функции greader-post-authenticate-function оставим только проверку auth handle, так как токен был уже установлен в функции g-authenticate в модуле g-auth.el:</p>

<div class="wp_syntax"><div class="code"><pre class="lisp" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span>unless <span style="color: #66cc66;">&#40;</span>greader-p <span style="color: #66cc66;">&#40;</span>g-auth-service auth-handle<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">error</span> <span style="color: #ff0000;">&quot;This auth handle is not for Google Reader.&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&lt;</span>span style<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; white-space: normal; font-size: 13px;&quot;</span><span style="color: #66cc66;">&gt;</span> <span style="color: #66cc66;">&lt;</span>/span<span style="color: #66cc66;">&gt;</span></pre></div></div>

<p>Функция greader-post-authenticate-function у меня в итоге выглядит так:</p>

<div class="wp_syntax"><div class="code"><pre class="lisp" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">defun</span> greader-post-authenticate-<span style="color: #b1b100;">function</span> <span style="color: #66cc66;">&#40;</span>auth-handle<span style="color: #66cc66;">&#41;</span>
  <span style="color: #ff0000;">&quot;Run Googlre Reader post-auth steps.&quot;</span>
  <span style="color: #66cc66;">&#40;</span>unless <span style="color: #66cc66;">&#40;</span>greader-p <span style="color: #66cc66;">&#40;</span>g-auth-service auth-handle<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">error</span> <span style="color: #ff0000;">&quot;This auth handle is not for Google Reader.&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>2.2. В функции greader-preferences при обращении к функции g-json-get-result в строке format вместо &laquo;&#8211;cookie SID=&#8217;%s&#8217;&raquo; необходимо оставить просто &laquo;%s&raquo;. А в значениях параметров вместо &laquo;(g-cookie &laquo;SID&raquo; greader-auth-handle)&raquo; указать &laquo;(g-authorization greader-auth-handle)&raquo;. Этот параметр задаёт header с токеном Auth для нового вида авторизации. Аналогичные исправления необходимо сделать во всех остальных местах &#8211; в функциях greader-feed-list, greader-tag-list, greader-tagged-reading-list, greader-update-subscription, greader-add-label, greader-star. То есть, фрагмент кода выглядел так:</p>

<div class="wp_syntax"><div class="code"><pre class="lisp" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span>format
  <span style="color: #ff0000;">&quot;%s %s --cookie SID='%s' %s 2&amp;gt;/dev/null&quot;</span>
  g-curl-program g-curl-common-options
  <span style="color: #66cc66;">&#40;</span>g-cookie <span style="color: #ff0000;">&quot;SID&quot;</span> greader-auth-handle<span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>А исправленный вариант выглядит так:</p>

<div class="wp_syntax"><div class="code"><pre class="lisp" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span>format
  <span style="color: #ff0000;">&quot;%s %s %s %s 2&amp;gt;/dev/null&quot;</span>
  g-curl-program g-curl-common-options
  <span style="color: #66cc66;">&#40;</span>g-authorization greader-auth-handle<span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>Теперь необходимо изменить кодировку в файле atom-view.xsl &#8211; &laquo;iso8859-15&#8243; на &laquo;utf-8&#8243;. Это необходимо для корректного преобразования кириллицы в процессе XSLT-преобразования.</p>
<p>В общем-то это всё. Теперь можно перекомпилировать измененные файлы и запускать команду &laquo;M-x greader-reading-list&raquo;. Если все будет успешно, то запросится пароль Google, а затем отобразится html-страница с новостями Google Reader.</p>
<p>Если возникает сообщение &laquo;Error=BadAuthentication&raquo;, значит некорректно настроена аутентификация curl. Используйте отладку. Я для отладки curl собирал результирующую командную строку curl и запускал её в cygwin bash. А вообще, в процессе решения этой проблемы с g-client мне пришлось разобраться в основах языка ELisp, его компиляции и в механизмах его отладки в emacs (директива debug и интерактивный отладчик edebug). Но отладка Lisp &#8211; это отдельная большая тема. Которая, к тому же хорошо освещена в документации. Интерактивный отладчик edebug сильно помогает, но почему-то у меня не получилось с помощью edebug отлаживать функцию, которая вызывается не непосредственно, а через цепочку вызовов из других функций. В случае таких цепочек вызовов приходилось включать edebug для всей цепочки. И еще одно неудобство &#8211; нельзя посмотреть (или я просто пока не нашел как) для каких функций включен edebug.</p>
<p>Долгое время у меня после выполнения команды &laquo;M-x greader-reading-list&raquo; и ввода пароля в буфере &laquo;g scratch&raquo; возникала следующая ошибка: &laquo;warning: failed to load external entity &laquo;c:/Documents&raquo; cannot parse c:/Documents&raquo;. Проблема решилась перекомпиляцией некоторых модулей emacs-w3m командой &laquo;M-x byte-compile-file&raquo;.</p>
<p>У меня браузер emacs-w3m отображает результирующую html-страницу отвратительно. Зачем-то добавляет в тэги a параметр HSEQ (см. приведенные ниже скриншоты). Многие гиперссылки не отображает как гиперссылки. Но это проблемы emacs-w3m, а не g-client. Тот же самый html-файл прекрасно отображается в Google Chrome.</p>
<p>После всех настроек после запуска функции g-display-result (она вызывается из функции greader-reading-list) у меня html-страница отображается, но возникает сообщение &laquo;edebug-after: Wrong type argument: char-or-string-p, #&raquo;. Эта ошибка возникает из-за передачи имени буфера без кавычек в emacs-w3m:</p>

<div class="wp_syntax"><div class="code"><pre class="lisp" style="font-family:monospace;">w3m-string-match-url-components-<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#40;</span>#<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>condition-<span style="color: #b1b100;">case</span> <span style="color: #b1b100;">nil</span> <span style="color: #66cc66;">&#40;</span>string-match w3m-url-components-regexp string<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">error</span> <span style="color: #66cc66;">&#40;</span>w3m-string-match-url-components-<span style="color: #cc66cc;">1</span> string<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">let</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>string base<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span>condition-<span style="color: #b1b100;">case</span> <span style="color: #b1b100;">nil</span> <span style="color: #66cc66;">&#40;</span>string-match w3m-url-components-regexp string<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">error</span> <span style="color: #66cc66;">...</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>w3m-string-match-url-components base<span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>У меня стояла достаточно новая, но не самая последняя версия emacs-w3m &#8211; от 30 июля 2010. Поставил самую последную девелоперсую версию emacs-w3m от 2 сентября.</p>
<p>Возможно, у меня установлена не самая последняя версия emacs-w3m. Возможно, для устранения ошибок emacs-w3m следует обновить на девелоперскую версию.</p>
<p>Вот скриншоты того, что у нас получилось:</p>
<div id="attachment_848" class="wp-caption alignnone" style="width: 310px"><a href="http://otryvankin.com/wp-content/uploads/2010/09/greader_content.jpg"><img class="size-medium wp-image-848" title="Содержание greader в emacs-w3m" src="http://otryvankin.com/wp-content/uploads/2010/09/greader_content-300x283.jpg" alt="" width="300" height="283" /></a><p class="wp-caption-text">Содержание greader в emacs-w3m</p></div>
<div id="attachment_849" class="wp-caption alignnone" style="width: 310px"><a href="http://otryvankin.com/wp-content/uploads/2010/09/greader_body.jpg"><img class="size-medium wp-image-849" title="Пример статьи greader в emacs-w3m" src="http://otryvankin.com/wp-content/uploads/2010/09/greader_body-300x283.jpg" alt="" width="300" height="283" /></a><p class="wp-caption-text">Пример статьи greader в emacs-w3m</p></div>
<div id="attachment_850" class="wp-caption alignnone" style="width: 310px"><a href="http://otryvankin.com/wp-content/uploads/2010/09/chrome_content.jpg"><img class="size-medium wp-image-850" title="Пример содержания из greader в Google Chrome" src="http://otryvankin.com/wp-content/uploads/2010/09/chrome_content-300x281.jpg" alt="" width="300" height="281" /></a><p class="wp-caption-text">Пример содержания из greader в Google Chrome</p></div>
<div id="attachment_851" class="wp-caption alignnone" style="width: 310px"><a href="http://otryvankin.com/wp-content/uploads/2010/09/chrome_body.jpg"><img class="size-medium wp-image-851" title="Пример статьи из greader в Google Chrome" src="http://otryvankin.com/wp-content/uploads/2010/09/chrome_body-300x237.jpg" alt="" width="300" height="237" /></a><p class="wp-caption-text">Пример статьи из greader в Google Chrome</p></div>
<p>Теперь что осталось сделать:</p>
<p>1. Настроить SSL-сертификаты для curl. Пример: &laquo;curl -E mycert.pem -F &laquo;fileupload=@foobar.png&raquo; http://example.com/secure-upload.php&raquo;</p>
<p>2. Проверить и при необходимости исправить время жизни токена в соответствии с настройками сервисов Google &laquo;Typically, tokens remain valid for 2 weeks&raquo;.</p>
<p>В ходе разбирательств с g-client я много искал в Интернет по этой теме. Информации мало. Есть <a href="http://emacspeak.blogspot.com/2007/03/emacs-client-for-google-services.html">пост</a> Raman&#8217;а от 02.03. 2007 в <a href="http://emacspeak.blogspot.com/">блоге Emacspeak</a>. Есть <a href="http://groups.google.com/group/emacs-g-client">Google группа emacs-g-client</a> (организованная также Раманом), но практически неактивная. Есть <a href="http://bc.tech.coop/blog/070306.html">пост</a> Билла Клементсона (Bill Clemenston) от 6.03.2007, в котором он подробно описывает процесс установки. Я написал Биллу письмо и он ответил следующее: &laquo;At some point, the g-client code changed and no longer worked with the code in my blog post. However, at that stage, I had already stopped using both w3m and g-client so I never bothered trying to debug the issues.&raquo;</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://otryvankin.com/?p=340" rel="bookmark" class="crp_title">Работа с R из Emacs (ESS)</a></li><li><a href="http://otryvankin.com/?p=199" rel="bookmark" class="crp_title">Ошибка SQLSTATE = 37000 в PowerDesigner</a></li><li><a href="http://otryvankin.com/?p=335" rel="bookmark" class="crp_title">Работа с R через Eclipse (StatEt)</a></li><li><a href="http://otryvankin.com/?p=306" rel="bookmark" class="crp_title">Кто и где использует PowerDesigner</a></li><li><a href="http://otryvankin.com/?p=189" rel="bookmark" class="crp_title">Сканирование портов SQL Server</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://otryvankin.com/?feed=rss2&amp;p=755</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Дочерние процессы в emacs</title>
		<link>http://otryvankin.com/?p=770</link>
		<comments>http://otryvankin.com/?p=770#comments</comments>
		<pubDate>Wed, 25 Aug 2010 13:10:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Без рубрики]]></category>
		<category><![CDATA[Emacs]]></category>

		<guid isPermaLink="false">http://otryvankin.com/?p=770</guid>
		<description><![CDATA[В emacs есть дочерние процессы или suprocesses. Например, когда вы запускаете shell из emacs вы запускаете дочерний процесс. Для настройки кодировок in и out для дочерних процессов есть переменная process-coding-system-alist. В этой переменной можно задать кодировки для конкретных процессов. Но как узнать точное имя процесса? Для получения списка процессов можно использовать команду M-x list-processes. Например, [...]]]></description>
			<content:encoded><![CDATA[<p>В emacs есть дочерние процессы или suprocesses. Например, когда вы запускаете shell из emacs вы запускаете дочерний процесс. Для настройки кодировок in и out для дочерних процессов есть переменная process-coding-system-alist. В этой переменной можно задать кодировки для конкретных процессов. Но как узнать точное имя процесса?</p>
<p>Для получения списка процессов можно использовать команду M-x list-processes. Например, с помощью этой команды я узнал, что при запуске консоли cmd.exe процесс называется не &laquo;cmd&raquo; и не &laquo;cmd.exe&raquo;, а &laquo;shell&raquo;.</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://otryvankin.com/?p=492" rel="bookmark" class="crp_title">Настройка русского языка в emacs</a></li><li><a href="http://otryvankin.com/?p=759" rel="bookmark" class="crp_title">cygwin shell в emacs</a></li><li><a href="http://otryvankin.com/?p=540" rel="bookmark" class="crp_title">Сообщения в WindowsMobile</a></li><li><a href="http://otryvankin.com/?p=335" rel="bookmark" class="crp_title">Работа с R через Eclipse (StatEt)</a></li><li><a href="http://otryvankin.com/?p=313" rel="bookmark" class="crp_title">Автозагрузка модулей в Windows R GUI</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://otryvankin.com/?feed=rss2&amp;p=770</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как просмотреть значение переменной в emacs</title>
		<link>http://otryvankin.com/?p=767</link>
		<comments>http://otryvankin.com/?p=767#comments</comments>
		<pubDate>Wed, 25 Aug 2010 11:45:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Без рубрики]]></category>
		<category><![CDATA[Emacs]]></category>

		<guid isPermaLink="false">http://otryvankin.com/?p=767</guid>
		<description><![CDATA[Emacs настраивается при помощи большого количества различных переменных. Для просмотра значения переменной можно использовать функцию describe-variable, которая обычно запускается сочетанием клавиш C-h v. Related Posts:Риэлтеры и тестированиеcygwin shell в emacsДанные для анализаЛокальная сеть между Ubuntu и Windows 7Дочерние процессы в emacsPowered by Contextual Related Posts]]></description>
			<content:encoded><![CDATA[<p>Emacs настраивается при помощи большого количества различных переменных. Для просмотра значения переменной можно использовать функцию describe-variable, которая обычно запускается сочетанием клавиш C-h v.</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://otryvankin.com/?p=230" rel="bookmark" class="crp_title">Риэлтеры и тестирование</a></li><li><a href="http://otryvankin.com/?p=759" rel="bookmark" class="crp_title">cygwin shell в emacs</a></li><li><a href="http://otryvankin.com/?p=424" rel="bookmark" class="crp_title">Данные для анализа</a></li><li><a href="http://otryvankin.com/?p=573" rel="bookmark" class="crp_title">Локальная сеть между Ubuntu и Windows 7</a></li><li><a href="http://otryvankin.com/?p=770" rel="bookmark" class="crp_title">Дочерние процессы в emacs</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://otryvankin.com/?feed=rss2&amp;p=767</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>cygwin shell в emacs</title>
		<link>http://otryvankin.com/?p=759</link>
		<comments>http://otryvankin.com/?p=759#comments</comments>
		<pubDate>Wed, 25 Aug 2010 07:07:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Без рубрики]]></category>
		<category><![CDATA[cygwin]]></category>
		<category><![CDATA[Emacs]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://otryvankin.com/?p=759</guid>
		<description><![CDATA[Если вы используете cygwin shell и emacs, то cygwin shell можно запускать не как отдельное приложение, а как буфер в emacs. Для того, чтобы использовать cygwin shell в emacs конечно в первую очередь необходим сам cygwin. Затем необходимо настроить параметр w32shell-cygwin-bin. В EmacsW32 настроить этот параметр можно через меню Options &#8211; Castomize EmacsW32 &#8211; Current [...]]]></description>
			<content:encoded><![CDATA[<p>Если вы используете cygwin shell и emacs, то cygwin shell можно запускать не как отдельное приложение, а как буфер в emacs.</p>
<p>Для того, чтобы использовать cygwin shell в emacs конечно в первую очередь необходим сам cygwin.</p>
<p>Затем необходимо настроить параметр w32shell-cygwin-bin. В EmacsW32 настроить этот параметр можно через меню Options &#8211; Castomize EmacsW32 &#8211; Current Cygwin path.</p>
<p>Cygwin у меня располагается в C:\cygwin\bin. Поэтому, значение переменной w32shell-cygwin-bin я установил в &raquo;/cygwin/bin&raquo;.</p>
<p>В файл .emacs следует добавить следующие строки:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#40;</span>setenv <span style="color: #ff0000;">&quot;PATH&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>concat <span style="color: #7a0874; font-weight: bold;">&#40;</span>getenv <span style="color: #ff0000;">&quot;PATH&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
			<span style="color: #ff0000;">&quot;;c:\\cygwin\\usr\\local\\bin&quot;</span>
			<span style="color: #ff0000;">&quot;;c:\\cygwin\\bin&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #7a0874; font-weight: bold;">&#40;</span>setq exec-path <span style="color: #7a0874; font-weight: bold;">&#40;</span>cons <span style="color: #ff0000;">&quot;c:\\cygwin\\bin&quot;</span> exec-path<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span></pre></div></div>

<p>Теперь с помощью пункта меню Tools &#8211; W32 Shells &#8211; Cygwin Shell можно открыть отдельный буфер с cygwin shell.</p>
<p>Очень удобно вместе с cygwin shell открыть в отдельном буфере man с помощью команды &laquo;M-x man&raquo;.</p>
<p>Хороший мануал по настройке cygwin в emacs есть <a href="http://www.khngai.com/emacs/cygwin.php">тут</a>.</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://otryvankin.com/?p=613" rel="bookmark" class="crp_title">Браузер в emacs</a></li><li><a href="http://otryvankin.com/?p=492" rel="bookmark" class="crp_title">Настройка русского языка в emacs</a></li><li><a href="http://otryvankin.com/?p=770" rel="bookmark" class="crp_title">Дочерние процессы в emacs</a></li><li><a href="http://otryvankin.com/?p=340" rel="bookmark" class="crp_title">Работа с R из Emacs (ESS)</a></li><li><a href="http://otryvankin.com/?p=755" rel="bookmark" class="crp_title">Установка g-client в emacs под Windows</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://otryvankin.com/?feed=rss2&amp;p=759</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Игры в emacs</title>
		<link>http://otryvankin.com/?p=711</link>
		<comments>http://otryvankin.com/?p=711#comments</comments>
		<pubDate>Wed, 25 Aug 2010 06:23:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Без рубрики]]></category>
		<category><![CDATA[Emacs]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[игры]]></category>

		<guid isPermaLink="false">http://otryvankin.com/?p=711</guid>
		<description><![CDATA[В emacs по умолчанию есть большое количество игр. Причём есть как текстовые игры (например, ролевая игра Adventure), так и с псевдографикой (например, &#171;Тетрис&#187;). Файлы игр в emacs размещаются в каталоге emacs\lisp\play. Большое количество игр можно найти на EmacsWiki. Related Posts:Программы для рисования диаграммМагазин OZON и системная динамикаАнализ строки в SQL ServerЧего бы я хотел от [...]]]></description>
			<content:encoded><![CDATA[<p>В emacs по умолчанию есть большое количество игр. Причём есть как текстовые игры (например, ролевая игра Adventure), так и с псевдографикой (например, &laquo;Тетрис&raquo;).</p>
<p>Файлы игр в emacs размещаются в каталоге emacs\lisp\play.</p>
<p>Большое количество игр можно найти на <a href="http://www.emacswiki.org/emacs/CategoryGames">EmacsWiki</a>.</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://otryvankin.com/?p=47" rel="bookmark" class="crp_title">Программы для рисования диаграмм</a></li><li><a href="http://otryvankin.com/?p=402" rel="bookmark" class="crp_title">Магазин OZON и системная динамика</a></li><li><a href="http://otryvankin.com/?p=481" rel="bookmark" class="crp_title">Анализ строки в SQL Server</a></li><li><a href="http://otryvankin.com/?p=130" rel="bookmark" class="crp_title">Чего бы я хотел от lBook V3</a></li><li><a href="http://otryvankin.com/?p=154" rel="bookmark" class="crp_title">Исследование структуры базы данных через таблицы sys.objects, sys.columns, sys.types</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://otryvankin.com/?feed=rss2&amp;p=711</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Календарь в emacs</title>
		<link>http://otryvankin.com/?p=748</link>
		<comments>http://otryvankin.com/?p=748#comments</comments>
		<pubDate>Tue, 24 Aug 2010 12:59:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Без рубрики]]></category>
		<category><![CDATA[calendar]]></category>
		<category><![CDATA[diary]]></category>
		<category><![CDATA[Emacs]]></category>

		<guid isPermaLink="false">http://otryvankin.com/?p=748</guid>
		<description><![CDATA[В emacs есть календарь, который вызывается командой M-x calendar Этот календарь можно использовать как ежедневник. Записи ежедневника хранятся по умолчанию в файле ~/diary. Этот файл необходимо создать вручную. Для просмотра и редактирования записей ежедневника необходимо выбрать  дату и нажать клавишу &#171;d&#187;. Также можно использовать контекстное меню, вызываемое правой и средней кнопкой мыши. Посмотреть все записи [...]]]></description>
			<content:encoded><![CDATA[<p>В emacs есть календарь, который вызывается командой</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">M-x calendar</pre></div></div>

<p>Этот календарь можно использовать как ежедневник. Записи ежедневника хранятся по умолчанию в файле ~/diary. Этот файл необходимо создать вручную. Для просмотра и редактирования записей ежедневника необходимо выбрать  дату и нажать клавишу &laquo;d&raquo;. Также можно использовать контекстное меню, вызываемое правой и средней кнопкой мыши.</p>
<p>Посмотреть все записи ежедневника можно, нажав клавишу &laquo;s&raquo;.</p>
<p>С помощью календаря emacs можно легко узнать какой сегодня день по счету от начала года и сколько дней осталось до конца года. Для этого нужно кликнуть правой клавишей мыши на интересующей дате и из контекстного меню выбрать &laquo;Other calendars&raquo;.</p>
<p>Хорошая инструкция по работе с календарем в emacs есть <a href="http://www.linux.org.ru/books/GNU/emacs/emacs_34.html">тут</a>.</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://otryvankin.com/?p=495" rel="bookmark" class="crp_title">Ввод мета-команд в Emacs W32</a></li><li><a href="http://otryvankin.com/?p=724" rel="bookmark" class="crp_title">Как удалить сетевое подключение в Windows 7</a></li><li><a href="http://otryvankin.com/?p=613" rel="bookmark" class="crp_title">Браузер в emacs</a></li><li><a href="http://otryvankin.com/?p=759" rel="bookmark" class="crp_title">cygwin shell в emacs</a></li><li><a href="http://otryvankin.com/?p=340" rel="bookmark" class="crp_title">Работа с R из Emacs (ESS)</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://otryvankin.com/?feed=rss2&amp;p=748</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Калькулятор в emacs</title>
		<link>http://otryvankin.com/?p=743</link>
		<comments>http://otryvankin.com/?p=743#comments</comments>
		<pubDate>Mon, 23 Aug 2010 12:10:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Без рубрики]]></category>
		<category><![CDATA[Emacs]]></category>

		<guid isPermaLink="false">http://otryvankin.com/?p=743</guid>
		<description><![CDATA[В emacs есть встроенный калькулятор. И если вы постоянно используете emacs, то использование встроенного калькулятора удобнее, чем калькулятор Windows. Запуск встроенного калькулятора осуществляется командой M-x calc В этом калькуляторе используется обратная польская запись. То есть, если надо разделить 1 на 2, то надо вводить не &#171;1 / 2&#8243;, а &#171;1 2 /&#187;. Разумеется, если у [...]]]></description>
			<content:encoded><![CDATA[<p>В emacs есть встроенный калькулятор. И если вы постоянно используете emacs, то использование встроенного калькулятора удобнее, чем калькулятор Windows.</p>
<p>Запуск встроенного калькулятора осуществляется командой</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">M-x calc</pre></div></div>

<p>В этом калькуляторе используется <a href="http://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D0%B0%D1%8F_%D0%BF%D0%BE%D0%BB%D1%8C%D1%81%D0%BA%D0%B0%D1%8F_%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C">обратная польская запись</a>. То есть, если надо разделить 1 на 2, то надо вводить не &laquo;1 / 2&#8243;, а &laquo;1 2 /&raquo;.</p>
<p>Разумеется, если у вас установлен R + ESS, то их тоже можно использовать в качестве калькулятора:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">M-x R</pre></div></div>

<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://otryvankin.com/?p=492" rel="bookmark" class="crp_title">Настройка русского языка в emacs</a></li><li><a href="http://otryvankin.com/?p=196" rel="bookmark" class="crp_title">Вставка видео в презентации PowerPoint</a></li><li><a href="http://otryvankin.com/?p=759" rel="bookmark" class="crp_title">cygwin shell в emacs</a></li><li><a href="http://otryvankin.com/?p=592" rel="bookmark" class="crp_title">Установка psyco, pylint и pyunit под Windows</a></li><li><a href="http://otryvankin.com/?p=737" rel="bookmark" class="crp_title">Хитрость в настройке compiz</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://otryvankin.com/?feed=rss2&amp;p=743</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Хитрость в настройке compiz</title>
		<link>http://otryvankin.com/?p=737</link>
		<comments>http://otryvankin.com/?p=737#comments</comments>
		<pubDate>Sat, 21 Aug 2010 15:47:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Без рубрики]]></category>
		<category><![CDATA[compiz]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://otryvankin.com/?p=737</guid>
		<description><![CDATA[Если у вас установлен русифицированный compiz, то, вероятно, возникают проблемы с переводом названий некоторых эффектов  при чтении документации. Большинство документации по compiz написано на английском языке. Для быстрого поиска нужного эффекта можно ввести его английское название в строку поиска &#171;Фильтр&#187; в Менеджере настройки CompizConfig (ccsm). Для проверки того, что драйвер видеокарты настроен правильно можно использовать [...]]]></description>
			<content:encoded><![CDATA[<p>Если у вас установлен русифицированный compiz, то, вероятно, возникают проблемы с переводом названий некоторых эффектов  при чтении документации. Большинство документации по compiz написано на английском языке.</p>
<p>Для быстрого поиска нужного эффекта можно ввести его английское название в строку поиска &laquo;Фильтр&raquo; в <strong>Менеджере настройки CompizConfig</strong> (ccsm).</p>
<p>Для проверки того, что драйвер видеокарты настроен правильно можно использовать команды compiz-check и glxinfo. glxinfo должна сообщить, что &laquo;direct rendering: Yes&raquo;, а также вывести список расширений.</p>
<p>Есть два window decorator &#8211; emerald и gtk-window-decorator. Установить декоратор можно в секции <strong>Оформление окна (&laquo;Window Decoration&raquo;)</strong> в <strong>Менеджере настройки CompizConfig</strong> (ccsm). Переключиться на другой декоратор можно с помощью команды:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">gtk-window-decorator <span style="color: #660033;">--replace</span></pre></div></div>

<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://otryvankin.com/?p=646" rel="bookmark" class="crp_title">Выбор поисковика в Google Chrome</a></li><li><a href="http://otryvankin.com/?p=313" rel="bookmark" class="crp_title">Автозагрузка модулей в Windows R GUI</a></li><li><a href="http://otryvankin.com/?p=724" rel="bookmark" class="crp_title">Как удалить сетевое подключение в Windows 7</a></li><li><a href="http://otryvankin.com/?p=702" rel="bookmark" class="crp_title">Настройка видео драйвера Intel под Ubuntu 10.04</a></li><li><a href="http://otryvankin.com/?p=575" rel="bookmark" class="crp_title">Защита от спама в комментариях</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://otryvankin.com/?feed=rss2&amp;p=737</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как установить расширение в Google Chrome если оно не ставится</title>
		<link>http://otryvankin.com/?p=729</link>
		<comments>http://otryvankin.com/?p=729#comments</comments>
		<pubDate>Sat, 21 Aug 2010 14:17:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Без рубрики]]></category>
		<category><![CDATA[Google Chrome]]></category>
		<category><![CDATA[расширения]]></category>

		<guid isPermaLink="false">http://otryvankin.com/?p=729</guid>
		<description><![CDATA[Если при попытке установить расширение в браузер Google Chrome из Галереи расширений Google Chrome кнопка &#171;Установить&#187; не нажимается и браузер падает можно попробовать следующий способ. В свойствах ярлыка для запуска Google Chrome на вкладке &#171;Ярлык&#187; в поле &#171;Объект&#187; добавьте ключ &#171;&#8211;no-sandbox&#187; после пути к chrome.exe. Затем запустите Chrome из модифицированного ярлыка и установите нужные расширения. [...]]]></description>
			<content:encoded><![CDATA[<p>Если при попытке установить расширение в браузер Google Chrome из <a href="https://chrome.google.com/extensions">Галереи расширений Google Chrome</a> кнопка &laquo;Установить&raquo; не нажимается и браузер падает можно попробовать следующий способ. В свойствах ярлыка для запуска Google Chrome на вкладке &laquo;Ярлык&raquo; в поле &laquo;Объект&raquo; добавьте ключ &laquo;&#8211;no-sandbox&raquo; после пути к chrome.exe. Затем запустите Chrome из модифицированного ярлыка и установите нужные расширения. В конце модифицированный ярлык можно удалить или вернуть в исходное состояние.</p>
<p>Такая проблема у меня возникла для Google Chrome 5.0.375.127 под ОС Microsoft Windows 7.</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://otryvankin.com/?p=646" rel="bookmark" class="crp_title">Выбор поисковика в Google Chrome</a></li><li><a href="http://otryvankin.com/?p=293" rel="bookmark" class="crp_title">Проблема подключения Google Analytics к WordPress</a></li><li><a href="http://otryvankin.com/?p=428" rel="bookmark" class="crp_title">Библиотеки научных статей в Интернет</a></li><li><a href="http://otryvankin.com/?p=755" rel="bookmark" class="crp_title">Установка g-client в emacs под Windows</a></li><li><a href="http://otryvankin.com/?p=347" rel="bookmark" class="crp_title">Информация к размышлению от Google Insight</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://otryvankin.com/?feed=rss2&amp;p=729</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как удалить сетевое подключение в Windows 7</title>
		<link>http://otryvankin.com/?p=724</link>
		<comments>http://otryvankin.com/?p=724#comments</comments>
		<pubDate>Sat, 21 Aug 2010 13:38:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Без рубрики]]></category>
		<category><![CDATA[windows 7]]></category>
		<category><![CDATA[администрирование]]></category>

		<guid isPermaLink="false">http://otryvankin.com/?p=724</guid>
		<description><![CDATA[Вы думаете, что удалить сетевое подключение в новейшей операционной системе от Microsoft &#8211; Windows 7 &#8211; это как два пальца об асфальт? То есть, думаете, что нужно зайти в Панель управления &#8211; Центр управления сетями и общим доступом &#8211; Изменение параметров адаптера, выбрать сетевое подключение и в контекстном меню выбрать удалить? Ха-ха. Я смеюсь над [...]]]></description>
			<content:encoded><![CDATA[<p>Вы думаете, что удалить сетевое подключение в новейшей операционной системе от Microsoft &#8211; Windows 7 &#8211; это как два пальца об асфальт? То есть, думаете, что нужно зайти в <strong>Панель управления</strong> &#8211; <strong>Центр управления сетями и общим доступом</strong> &#8211; <strong>Изменение параметров адаптера</strong>, выбрать сетевое подключение и в контекстном меню выбрать удалить? Ха-ха. Я смеюсь над такой наивностью. Пункт &laquo;Удалить&raquo; в контекстном меню сетевого подключения хотя и есть, но он недоступен. А чтобы удалить сетевое подключение нужно зайти в <strong>Панель управления</strong> &#8211; <strong>Центр управления сетями и общим доступом</strong> &#8211; <strong>Свойства обозревателя</strong>, на вкладке <strong>Подключения</strong> выбрать сетевое подключение и нажать на кнопку &laquo;Удалить&raquo;.</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://otryvankin.com/?p=313" rel="bookmark" class="crp_title">Автозагрузка модулей в Windows R GUI</a></li><li><a href="http://otryvankin.com/?p=642" rel="bookmark" class="crp_title">Подключение KNIME к MS SQL Server</a></li><li><a href="http://otryvankin.com/?p=646" rel="bookmark" class="crp_title">Выбор поисковика в Google Chrome</a></li><li><a href="http://otryvankin.com/?p=737" rel="bookmark" class="crp_title">Хитрость в настройке compiz</a></li><li><a href="http://otryvankin.com/?p=575" rel="bookmark" class="crp_title">Защита от спама в комментариях</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://otryvankin.com/?feed=rss2&amp;p=724</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
