<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<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/"
	>

<channel>
	<title>xmlrpc &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/xmlrpc/</link>
	<description>Feed of posts on WordPress.com tagged "xmlrpc"</description>
	<pubDate>Mon, 07 Dec 2009 23:58:16 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[my mega title]]></title>
<link>http://lify.wordpress.com/2009/12/06/my-mega-title/</link>
<pubDate>Sun, 06 Dec 2009 21:16:49 +0000</pubDate>
<dc:creator>lalala22</dc:creator>
<guid>http://lify.wordpress.com/2009/12/06/my-mega-title/</guid>
<description><![CDATA[wassup bro! kiss my shiny metal ass!]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>wassup bro!<br />
kiss my shiny metal ass! <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Drupal 6 node.save services taxonomy xmlrpc php and python]]></title>
<link>http://bookmarks.honewatson.com/2009/11/20/drupal-6-node-save-services-taxonomy-xmlrpc-php-and-python/</link>
<pubDate>Fri, 20 Nov 2009 00:54:43 +0000</pubDate>
<dc:creator>honewatson</dc:creator>
<guid>http://bookmarks.honewatson.com/2009/11/20/drupal-6-node-save-services-taxonomy-xmlrpc-php-and-python/</guid>
<description><![CDATA[Drupal 6 node.save uses different methods for saving taxonomy for different taxonomy types. For mult]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Drupal 6 node.save uses different methods for saving taxonomy for different taxonomy types.</p>
<p>For multiple select based taxonomy:</p>
<p>(php)</p>
<pre>
$nodeObj-&#62;taxonomy = array(2=&#62;array(15,19));
</pre>
<p>(python)</p>
<pre>
nodeOb['taxonomy']['2'] = [15,19]
</pre>
<p>For tags based taxonomy:</p>
<p>(php)</p>
<pre>
$nodeObj-&#62;taxonomy = array(
  'tags' =&#62; array(
         2=&#62;'military,navy'
   )
);
</pre>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[testing my foolish tool...]]></title>
<link>http://ultralost.wordpress.com/2009/10/30/testing-my-foolish-tool/</link>
<pubDate>Fri, 30 Oct 2009 02:06:09 +0000</pubDate>
<dc:creator>ultralost</dc:creator>
<guid>http://ultralost.wordpress.com/2009/10/30/testing-my-foolish-tool/</guid>
<description><![CDATA[sto testando il mio sciocco tool che grabba immagini da flicker (via its api) e le uploada qua via x]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>sto testando il mio sciocco tool che grabba immagini da flicker (via its api) e le uploada qua via xml-rpc.</p>
<p style="text-align:center;"><img class="size-full wp-image-27     aligncenter" title="orange tv" src="http://ultralost.wordpress.com/files/2009/10/3533683614_7e4b5741ef.jpg" alt="3533683614_7e4b5741ef.jpg" width="420" height="304" /></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Гладко было на бумаге...]]></title>
<link>http://xmlrpcnet.wordpress.com/2009/10/28/troubles/</link>
<pubDate>Wed, 28 Oct 2009 12:00:43 +0000</pubDate>
<dc:creator>codevbnet</dc:creator>
<guid>http://xmlrpcnet.wordpress.com/2009/10/28/troubles/</guid>
<description><![CDATA[Как я уже писал в предыдущем посте, попытка воспользоваться вот этим http://www.beansoftware.com/Win]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Как я уже писал в предыдущем посте, попытка воспользоваться вот этим <a href="http://www.beansoftware.com/Windows-Forms-Tutorials/Using-XML-RPC-With-VB.NET.aspx">http://www.beansoftware.com/Windows-Forms-Tutorials/Using-XML-RPC-With-VB.NET.aspx</a> примером для освоения xmlrpc под .net не увенчалась успехом &#8211; мы получили длинную противную ошибку о том, что нет такого интерфейса (см. пред. пост)</p>
<p>На счастье, вместе с библиотекой xmlrpc.net поставляются примеры. Попробуем поработать с ними. Примеры в C#, ну да ладно. В крайнем случае перевернем в Vb.Net</p>
<p>Открываем самый простой, по-видимому, пример, называемый MathApp &#8211; я думаю, что это вариация того примера, который мы только что разбирали.</p>
<p>Кстати, в директории &#8220;интерфейсы&#8221; я обнаружил четыре интересных интерфейса:</p>
<p>BloggerAPI.cs</p>
<p>MetaWeblogAPI.cs</p>
<p>и еще два.</p>
<p>Ну до них мы доберемся чуть позже &#8211; для начала надо посмотреть, как это вообще работает</p>
<p>Итак, добавляем в наш Solution MathApp  и запускаем</p>
<p><img class="alignnone size-full wp-image-14" title="xmlrpccalculator" src="http://xmlrpcnet.wordpress.com/files/2009/10/xmlrpccalculator2.gif" alt="xmlrpccalculator" width="323" height="246" /></p>
<p>Как и предполагалось, это xml rpc калькулятор.</p>
<p>Давайте посмотрим, как это  работает, чуть поближе.</p>
<p>Собственно интерфейс</p>
<div><span style="font-size:x-small;">public interface IMath : IXmlRpcProxy</span></div>
<div><span style="font-size:x-small;">{</span></div>
<div><span style="font-size:x-small;">[XmlRpcMethod("math.Add")]</span></div>
<p><span style="font-size:x-small;">int Add(int a, int b);</p>
<p>[XmlRpcMethod("math.Subtract")]</p>
<p>int Subtract(int a, int b);</p>
<p>[XmlRpcMethod("math.Multiply")]</p>
<p>int Multiply(int a, int b);</p>
<p>[XmlRpcMethod("math.Divide")]</p>
<p>int Divide(int a, int b);</p>
<p>}</p>
<p>&#160;</p>
<p></span></p>
<p> Мы видим, что аттрибуты устанавливают, какой реально метод будет вызыван на стороне сервера</p>
<div><span style="font-size:x-small;"><span style="color:#0000ff;font-size:x-small;"><span style="color:#0000ff;font-size:x-small;">private</span></span><span style="font-size:x-small;"> </span><span style="color:#2b91af;font-size:x-small;"><span style="color:#2b91af;font-size:x-small;">IMath</span></span><span style="font-size:x-small;"> mathProxy;</span></span></div>
<div><span style="font-size:x-small;">создаем прокси</span></div>
<p><span style="font-size:x-small;">
<p>&#160;</p>
<p></span></p>
<div><span style="font-size:x-small;"><span style="font-size:x-small;">mathProxy =</span></span></div>
<div><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="color:#2b91af;font-size:x-small;"><span style="color:#2b91af;font-size:x-small;">XmlRpcProxyGen</span></span><span style="font-size:x-small;">.Create&#60;</span><span style="color:#2b91af;font-size:x-small;"><span style="color:#2b91af;font-size:x-small;">IMath</span></span><span style="font-size:x-small;">&#62;();</span></span></span></div>
<div><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;">Задаем урл</span></span></span></div>
<p><span style="font-size:x-small;"><span style="font-size:x-small;">
<p>&#160;</p>
<p></span></span></p>
<div><span style="font-size:x-small;">mathProxy.Url = txtUrl.Text;</span></div>
<div><span style="font-size:x-small;">Вызываем сервис <span style="color:#0000ff;font-size:x-small;"><span style="color:#0000ff;font-size:x-small;"><span style="font-size:x-small;"><span style="color:#0000ff;font-size:x-small;"><span style="color:#0000ff;font-size:x-small;">int<span style="font-size:x-small;">result = mathProxy.Subtract(a, b);</span><span style="font-size:x-small;"><span style="color:#0000ff;font-size:x-small;"><span style="font-size:x-small;">result = mathProxy.Subtract(a, b);</span><span style="font-size:x-small;">result = mathProxy.Subtract(a, b);</span></p>
<p></span></span>
<p>&#160;</p>
<p></span></span></span></span></span></span></div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Что мы хотим получить в результате]]></title>
<link>http://xmlrpcnet.wordpress.com/2009/10/28/targets/</link>
<pubDate>Wed, 28 Oct 2009 10:45:09 +0000</pubDate>
<dc:creator>codevbnet</dc:creator>
<guid>http://xmlrpcnet.wordpress.com/2009/10/28/targets/</guid>
<description><![CDATA[Начав работать в Liex, я быстро понял, что домены второго уровня очень быстро блокируются Яндексом. ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Начав работать в <a href="http://www.liex.ru/6904F8C4DE4FB5135D79E3F7ABB93273.htm">Liex</a>, я быстро понял, что домены второго уровня очень быстро блокируются Яндексом.</p>
<p>Я зарегил порядка 20 доменов ру (тогда еще на лиексе можно было регистрировать сколько угодно поддоменов), быстро набрал ссылок по 2 цента, и думал, что вот оно &#8211; деньги будут литься рекой без особого напряга с моей стороны.</p>
<p>Но не тут то было. Месяца через полтора, когда эти домены и субдомены начали приносить ощутимый доход &#8211; они как то очень быстро &#8220;накрылись&#8221; и выпали из индекса Яндекса.</p>
<p>Я начал искать другой путь.</p>
<p>Было несколько вариантов.</p>
<p>Самый, на первый взгляд, дешевый &#8211; вместо того, чтобы регить домены &#8220;ру&#8221; по 3 бакса &#8211; можно регить info по одному баксу.</p>
<p>Проблема, что домены info куда хуже регистрируются.</p>
<p>Тут на Лиексе подоспел очередной апгрейд &#8211; внедрение поддержки XmlRpc интерфейсов.</p>
<p>Я до того никогда не сталкивался с этим XmlRpc, но тема меня заинтересовала, и я начал потихоньку вьезжать.</p>
<p>Не буду здесь подробно обсуждать xmlrpc &#8211; это тема другого блога.</p>
<p>Здесь нам важно, что я хочу построить настольную аппликацию, которая будет собирать инфу из фидов (то, тчо делали мои гс, &#8220;накрытые&#8221; яндексом, переводить ее с английского на русский с помощью гугл-транслятора, и гнать на нужный блог, для заполнения его контентом)</p>
<p>Понятно, что я рассчитываю, если из этого что то выйдет, подключить не один десяток сайтов к такой аппликации.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Joomla process flow]]></title>
<link>http://abclabcl.wordpress.com/2009/09/01/joomla-process-flow/</link>
<pubDate>Tue, 01 Sep 2009 17:02:34 +0000</pubDate>
<dc:creator>Vikas Kumar</dc:creator>
<guid>http://abclabcl.wordpress.com/2009/09/01/joomla-process-flow/</guid>
<description><![CDATA[Joomla uses single interface that is index.php This page has includes/defines.php includes/framework]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Joomla uses single interface that is index.php</p>
<p>This page has<br />
includes/defines.php<br />
includes/framework.php</p>
<p>First I like to explain about includes/defines.php</p>
<p>This page has constact to define the path for<br />
(1)root<br />
(2)administrator<br />
(3)xmlrpc<br />
(4)libraries<br />
(5)plugins<br />
(6)installation<br />
(7)templates<br />
(8)cache</p>
<p>Each folder has code for their own means as they have name.</p>
<p>Explanation of includes/framework.php</p>
<p>this page includes library/joomla/import.php</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[I have a feeling it'll work now. :-)<!-- title -->]]></title>
<link>http://samuraicurry.wordpress.com/2009/08/08/i-have-a-feeling-itll-work-now-4/</link>
<pubDate>Sat, 08 Aug 2009 08:55:55 +0000</pubDate>
<dc:creator>samuraicurry</dc:creator>
<guid>http://samuraicurry.wordpress.com/2009/08/08/i-have-a-feeling-itll-work-now-4/</guid>
<description><![CDATA[What a stupid issue!]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><ul>
<li><span style="font-family:'Comic Sans MS';font-size:48px;"><strong><u><em><span style="background-color:rgb(255,0,128);"><span>What a stupid issue!</span></span></em></u></strong></span></li>
</ul>
<p><!-- content --></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[I have a feeling it'll work now. :-)<!-- title -->]]></title>
<link>http://samuraicurry.wordpress.com/2009/08/08/i-have-a-feeling-itll-work-now-2/</link>
<pubDate>Sat, 08 Aug 2009 08:49:22 +0000</pubDate>
<dc:creator>samuraicurry</dc:creator>
<guid>http://samuraicurry.wordpress.com/2009/08/08/i-have-a-feeling-itll-work-now-2/</guid>
<description><![CDATA[What a stupid issue!]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><ul>
<li><span style="font-family:'Comic Sans MS';font-size:48px;"><strong><u><em><span style="background-color:rgb(255,0,128);"><span>What a stupid issue!</span></span></em></u></strong></span></li>
</ul>
<p><!-- content --></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[I have a feeling it'll work now. :-)<!-- title -->]]></title>
<link>http://samuraicurry.wordpress.com/2009/08/08/i-have-a-feeling-itll-work-now/</link>
<pubDate>Sat, 08 Aug 2009 03:17:00 +0000</pubDate>
<dc:creator>samuraicurry</dc:creator>
<guid>http://samuraicurry.wordpress.com/2009/08/08/i-have-a-feeling-itll-work-now/</guid>
<description><![CDATA[What a stupid issue!]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><ul>
<li><span style="font-family:'Comic Sans MS';font-size:48px;"><strong><u><em><span style="background-color:rgb(255,0,128);"><span>What a stupid issue!</span></span></em></u></strong></span></li>
</ul>
<p><!-- content --></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[www.neo2u.net]]></title>
<link>http://chunket.wordpress.com/2009/07/22/www-neo2u-net/</link>
<pubDate>Wed, 22 Jul 2009 13:35:19 +0000</pubDate>
<dc:creator>chunket</dc:creator>
<guid>http://chunket.wordpress.com/2009/07/22/www-neo2u-net/</guid>
<description><![CDATA[This is a web based client server architecture solution designed for Recycling Industry. There is a ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>This is a web based client server architecture solution designed for Recycling Industry. There is a POS liked client at every collection centre. And data were sent to web based system for administration. The MyKad reader program was used to collect attendance and membership activation.</p>
<p>How it works? Well, member start recycling and earn points at collection centre by using MyKad. Then go to website ecommerce to redeem products and check points. Administrator using the web admin portal to monitor all collection centre and activity.</p>
<p><span style="text-decoration:underline;"><strong>Web Front End</strong></span></p>
<p><img class="alignnone size-full wp-image-106" title="neo2u" src="http://chunket.wordpress.com/files/2009/07/neo2u.png" alt="neo2u" width="480" height="306" /></p>
<p><span style="text-decoration:underline;"><strong>Web Back End</strong></span><img class="alignnone size-full wp-image-107" title="neo2u-admin" src="http://chunket.wordpress.com/files/2009/07/neo2u-admin.png" alt="neo2u-admin" width="480" height="255" /><span style="text-decoration:underline;"><strong>MyKad Membership Activation</strong></span></p>
<p><img class="alignnone size-full wp-image-108" title="neo2u-activate" src="http://chunket.wordpress.com/files/2009/07/neo2u-activate.jpg" alt="neo2u-activate" width="480" height="394" /><span style="text-decoration:underline;"><strong></strong></span></p>
<p><span style="text-decoration:underline;"><strong>Collection Centre POS</strong></span></p>
<p><img class="alignnone size-full wp-image-109" title="neo2u-console" src="http://chunket.wordpress.com/files/2009/07/neo2u-console.jpg" alt="neo2u-console" width="480" height="359" /></p>
<p><span style="text-decoration:underline;"><strong>News Release</strong></span></p>
<p><img class="alignnone size-full wp-image-111" title="recycle" src="http://chunket.wordpress.com/files/2009/07/recycle.jpg" alt="recycle" width="479" height="298" /><img class="alignnone size-full wp-image-112" title="recycle (1)" src="http://chunket.wordpress.com/files/2009/07/recycle-1.jpg" alt="recycle (1)" width="480" height="486" /><img class="alignnone size-full wp-image-114" title="recycle (2)" src="http://chunket.wordpress.com/files/2009/07/recycle-2.jpg" alt="recycle (2)" width="480" height="368" /></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[My Test]]></title>
<link>http://lladmin.wordpress.com/2009/05/09/test-sssss/</link>
<pubDate>Sat, 09 May 2009 06:02:32 +0000</pubDate>
<dc:creator>lladmin</dc:creator>
<guid>http://lladmin.wordpress.com/2009/05/09/test-sssss/</guid>
<description><![CDATA[abc wong ka jue ka li]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>abc wong ka jue ka li</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Posting Blog lewat Office Word 2007]]></title>
<link>http://mnrizal.wordpress.com/2009/04/28/posting-blog-lewat-office-word-2007/</link>
<pubDate>Tue, 28 Apr 2009 09:53:52 +0000</pubDate>
<dc:creator>Rizal</dc:creator>
<guid>http://mnrizal.wordpress.com/2009/04/28/posting-blog-lewat-office-word-2007/</guid>
<description><![CDATA[Microsoft Office Word 2007 bisa dipake buat posting blog loh. Ga percaya? Yang lo baca ini gw postin]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Microsoft Office Word 2007 bisa dipake buat posting blog loh. Ga percaya? Yang lo baca ini gw posting dari Word! Hahaha, amazing! *berlebihan*. Kok bisa yah? Tentu aja karena WordPress udah pasang fitur xmlrpc. Apa itu xmlrpc? Buka aja situsnya tentang <a href="http://www.xmlrpc.com">xmlrpc</a>. Yang jelas, jadi bisa posting tanpa masuk ke WordPress nya lah. Bisa lewat e-mail, atau lewat aplikasi third-party.</p>
<p>Gimana caranya? Caranya adalah tinggal klik Office Button &#62; New.</p>
<p style="text-align:center;"><img class="aligncenter" title="post a blog from word 2007 1" src="http://mnrizal.files.wordpress.com/2009/04/042809-1152-postingblog1.png?w=210&#038;h=122" alt="" width="210" height="122" /></p>
<p>Setelah itu pilih New Blog Post dan klik Create.</p>
<p style="text-align:center;"><img class="aligncenter" title="post a blog from word 2007 2" src="http://mnrizal.files.wordpress.com/2009/04/042809-1152-postingblog2.png?w=297&#038;h=210" alt="" width="297" height="210" /></p>
<p><!--more-->Kalo misalnya baru pertama kali nyoba ini, pasti disuruh Manage Account dulu.</p>
<p style="text-align:center;"><img class="aligncenter" title="post a blog from word 2007 3 create account" src="http://mnrizal.files.wordpress.com/2009/04/042809-1152-postingblog3.png?w=401&#038;h=150" alt="" width="401" height="150" /></p>
<p>Tinggal pilih provider blog lo. Karena gw pake WordPress, jadi gw pilih WordPress. Setelah itu setting xmlrpc nya.</p>
<p style="text-align:center;"><img class="aligncenter" title="post a blog from word 2007 4 xmlrpc" src="http://mnrizal.files.wordpress.com/2009/04/042809-1152-postingblog4.png?w=398&#038;h=224" alt="" width="398" height="224" /></p>
<p>Isi blog post url nya ama url blog kalian masing-masing. Terus isi username ama passwordnya. Setelah beres semua, ntar ada notifikasi bahwa akun telah di registrasi. Setelah itu ya tinggal nulis post nya deh <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> . Dan jangan lupa masukin ke kategori tulisan lo. Caranya tinggal klik Insert Category di toolbar bagian Blog.</p>
<p style="text-align:center;"><img class="aligncenter" title="post a blog from word 2007 5 edit category" src="http://mnrizal.files.wordpress.com/2009/04/042809-1152-postingblog5.png?w=262&#038;h=373" alt="" width="262" height="373" /></p>
<p>Pilihan Publish nya pun ada dua, yaitu Publish atau Publish as Draft. Kalo yang Publish as Draft ga akan langsung diterbitin, tapi masuk draft dulu.</p>
<p style="text-align:center;"><img class="aligncenter" title="post a blog from word 2007 6 publishing" src="http://mnrizal.files.wordpress.com/2009/04/042809-1152-postingblog6.png?w=158&#038;h=182" alt="" width="158" height="182" /></p>
<p>Okeh, gw mau coba publish dulu. Ntar kita lanjutin bagian kekurangan dan kelebihannya.</p>
<p>***</p>
<p>[Disclaimer, tulisan di paragraf dan di bawah ini editnya pake WordPress] Okay, barusan gw posting dari Word 2007, dan berhasil dengan sangat memuaskan! Ga ada masala di HTML seperti yang gw perkirakan. Mulus abis!</p>
<p>Kelebihan posting dari Office 2007 adalah:</p>
<ul>
<li>Lebih simpel dalam editing gambar. Gw crop gambar-gambar diatas pake fitur crop yang ada di Word wichest ga ada di WordPress. Jadi enak banget buat bikin tutorial kaya postingan ini.</li>
<li>Tidak memakai browser sehingga lebih cepat. Karena Word adalah aplikasi desktop, jadi proses penulisannya lebih cepat. Kadang kalo bikin posting di WordPress suka lambat, karena setiap kita ketik huruf, javascript bakalan ngecek kalimat yang kita tulis, dan proses tersebut memakan waktu.</li>
<li>Auto Capitalization, jadi huruf pertama yang kita tulis otomatis berubah jadi  kapital.</li>
</ul>
<p>Kekurangannya adalah:</p>
<ul>
<li>Ga bisa ngasih tag</li>
<li>Ga bisa ngasih alt tag dalam image</li>
<li>Ga bisa pake tag read more</li>
</ul>
<p>Baru segitu aja kelebihan dan kekurangan yang gw temuin. Sisanya mungkin bisa ditambah ama lo sendiri di bagian comment. Jadi untuk menutupi kekurangan tersebut, mending ntar pilihnya Publish as Draft, baru di edit lagi di WordPress. Ga mau kan tulisan setengah jadi kita diliat orang, hehe. See ya!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[It's the most wonderful time of the summer]]></title>
<link>http://magsol.wordpress.com/2009/03/17/its-the-most-wonderful-time-of-the-summer/</link>
<pubDate>Tue, 17 Mar 2009 22:26:45 +0000</pubDate>
<dc:creator>magsol</dc:creator>
<guid>http://magsol.wordpress.com/2009/03/17/its-the-most-wonderful-time-of-the-summer/</guid>
<description><![CDATA[I&#8217;ve noticed an interesting trend in this blog&#8217;s visiting statistics of late: quite a fe]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I&#8217;ve noticed an interesting trend in this blog&#8217;s visiting statistics of late: quite a few more hits as a result of programming searches &#8211; and, specifically, Google&#8217;s Summer of Code &#8211; are referring people to my blog.  It makes sense, given that Google just completed their application period for mentoring organizations, and will be posting the list of open source companies participating in this year&#8217;s rendition on March 18 (tomorrow!), followed very quickly with the official opening of the application period for students on March 23.  Go <a href="http://socghop.appspot.com/" target="_blank">visit the site for more details</a>! [shameless plug]</p>
<p>Still, I thought I&#8217;d respect the wishes of the viewers and post about my latest undertaking over spring break: I&#8217;m well into the process of converting my <a href="http://www.magsolweb.net/wiki/index.php5?title=WordPressSynch" target="_blank">WordPress Synchronizer</a> into an official WordPress plugin.</p>
<p>This project started a few years back.  I&#8217;ve been running a local install of WordPress on my MacBook since May of 2006 as a little place to jot down notes, funny observations, reminders&#8230;just about anything.  Obviously, this sort of mobility makes it very easy to keep notes &#8211; I don&#8217;t even need an internet connection.  The problem arises when I want to show particular entries to&#8230;particular people. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />   I didn&#8217;t really have a way of doing that, aside from opening up my blog to the world, which I wasn&#8217;t really interested in doing.</p>
<p>Since then, I&#8217;ve come up with and implemented a few solutions that have worked fairly well up to now.  The idea behind solving this problem has generally remained the same: set up a remote blog at a static URL, implement some sort of authorization system for viewing that blog, and then selectively sync entries from my local blog to my remote blog.</p>
<p>Seems simple enough.  What has changed enormously is the method of implementation.  As you may gather from reading my Wiki entry, the first version of the synchronizer was very crude and extremely error-prone.  It made raw SELECT queries to the database, inserted the information into an HTML form, and POST-ed the data to a specially crafted PHP page on the other end that would parse out the data and feed it via INSERT statements into the remote blog.  Robustness wasn&#8217;t exactly what this first attempt was known for, but it worked at the time.</p>
<p>(Un?)fortunately, what killed this iteration was a cataclysmic hard drive failure.  Rather than go through the arduous process of inventing custom POST fields and data validation, I took another route in re-implenting this functionality: XML-RPC.  WordPress implements a large range of APIs &#8211; Blogger, MetaWeblog, MoveableType, etc &#8211; and utilizing this interface would be a great deal simpler, more secure, and much more robust.  Plus it wouldn&#8217;t require any specialized receiving functionality on the remote blog.</p>
<p>This worked decently well for awhile.  Unfortunately, a recent release of WordPress broke this functionality.  I had made the (apparently fatal) assumption that posts accumulate linearly-discernible post IDs; that is, a new post will have a post ID of the previous post, plus 1.  A recent upgrade of WordPress changed that, assigning unique post IDs incrementally to drafts and post edits, leaving large post ID gaps between final, published entries.  This threw my synchronizer out of alignment, as the post IDs of the remote blog no longer matched up with those of the local one, so posts started duplicating themselves remotely.</p>
<p>So rather than continue to wrestle with third-party woes, I decided to take it one step further: integrate it as a full-fledged WordPress plugin. This would allow use of the internal API and security checks, further alleviating detail-induced headaches and giving me a very nice sandbox to play in.  The only downside has been the learning curve for familiarizing myself with the WordPress insides, and how &#8220;actions&#8221; and &#8220;hooks&#8221; are registered with the system.</p>
<p>Oh yes, I spent a few hours wading through the <a href="http://codex.wordpress.org/" target="_blank">WordPress Codex</a>, learning how plugins are &#8220;hooked&#8221; into the system:</p>
<blockquote><p><code>add_action($action_name, $callback_function);<br />
add_filter($filter_name, $callback_function);</code></p></blockquote>
<p>They function very similarly.  &#8220;actions&#8221; are performed after WordPress itself takes some specific action &#8211; posting an entry, updating a page, etc &#8211; while &#8220;filters&#8221; are essentially data intermediaries that sit between the browser and the database.  Yes, their names speak for themselves. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Beyond that, there was still the issue of creating menu items in the administration panel, which can be done by:</p>
<blockquote><p><code>add_menu_page($pagetitle, $menutitle, $accesslevel, $file);<br />
add_submenu_page($parent, $pagetitle, $menutitle, $accesslevel, $file);</code></p></blockquote>
<p>There are also some specialized functions which are equivalent <code>add_submenu_page()</code> with specific existing menus (like Options, Management, or Themes) in the place of the <code>$parent</code> parameter.</p>
<p>So now I can hook functionality into WordPress through the hook callbacks, plus provide menu options in the administration panel for configuring the plugin itself.  At the moment, I&#8217;ve completed the configuration setup page, and have the templates around the pages where the actual data synchronization is performed.  Unfortunately, there are three major hurdles left to scale before implementation can be completed.  To wit:</p>
<p>-<span style="color:#bdb76b;"><strong>Data Representation</strong></span>.  Coming up with a sound way of representing synchronized entries in the database is proving diffiult.  Previously, I had simply stored the date of the most recent synchronization, and any entries with timestamps occurring afterward were prepped for remote sync&#8217;ing.  However, this doesn&#8217;t allow for selective synchronization &#8211; picking and choosing which entries are sync&#8217;ed, and which are not.<br />
-<span style="color:#bdb76b;"><strong>Process Efficiency</strong></span>.  The easiest way to synchronize two data sets is to compare all the elements of both sets.  The problem here is that, with blogs, the data sets are collections of entries, and with time those sets will only increase in size.  This means the synchronization process will suffer progressive performance degradation.  At present, I already have over 3000 entries, and the XML-RPC package crashes when I try to retrieve every single one at once.<br />
-<span style="color:#bdb76b;"><strong>Remote Rules</strong></span>.  What assumptions can I logically make about the remote blog?  Should I assume it won&#8217;t be touched other than when synchronizations occur?  Should I assume it&#8217;s just another regular blog that is regularly updated, but which occasionally receives entries from another blog as well?  These sorts of questions, depending on their answers, introduce a whole host of implementation concerns &#8211; most notably, how do I classify a &#8220;unique&#8221; entry when synchronizing it?</p>
<p>These are challenges that are helping shape plans for my <a href="http://www.magsolweb.net/wiki/index.php5?title=MWCMS" target="_blank">content management system</a>, which I am planning on &#8220;breaking ground&#8221; with during the summer at IBM in Raleigh (on weekends, of course!).  Since I will be at ExtremeBlue, I will not be participating in this year&#8217;s Summer of Code (much as I wish I could).  I mean, I <em>could</em>, but I suspect I wouldn&#8217;t have time to sleep or eat.  Perhaps next summer will feature my return to open source programming &#8211; Apache, Joomla!, Drupal, Pidgin, and WordPress are doing some pretty amazing things with which I&#8217;d love to become involved.</p>
<p>Apply for Google Summer of Code!  You won&#8217;t regret it.  Particularly if you apply for Joomla! and your mentor is Amy. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  <a href="http://www.hawthornlandings.org/" target="_blank">Leslie Hawthorn</a> and the rest of the Google team is spectacular.</p>
<p>As for me&#8230;time to get back to coalescent theory, computational learning theory, and tagalongs (yes, the Girl Scout cookie, buahaha).</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[XMLRPC di Joomla]]></title>
<link>http://ai23.wordpress.com/2009/03/16/xmlrpc-di-joomla/</link>
<pubDate>Mon, 16 Mar 2009 10:15:25 +0000</pubDate>
<dc:creator>Nur Aini Rakhmawati</dc:creator>
<guid>http://ai23.wordpress.com/2009/03/16/xmlrpc-di-joomla/</guid>
<description><![CDATA[Joomla mengggunakan library phpxmlrpc untuk menjalankan xmlrpc. Let&#8217;s take a look how we injec]]></description>
<content:encoded><![CDATA[Joomla mengggunakan library phpxmlrpc untuk menjalankan xmlrpc. Let&#8217;s take a look how we injec]]></content:encoded>
</item>
<item>
<title><![CDATA[Using cURL for XMLRPC calls]]></title>
<link>http://shoaibmir.wordpress.com/2009/03/10/using-curl-for-xmlrpc-calls/</link>
<pubDate>Tue, 10 Mar 2009 00:29:45 +0000</pubDate>
<dc:creator>shoaibmir</dc:creator>
<guid>http://shoaibmir.wordpress.com/2009/03/10/using-curl-for-xmlrpc-calls/</guid>
<description><![CDATA[cURL is a project name which came from  &#8216;Client for URLs&#8217;, originally with URL spelled i]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>cURL is a project name which came from  &#8216;Client for URLs&#8217;, originally with URL spelled in uppercase to make it obvious it deals with URLs. cURL has basically two products, a command line and a library. We are more concerned with the library as that is used with PHP for cURL calls. <strong>LibCurl</strong> is a free and easy-to-use client-side URL transfer library, supporting FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, FILE, LDAP and LDAPS. libcurl supports HTTPS certificates, HTTP POST, HTTP PUT, FTP uploading, kerberos, HTTP form based upload, proxies, cookies, user+password authentication, file transfer resume, http proxy tunneling and more&#8230;</p>
<p>So before I go with details on the sample program, make sure you got cURL and xmlrpc modules installed for PHP. This can be easily done by compiling the cURL and xmlrpc extensions from PHP source and linking it though the php.ini file. Once that is done make sure<br />
you can see the modules installed using<em> phpinfo</em> function.</p>
<p>Once all looks good when cURL and xmlrpc installations have been verified, you can use the following code in PHP to do the xmlrpc calls&#8230;</p>
<p><em>//Using the XML-RPC extension to format the XML package<br />
$request = xmlrpc_encode_request($method, array($user, $pass));<br />
$req = curl_init($service_url);</p>
<p>// Using the cURL extension to send it off,  first creating a custom header block<br />
$headers = array();<br />
array_push($headers,&#8221;Content-Type: text/xml&#8221;);<br />
array_push($headers,&#8221;Content-Length: &#8220;.strlen($request));<br />
array_push($headers,&#8221;\r\n&#8221;);</p>
<p>//URL to post to<br />
curl_setopt($req, CURLOPT_URL, $service_url);</p>
<p>//Setting options for a secure SSL based xmlrpc server<br />
curl_setopt($req, CURLOPT_SSL_VERIFYPEER, false);<br />
curl_setopt($req, CURLOPT_SSL_VERIFYHOST, 2);<br />
curl_setopt( $req, CURLOPT_CUSTOMREQUEST, &#8216;POST&#8217; );<br />
curl_setopt($req, CURLOPT_RETURNTRANSFER, 1 );<br />
curl_setopt($req, CURLOPT_HTTPHEADER, $headers );<br />
curl_setopt( $req, CURLOPT_POSTFIELDS, $request );</p>
<p>//Finally run<br />
$response = curl_exec($req);</p>
<p>//Close the cURL connection<br />
curl_close($req);<br />
</em><br />
<em>//Decoding the response to be displayed<br />
echo xmlrpc_decode($response);</em></p>
<p>&#8211;<br />
Shoaib Mir<br />
shoaibmir[@]gmail.com</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Testando Google Docs…]]></title>
<link>http://arsphysica.wordpress.com/2009/03/05/testando-gdocs/</link>
<pubDate>Thu, 05 Mar 2009 19:59:18 +0000</pubDate>
<dc:creator>Daniel</dc:creator>
<guid>http://arsphysica.wordpress.com/2009/03/05/testando-gdocs/</guid>
<description><![CDATA[Esse post é só um teste do uso do Google Docs para postar no AP. Pra quem ainda não sabia… o Google ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><blockquote><p>
Esse post é só um teste do uso do Google Docs para postar no AP.
</p></blockquote>
<p>Pra quem ainda não sabia… o <a href="http://docs.google.com/">Google Docs</a> pode ser usado pra se editar posts e publicá-los diretamente no AP (ou qualquer outro blog do Blogger, WordPress.com ou WordPress.org, LiveJournal, etc — ou então via as APIs do Blogger, do MovableType ou do MetaWeblog).</p>
<p>Para configurar tudo (para o WordPress e usando um Google Docs em inglês) vá para os <em>settings</em> do seu Google Docs e clique em <em>edit info…</em> em <em>Blog settings</em>. Lá vc entra a informação necessária, porém, para o WP, escolha a API do <em>MetaWeblog</em> e digite o seu blog no seguinte formato: <code>http://YOURSITE.wordpress.com/xmlrpc.php</code>.</p>
<p>Depois, basta criar um documento normalmente, trabalhar nele à vontade e, depois de salvá-lo, quando vc já estiver satisfeito e quiser publicá-lo no blog, basta escolher <em>publish</em> e clicar o botão para publicar no seu blog.</p>
<p><em>Voilà</em> <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_twisted.gif' alt=':twisted:' class='wp-smiley' /> </p>
<p>P.S.: Agora que as plataformas de serviços Web2.0 estão razoavelmente bem desenvolvidas, essa pode não parecer uma grande vantagem, afinal de contas vc pode exportar todos os seus posts de dentro do WP e tudo mais. Mas, quem quiser guardar cópias do que posta no blog, pode usar essa estratégia como uma forma de backup: seus posts ficam devidamente arquivados no Google Docs e são mantidos <em>sincronizados</em> com o blog (de forma que qualquer alteração ou edição no Google Docs implica na atualização do post no blog <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=':wink:' class='wp-smiley' />  ). Mais ainda, também é possível se usar todas as ferramentas/técnicas de colaboração disponíveis no Google Docs para se editar um post com muitos autores, de modo colaborativo (com direito a controle de versão e tudo mais). Então, é um bixinho que vale a pena morder… só pra ver no que dá. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_mrgreen.gif' alt=':mrgreen:' class='wp-smiley' /> </p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Developing a Python Wordpress library]]></title>
<link>http://pobega.wordpress.com/2009/03/02/developing-a-python-wordpress-library/</link>
<pubDate>Mon, 02 Mar 2009 17:38:44 +0000</pubDate>
<dc:creator>Michael Pobega</dc:creator>
<guid>http://pobega.wordpress.com/2009/03/02/developing-a-python-wordpress-library/</guid>
<description><![CDATA[As an introduction to programming I decided to divulge into a full-fledged project, instead of worki]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>As an introduction to programming I decided to divulge into a full-fledged project, instead of working on smaller programs. Considering the lack of a good Python WordPress library I decided to combine the features of two separate programs (Vimpress [http://www.vim.org/scripts/script.php?script_id=1953] and a WordPresslib [http://www.blackbirdblog.it/programmazione/progetti/28]) and XML-RPC to create a full-scale WordPress-compatible library and client for Python.<br />
Currently I&#8217;m converting these two functional (by that I mean function based as opposed to object oriented) libraries to one complete objective library. I&#8217;m still at the beginning steps, defining classes and functions, but it&#8217;s functional to the point of being able to post! (see previous blog entry)</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[For 500 bucks a month I'll kill whoever you want. But keep one thing in mind: I'd happily kill you for free. ]]></title>
<link>http://rogueeffect.wordpress.com/2009/02/18/for-500-bucks-a-month-ill-kill-whoever-you-want-but-keep-one-thing-in-mind-id-happily-kill-you-for-free/</link>
<pubDate>Wed, 18 Feb 2009 21:15:17 +0000</pubDate>
<dc:creator>rogueeffect</dc:creator>
<guid>http://rogueeffect.wordpress.com/2009/02/18/for-500-bucks-a-month-ill-kill-whoever-you-want-but-keep-one-thing-in-mind-id-happily-kill-you-for-free/</guid>
<description><![CDATA[I couldn&#8217;t really find as good a quote as I wanted but this does describe how I feel about apa]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I couldn&#8217;t really find as good a quote as I wanted but this does describe how I feel about apache-xmlrpc &#8211; It did what I wanted in such a convoluted way that I&#8217;ve managed to switch implementations and accomplish the same level of sucess in a few hours that have consumed a few days.</p>
<p>The learning process over the last few days I&#8217;m sure helped make the turnaround time possible but I&#8217;m still positive I&#8217;ve made the right decision.</p>
<p>I will make a note though that some of my quotes just don&#8217;t seem right coming from someone who&#8217;d been in fear of layoffs for sometime &#8211; I think they might be concerned that someone goes postal if they get laid off and any quips like the one above can probably be misconstrued.</p>
<p>It was a successful work day though I&#8217;m glad to have killed one path to success to get on one that&#8217;s infinitely shorter.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[API de synchronisation: it works!]]></title>
<link>http://intraviva.wordpress.com/2009/02/02/it-works/</link>
<pubDate>Mon, 02 Feb 2009 17:08:47 +0000</pubDate>
<dc:creator>aimxhaisse</dc:creator>
<guid>http://intraviva.wordpress.com/2009/02/02/it-works/</guid>
<description><![CDATA[Une etape importante dans la realisation de notre application est la synchronisation avec differents]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:left;">Une etape importante dans la realisation de notre application est la synchronisation avec differents intranets existants: cela permet en autre de faire en sorte qu&#8217;une modification sur un intranet local (basiquement un changement de numero de telephone) se repercute sur notre application, et vice et versa. Sur certains intranets locaux, un logiciel interne indique le status d&#8217;un utilisateur, c&#8217;est egalement tres plaisant de voir ce status se mettre a jour sur notre application.</p>
<p style="text-align:left;">Pour cela, nous avons mis en place une API permettant d&#8217;effectuer les modifications sur notre application. Cette API prend la forme d&#8217;une application Symfony recevant du XML via des requetes GET/POST (a la maniere d&#8217;un systeme REST, mais tres allege et adapte a notre application), et en fonction de ce dernier, met a jour notre base de donnees.</p>
<p style="text-align:left;">Nous avons fait une petite librairie PHP permettant de faciliter les echanges en generant le XML et en offrant une abstraction aux requetes CURL. Ainsi, avec un petit CRON present sur chaque intranet local, on peut facilement remettre a jour les donnees de notre application, un petit screen pour illustrer cela :</p>
<p style="text-align:center;"><img class="size-full wp-image-221 aligncenter" title="life" src="http://intraviva.wordpress.com/files/2009/02/life.png" alt="life" width="480" height="420" /></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[this is another weblog client test]]></title>
<link>http://lbolla.wordpress.com/2009/02/01/this-is-another-weblog-client-test/</link>
<pubDate>Sat, 31 Jan 2009 23:44:31 +0000</pubDate>
<dc:creator>lbolla</dc:creator>
<guid>http://lbolla.wordpress.com/2009/02/01/this-is-another-weblog-client-test/</guid>
<description><![CDATA[&#8230;and this is using BloGTK, which seems a little bit better. it support tags, too! better]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>&#8230;and this is using <a href="http://blogtk.sourceforge.net/" target="_parent">BloGTK</a>, which seems a little bit better.<br />
it support tags, too!</p>
<p>better&#8230;</p>
</div>]]></content:encoded>
</item>

</channel>
</rss>
