<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>goodguy о разработке &#187; API</title>
	<atom:link href="http://dev.good-guy.me/archives/tag/api/feed" rel="self" type="application/rss+xml" />
	<link>http://dev.good-guy.me</link>
	<description>python, zope, php, sqlite, postgresql, mysql и прочее с чем сталкиваюсь</description>
	<lastBuildDate>Thu, 08 Jul 2010 09:17:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Мощь python и лень</title>
		<link>http://dev.good-guy.me/archives/26</link>
		<comments>http://dev.good-guy.me/archives/26#comments</comments>
		<pubDate>Wed, 30 Jul 2008 06:15:45 +0000</pubDate>
		<dc:creator>goodguy</dc:creator>
				<category><![CDATA[Языки]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[livejournal]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[twisted]]></category>

		<guid isPermaLink="false">http://dev.goodguy.spb.ru/?p=26</guid>
		<description><![CDATA[Вот, что и требовалось доказать &#8211; стоило перестать лениться и откладывать «на потом», как за вечер бот из предыдущего поста научился понимать Atom (в необходимой мере) и постить в Blogger (благодаря чему обновляется ещё одно зеркало зеркало моего блога). А всё благодаря более-менее продуманной архитектуре, да удобству python и Twisted в качестве средства разработки. И [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify">Вот, что и требовалось доказать &#8211; стоило перестать лениться и откладывать «на потом», как за вечер бот из предыдущего поста научился понимать <a href="http://tools.ietf.org/html/rfc4287">Atom</a> (в необходимой мере) и постить в <a href="http://blogger.com">Blogger</a> (благодаря чему обновляется ещё одно зеркало <a href="http://goodguy-spb.blogspot.com/">зеркало моего блога</a>). А всё благодаря более-менее продуманной архитектуре, да удобству <a href="http://python.org">python</a> и <a href="http://www.twistedmatrix.com/">Twisted</a> в качестве средства разработки. И зачем люди ещё пишут на PHP сложные системы&#8230;
</p>
<p style="text-align: justify">Кстати, у Blogger&#8217;а выяснилась пара забавных моментов. Первый &#8211; это то, он строго следует спецификациям Atom при создании и редактировании сообщений. Но при этом, если отправлять ему содержимое поста с типом <tt>xhtml</tt>, завернутое в <tt>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;...&lt;/div&gt;</tt>, то назад он возвращает содержимое завёрнутое как <tt>html</tt>, но при этом сохраняет этот самый <tt>div</tt>. Логика загадочна для меня.
</p>
<p style="text-align: justify">Второй момент ещё более непонятный: по ходу тестирования я делал пачки постингов в блог. В какой-то момент получилось так, что пост проходит, возвращается назад с присвоенным id и т.п., а в блоге не появляется. Никаких намёков на то, почему так, нет. Буду пробовать дальше <img src='http://dev.good-guy.me/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />
</p>
<p style="text-align: justify"><b>Дополнение:</b> всё оказалось очень просто. Из-за кучи постингов во время тестов blogger включил для моего аккаунта требование вводить captcha перед каждым постом. По сути можно было написать в блог только через веб-форму. Налицо явная недоработка API, так как ошибку внятную можно было и вернуть.</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.good-guy.me/archives/26/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#171;Крендельки&#187; в API ЖЖ</title>
		<link>http://dev.good-guy.me/archives/22</link>
		<comments>http://dev.good-guy.me/archives/22#comments</comments>
		<pubDate>Mon, 28 Jul 2008 06:51:18 +0000</pubDate>
		<dc:creator>goodguy</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[livejournal]]></category>

		<guid isPermaLink="false">http://dev.goodguy.spb.ru/?p=22</guid>
		<description><![CDATA[Свершилась тут недавно маленькая радость &#8211; взял я себя в руки и дописал бота для постинга RSS-лент в LiveJournal, и обновил свой ЖЖ с его помощью. Заодно и проверил опции редактирования записей и т.п. Очень приятное оказалось XML-RPC API у этой системы, но есть одна вещь, о которой явно в документации не упоминается. Я, следуя [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify">Свершилась тут недавно маленькая радость &#8211; взял я себя в руки и дописал бота для постинга RSS-лент в LiveJournal, и обновил свой <a href="http://g00dguy.livejournal.com">ЖЖ</a> с его помощью. Заодно и проверил опции редактирования записей и т.п. Очень приятное оказалось <a href="http://www.livejournal.com/doc/server/ljp.csp.xml-rpc.protocol.html">XML-RPC API</a> у этой системы, но есть одна вещь, о которой явно в документации не упоминается. Я, следуя рекомендациям, выбрал путь авторизации с помощью <tt>credentials</tt>, как самый надёжный и исключающий прямую передачу пароля по сети. И по идее, полученную строку можно использовать несколько раз, до истечения срока действия (даже был сделан учёт расхождений во времени у сервера ЖЖ и у меня). Но, как выяснилось, действует строгое правило &#8211; один &laquo;крендель&raquo; на один запрос постинга/редактирования. Что в принципе правильно. Так что, кто будет сталкиваться &#8211; учтите <img src='http://dev.good-guy.me/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align: justify">PS: Кому не понравились вылезшая вчера кучка постов в моём ЖЖ &#8211; извините! <img src='http://dev.good-guy.me/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://dev.good-guy.me/archives/22/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
