<?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>Turpial</title>
	<atom:link href="http://turpial.org.ve/feed/" rel="self" type="application/rss+xml" />
	<link>http://turpial.org.ve</link>
	<description>Un cliente twitter con sabor a arepa</description>
	<lastBuildDate>Mon, 29 Apr 2013 18:32:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Weeks of work with libturpial: updates</title>
		<link>http://turpial.org.ve/2013/04/weeks-of-work-with-libturpial-updates/</link>
		<comments>http://turpial.org.ve/2013/04/weeks-of-work-with-libturpial-updates/#comments</comments>
		<pubDate>Mon, 29 Apr 2013 18:32:37 +0000</pubDate>
		<dc:creator>satanas</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Official]]></category>

		<guid isPermaLink="false">http://turpial.org.ve/?p=1279</guid>
		<description><![CDATA[The past weeks I have been working on new improvements for libturpial and one of the most important things that I accomplished is the isolation of modules. Well, that and the definitive fix for the memory leaks issue. The http module was migrated from urllib to Requests, this solved the memory leaks issue and let [...]]]></description>
			<content:encoded><![CDATA[<p>The past weeks I have been working on new improvements for <a href="https://github.com/satanas/libturpial">libturpial</a> and one of the most important things that I accomplished is the isolation of modules. Well, that and the definitive fix for the memory leaks issue.</p>
<p>The <a href="https://github.com/satanas/libturpial/blob/7bf609bc2ad104418bebe575c17f00f94a845437/libturpial/lib/http.py">http</a> module was migrated from <a href="http://docs.python.org/2/library/urllib.html">urllib</a> to <a href="http://docs.python-requests.org/en/latest/">Requests</a>, this solved the memory leaks issue and let me build a new structure for this module, now it only cares for GET and POST requests (as should be) and can be tested separately, outside a libturpial environment. After came the adaptation of <a href="https://github.com/satanas/libturpial/blob/7bf609bc2ad104418bebe575c17f00f94a845437/libturpial/lib/interfaces/protocol.py">protocol</a> module, this means integration with the new http module and update the API version (v1.1) for the <a href="https://github.com/satanas/libturpial/blob/7bf609bc2ad104418bebe575c17f00f94a845437/libturpial/lib/protocols/twitter/twitter.py">Twitter implementation</a>. Finally, yesterday I was working with the <a href="https://github.com/satanas/libturpial/blob/7bf609bc2ad104418bebe575c17f00f94a845437/libturpial/api/models/account.py">account</a> module, this integrates all the configuration part and now we can easily load the existing profiles of libturpial into a shell and make tweets, fetch the timeline, see our mentions and further.</p>
<p>Modules that need to be improved yet are the <a href="https://github.com/satanas/libturpial/blob/7bf609bc2ad104418bebe575c17f00f94a845437/libturpial/api/managers/accountmanager.py">account manager</a> and the final integration into the <a href="https://github.com/satanas/libturpial/blob/7bf609bc2ad104418bebe575c17f00f94a845437/libturpial/api/core.py">core</a>. With this I could make some unit test and start an official testing phase for a next stable release.</p>
<p>That&#8217;s all for now.</p>
<p>EOF</p>
]]></content:encoded>
			<wfw:commentRss>http://turpial.org.ve/2013/04/weeks-of-work-with-libturpial-updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Turpial is not dead</title>
		<link>http://turpial.org.ve/2013/02/turpial-is-not-dead/</link>
		<comments>http://turpial.org.ve/2013/02/turpial-is-not-dead/#comments</comments>
		<pubDate>Wed, 06 Feb 2013 03:37:03 +0000</pubDate>
		<dc:creator>satanas</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Official]]></category>

		<guid isPermaLink="false">http://turpial.org.ve/?p=1268</guid>
		<description><![CDATA[People have been wondering if Turpial is dead. The short answer is: No. Now let&#8217;s go with the long anwser. I&#8217;ve been working on the migration of Turpial from Webkit to Gtk 3 and it hasn&#8217;t been easy, a lot of work trying to implement the same we got with HTML and sadly our friends [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://turpial.org.ve/wp-content/uploads/2011/11/working.png"><img src="http://turpial.org.ve/wp-content/uploads/2011/11/working.png" alt="" title="working" width="200" height="200" class="aligncenter size-full wp-image-904" /></a></p>
<p>People have been wondering if Turpial is dead. The short answer is: <strong>No</strong>.</p>
<p>Now let&#8217;s go with the long anwser.</p>
<p>I&#8217;ve been working on the <a href="http://turpial.org.ve/2012/10/post-mortem-note-about-webkit-in-turpial/">migration of Turpial from Webkit to Gtk 3</a> and it hasn&#8217;t been easy, a lot of work trying to implement the same we got with HTML and sadly our friends <a href="https://twitter.com/guerrerocarlos">Carlos Guerrero</a> and <a href="https://twitter.com/4ndreaSt4gi">Andrea Stagi</a> have been really busy lately so they haven&#8217;t had a chance to collaborate as they wanted.</p>
<p><div id="attachment_1273" class="wp-caption aligncenter" style="width: 267px"><a href="http://turpial.org.ve/wp-content/uploads/2013/02/Turpial-Tweet-Box.png"><img src="http://turpial.org.ve/wp-content/uploads/2013/02/Turpial-Tweet-Box-257x300.png" alt="" title="Turpial-Tweet-Box" width="257" height="300" class="size-medium wp-image-1273" /></a><p class="wp-caption-text">Webkit interface</p></div><br />
<br/></p>
<p>Technically speaking, Gtk 3 has almost the same limitations than Gtk 2. Gtk.Treeview is still based on Cairo so you can&#8217;t render clickable elements (as consequence there are no links, hashtags, mentions, etc), neither draw little clickable icons on top of tweets and no fancy stuffs like we did on Webkit. This made the migration much harder. It took me a lot of time to hack some widgets or create custom ones in order to get the same look &#038; feel, and this brought a side effect: memory leaks.</p>
<p>Yes, memory leaks. Again. Fortunately not so critical as in Webkit but as harmful as any memory leak, hitting our performance like a big and heavy rock.</p>
<p><div id="attachment_1271" class="wp-caption aligncenter" style="width: 310px"><a href="http://turpial.org.ve/wp-content/uploads/2013/02/2012-11-13-010352_1366x768_scrot.png"><img src="http://turpial.org.ve/wp-content/uploads/2013/02/2012-11-13-010352_1366x768_scrot-300x168.png" alt="" title="2012-11-13-010352_1366x768_scrot" width="300" height="168" class="size-medium wp-image-1271" /></a><p class="wp-caption-text">Gtk 3 interface</p></div><br />
<br/></p>
<p>Basically that was what I&#8217;ve been doing so far, struggling with Gtk 3 and trying to get a really nice and light interface. However, nothing is perfect. GNOME has taken some decisions about the future of their platform, talking about it as the &#8220;brand&#8221; and making things hard for developers, all that sh*t and the proper limitations of Gtk 3 made me step aside. That&#8217;s it Gtk. Welcome Qt. Now I&#8217;m studying about Qt and QML to see if I finally can build the interface that I always have wanted for Turpial.</p>
<p>I have no plans of keeping Turpial 1.6 until I finish this research, Turpial 1.6 has been on service for a long time and it&#8217;s time to give it the rest it deserves. Instead I&#8217;m going to take advantage of all the progress I did with Gtk 3 and I will release a Gtk 3 version with all the limitations that I talked before but on top of libturpial, this mean the same interface than 1.6 but with multi-account, multi-protocol and multi-column support. It won&#8217;t be so bad anyway.</p>
<p>This limited version will be the 2.0 (as planned) and then I will keep working on Qt version to make the 2.5 (or 3.0) version with all the desired features. I hope to solve lots of issues with this decision and provide a decent update of our beloved bird.</p>
<p>That&#8217;s all for now.</p>
<p>EOF</p>
]]></content:encoded>
			<wfw:commentRss>http://turpial.org.ve/2013/02/turpial-is-not-dead/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>World Domination Plan &#8211; Phase 1: Accomplished</title>
		<link>http://turpial.org.ve/2012/11/world-domination-plan-phase-1-accomplished/</link>
		<comments>http://turpial.org.ve/2012/11/world-domination-plan-phase-1-accomplished/#comments</comments>
		<pubDate>Tue, 06 Nov 2012 21:38:54 +0000</pubDate>
		<dc:creator>satanas</dc:creator>
				<category><![CDATA[Campaigns]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Official]]></category>
		<category><![CDATA[campaigns]]></category>
		<category><![CDATA[results]]></category>
		<category><![CDATA[survey]]></category>
		<category><![CDATA[world-domination]]></category>

		<guid isPermaLink="false">http://turpial.org.ve/?p=1253</guid>
		<description><![CDATA[After spending hours computing thousand records on our database, we finally got the results of the first part of the World Domination Plan. By operating system we got a clear domination of Debian and Ubuntu over the rest. It&#8217;s in our plans to continue improving the integration, not only on this main distros else with [...]]]></description>
			<content:encoded><![CDATA[<p>After spending hours computing thousand records on our database, we finally got the results of the first part of the World Domination Plan. By operating system we got a clear domination of Debian and Ubuntu over the rest.</p>
<p><a href="http://turpial.org.ve/wp-content/uploads/2012/11/turpial-usage.png"><img src="http://turpial.org.ve/wp-content/uploads/2012/11/turpial-usage.png" alt="" title="turpial-usage" width="500" height="418" class="aligncenter size-full wp-image-1260" /></a></p>
<p>It&#8217;s in our plans to continue improving the integration, not only on this main distros else with Canaima, ArchLinux and Fedora too. Our primary goal is to offer a great user experience no matter which operating system you use.<br />
<br/><br />
We should notice too that 40% of current users would like to use it Turpial in Mac OS and this is a pretty good sign about the need of port Turpial to other platforms.</p>
<p><a href="http://turpial.org.ve/wp-content/uploads/2012/11/turpial-for-mac.png"><img src="http://turpial.org.ve/wp-content/uploads/2012/11/turpial-for-mac.png" alt="" title="turpial-for-mac" width="500" height="350" class="aligncenter size-full wp-image-1261" /></a><br />
<br/></p>
<p>I&#8217;ve decided that we are going to offer official support for Qt and this way Turpial can be easily ported to Windows and Mac OS but we need more hands to code faster. If you have some PyQt knowledge and want to contribute with some lines of code, please let us know (you could help us to develop a native interface for Turpial in Mac OS too).</p>
<p>That&#8217;s all for now folks, thanks to everyone who participated on the beginning of this master plan and remember that we will keep working to make an awesome and faster microblogging client.</p>
]]></content:encoded>
			<wfw:commentRss>http://turpial.org.ve/2012/11/world-domination-plan-phase-1-accomplished/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Why Webkit sucks? A post-mortem note about Webkit in Turpial</title>
		<link>http://turpial.org.ve/2012/10/post-mortem-note-about-webkit-in-turpial/</link>
		<comments>http://turpial.org.ve/2012/10/post-mortem-note-about-webkit-in-turpial/#comments</comments>
		<pubDate>Sun, 28 Oct 2012 12:41:30 +0000</pubDate>
		<dc:creator>satanas</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Official]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[GTK3]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[turpial]]></category>
		<category><![CDATA[Turpial 2.0]]></category>
		<category><![CDATA[webkit]]></category>

		<guid isPermaLink="false">http://turpial.org.ve/?p=1238</guid>
		<description><![CDATA[Almost 8 months ago we offered a brand new turpial version, with a lot of new features: Multiple accounts, unlimited columns and a really good looking interface. That looked promising, however it was an unkwon path for us. Very innovator but very uncertain. Guess what? We stucked up. Yes, Webkit let you do anything you [...]]]></description>
			<content:encoded><![CDATA[<p>Almost 8 months ago we offered a <a href="http://turpial.org.ve/2012/02/turpial-2-0-whats-new/">brand new turpial version</a>, with a lot of new features: Multiple accounts, unlimited columns and a really good looking interface. That looked promising, however it was an unkwon path for us. Very innovator but very uncertain. Guess what? We stucked up.</p>
<p>Yes, Webkit let you do <strong>anything</strong> you want, imagination is the limit, but as the uncle Ben said: &#8220;With great power comes great responsabilities&#8221;. And that quote never had such a big meaning for me as now. This apparently unlimited power requires a extremely solid base of development and in our case, we hadn&#8217;t. </p>
<p><br/></p>
<h2>The unknown path</h2>
<p>Technically speaking, there are no tools or frameworks to do what we wanted the way we wanted, it was: integrate HTML and Javascript into Python (desktop) applications using just a Webkit container. Well, actually Pyjamas and PyQt does something like that, but the first it&#8217;s traumatizing and with the second we should marry with Qt toolkit and this was not the idea. We wanted to deliver the same application with pretty much the same code in any graphic toolkit with webkit support: Gtk, Qt, WxWidget, et al and pure Python. That was our goal.</p>
<p><br/></p>
<h2>First approach</h2>
<p>First thing I had to deal with was Webkit and threads. Threads? Yes sir, threads. Threading is the only way you can do a long task without freezing the whole UI, it&#8217;s not very pleasant to get a gray and useless window while your app is fetching your timelime, for example.</p>
<p>At he beginning was very frustrating and I got &#8220;solutions&#8221; like: &#8220;You have to enclose all the methods that access the UI from the thread with this&#8221;:</p>
<p><code>
<pre>gtk.threads_enter()
my_method()
gtk.threads_leave()</pre>
<p></code></p>
<p>Can you imagine doing so for every single method that should access to UI widgets? It&#8217;s at least overwhelming.</p>
<p>I continued my research and after like 2 weeks of frantic reading I finally got a reasonable explanation: Gtk is thread-aware not thread-safe, so you just need to start the threads support and enclose the main loop with those instructions and Gtk will know what to do. Ok the code was simple, at the beginning of your file do this:</p>
<p><code>
<pre>gtk.threads_init()</pre>
<p></code></p>
<p>And then enclose your main loop with this:</p>
<p><code>
<pre>gtk.threads_enter()
gtk.main()
gtk.threads_leave()</pre>
<p></code></p>
<p>That was one of happiest moments of my life, Webkit was running smoothly whilst the app was executing a lot of task on background. If you are curious about the threading implementation checkout the code of the worker in our <a href="https://github.com/satanas/Turpial/blob/webkit-legacy/turpial/ui/gtk/worker.py">legacy branch</a>.</p>
<p>Passed this obstacle I started to work in a <a href="http://wiki.turpial.org.ve/dev:htmlrendererengine">HTML Render Engine for Turpial</a>, based on Python, Webkit and Jinja2. It worked like a charm, Jinja2 is a really amazing solution for template render but there was something else, Javascript integration. We needed to find a way to call Python functions from Javascript code.</p>
<p>After a little research we did it. We intercepted the click event generated by Webkit and changed the protocol for the URL according our needs. Regular links started with the common <strong>http://</strong> and they trigger a new tab on the default browser whilst links to call Python functions started with <strong>cmd://</strong>. This did the trick.</p>
<p><br/></p>
<h2>Passing arguments</h2>
<p>Intercepting clicks wasn&#8217;t the end, it was just the beginning. Despite the idea of calling Python methods from URLs in HTML seems motivating, we faced a new challenge: Passing arguments to those Python methods. I say a &#8220;challenge&#8221; because we only could build links, so arguments should be passed as a part of the link and then parsed out. After lot of testing I decided to implement this schema:</p>
<p><code>
<pre>cmd://method_name-%&#038;%-argument1-%&#038;%-argument2...</pre>
<p></code></p>
<p>Where <strong>-%&#038;%-</strong> acts as arguments separator. &#8220;Why such a complicated characters sequence?&#8221; You may ask. Well, because I thought that making a hard sequence is less probable that parsing fails by misunderstanding the separator with the content of one argument. I tried with simpler separators and base64 encoding but we needed to pass other params (like status messages) that have a lot of non-ASCII chars and base64 is not very good for that. For those arguments I ended using URL encoding.</p>
<p>At the moment of writing this I think that maybe a better solution could be making <a href="http://en.wikipedia.org/wiki/Representational_state_transfer">RESTful</a> links, this means to use slashes (/) as separators and URL encoding each argument. Like this:</p>
<p>cmd://method_name/url_encoded_argument1/url_encoded_argument2/url_encoded_argument3/&#8230;</p>
<p>But, hey! it&#8217;s done. Now I&#8217;m relaxed, working on GTK3 migration and probably my brain is not under stress. Sh*t happens.</p>
<p><br/></p>
<h2>Layout</h2>
<p>One of the most annoying things to deal with was the layout. HTML let you build anything, but if you&#8217;ve worked a little bit with HTML you should know how frustrating could be sometimes build a decent layout. Multiplies that per 100 and then you will have an idea of how frustrating becomes to do it for a desktop application. Just a bad css-margin or a wrong floating div is enough to send your layout to hell. Turpial is a desktop application and, as such, it should be flexible, resizable, movable and everything that ends with &#8220;able&#8221;.</p>
<p>I had to use a table for layout (yes, shame on me) because it was the only way I could guarantee that layout won&#8217;t break my app into an unusable window just for 1px extra in a margin. Trust me, I tested A LOT and everything failed, so I used one table.</p>
<p>Another need was to show modal dialogs, and this is kind of annoying with pure HTML and Javascript. You probably would be thinking &#8220;But dude, there are lots of Javascript libraries that even cook the breakfast for you&#8221; and you&#8217;re right, but this webkit implementation had another limitation. With PyWebkitGtk you can render HTML by loading the URL or just passing a HTML string. Obviuosly, I used the second one for Turpial. The issue is that when you pass a HTML string, you must pass a relative path for the resources (images, CSS, etc) and none of the most used forms was valid. I tested with file:///my/path/, /my/path/, path/ and other possible values, even with and without trailing slashes and nothing worked. Resources weren&#8217;t loaded correctly.</p>
<p>One solution was to host those resource in the cloud but that would make Turpial relies in other services/platform and that wasn&#8217;t an option for me. The best shot was to embed the whole code (HTML, Javascript and CSS) in a single file and pass it as string. Can you imagine now how hard it was to add lots of javascript libraries? And now try to imagine how hard could be debugging?</p>
<p>It was more than a need to keep Turpial with the smallest amount of Javascript libraries. For me this meant one thing: No more libraries than JQuery.</p>
<p><br/></p>
<h2>Performance</h2>
<p>Keeping only one Javascript library for Turpial wasn&#8217;t only matter of comfort, it was related with performance too. Rendering a HTML page with thousands and thousands  lines of code increase the memory consumption of webkit and becomes Turpial into a fat and slow little bird.</p>
<p>Speaking of performance, the minimum webkit consumption was 50MB (with just a Hello World page) plus the 40MB of GTK consumption, 90MB just to open Turpial. We were flushing our lightness through the toilet but maybe we could live with it, we just need to make it worth. We started to work in some javascript methods to optimize the status rendering, for example, we didn&#8217;t render the whole column (of statuses), we just added new tweets and deleted the old ones keeping a fixed number of tweets on the column (no more than 200 per column). I used that technique in Gtk and it worked, even in Webkit seems to work, but if you used Turpial for a long time you could see how memory increased until cause segmentation fault. Yeap, your operating system had to act to avoid Turpial ate the whole memory and this was tested by Willicab who saw 1.8GB of RAM used by the bird. We had memory leaks.</p>
<p>After digging a lot in the source code, testing and profiling memory I realized that webkit had a memory leak when you use the <strong>execute_script</strong> method to update the DOM of the page. Everytime you use that method your memory increases a little bit. Tweets were keeping in memory (in an array) and in HTML view ad infinitum, making the memory grows and grows until the OS decided to close the application.</p>
<p>Turpial 1.6.x used like 50~60MB of RAM but Turpial 2 was using almost 100MB of RAM while applications like Banshee were using 60MB and gnome-shell 120MB. For my this was unacceptable for a &#8220;lightweight&#8221; application.</p>
<p>This issue taugh me that PyWebkitGtk implementation was not so good as I expected, it lacks of documentation (the only available is the C++ documentation) and that if you want to develop complex applications on top of it you should think twice.</p>
<p><br/></p>
<h2>Conclusion</h2>
<p>It was a really good experience (in terms of learning) but all the issues explained above make me take the decision of drop the webkit support and back to the limited but stable-and-well-known GTK3 in order to deliver a new Turpial version as soon as possible. Turpial 1.6.9 has been out there for more than 1 year and it&#8217;s time to release a fresh version of the bird.</p>
<p>Webkit is a really powerful tool, I have no doubt about it. You can build anything on top of HTML and present the same look &#038; feel for all platforms, besides using CSS you can implement a theme engine easily. However the complexity of the integration, the frustration you have to deal with everytime you want to make changes on your layout and it breaks and the performance issues put Webkit out of my list of tools for Turpial. Probably I could use it, but not for Turpial. For using Webkit as we want we need a framework, limited and bounded that minimize all the suffering and offer you a stable tool for development.</p>
<p>That&#8217;s all folks, I hope this article can be helpful for someone else.</p>
<p><br/></p>
<h2>Time of death: October 10, 2012</h2>
<p><br/></p>
<p>If you are interested on this topic you can read more here:</p>
<ul>
<li><a href="http://turpial.org.ve/2012/02/turpial-2-0-whats-new/">First Turpial 2.0 official announcement</a></li>
<li><a href="http://turpial.org.ve/2012/03/the-first-alpha-release-of-turpial-2-0-is-here">First 2.0 alpha release</a>/</li>
<li><a href="http://turpial.org.ve/2012/03/alpha-release-delayed-for-2-0/">Alpha release delayed</a></li>
<li><a href="https://groups.google.com/d/topic/turpial-dev/iz3AWrqzGhs/discussion">Mailing list thread about performance issues</a></li>
<li><a href="https://groups.google.com/d/msg/turpial-dev/dl_IJO6oYWE/C68Ll_VPuV0J">Mailing list thread about Gtk3 migration</a></li>
<li><a href="http://turpial.org.ve/2012/10/im-going-through-changes-said-turpial/">Official announcement of Gtk3 migration</a></li>
<li><a href="http://www.aclevername.com/articles/python-webgui/">Interesting article about Web interfaces with Python</a></li>
<li><a href="http://developer.gnome.org/gtk-faq/stable/x481.html">GNOME explanation about Gtk threading awareness</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://turpial.org.ve/2012/10/post-mortem-note-about-webkit-in-turpial/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Pygout: Hacking libturpial</title>
		<link>http://turpial.org.ve/2012/10/pygout-hacking-libturpial/</link>
		<comments>http://turpial.org.ve/2012/10/pygout-hacking-libturpial/#comments</comments>
		<pubDate>Sun, 21 Oct 2012 14:03:41 +0000</pubDate>
		<dc:creator>satanas</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Official]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[hangout]]></category>
		<category><![CDATA[libturpial]]></category>
		<category><![CDATA[pygout]]></category>
		<category><![CDATA[turpial]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://turpial.org.ve/?p=1230</guid>
		<description><![CDATA[As part of an activity started in Venezuela by friends of the Python community, I was invited to do a Google Hangout this saturday (Oct 20) to talk about libturpial. This initiative is been called Pygout (for Python-Hangout) and it main goals is to share knowledge. Pygouts are broadcasted live and besides they are recorded [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://turpial.org.ve/wp-content/uploads/2012/10/hacking-libturpial.png"><img src="http://turpial.org.ve/wp-content/uploads/2012/10/hacking-libturpial.png" alt="Hacking libturpial" title="hacking-libturpial" width="567" height="353" class="aligncenter size-full wp-image-1231" /></a></p>
<p>As part of an <a href="https://groups.google.com/forum/?fromgroups=#!topic/python-caracas/AVjkEYQn__E">activity started in Venezuela by friends of the Python community</a>, I was invited to do a Google Hangout this saturday (Oct 20) to talk about <a href="https://github.com/Turpial/libturpial">libturpial</a>. This initiative is been called Pygout (for Python-Hangout) and it main goals is to share knowledge.</p>
<p>Pygouts are broadcasted live and besides they are recorded and uploaded to YouTube, so don&#8217;t worry if you miss it. You can see the whole <a href="http://www.youtube.com/watch?v=3pqEa7UmPCU&#038;feature=youtu.be">video of Pygout: Hacking libturpial</a> (in spanish) and if you like it, spread the word and <a href="https://pygouts-smag.rhcloud.com/">keep track of next hangouts</a>.</p>
<p><strong>Update:</strong> As result of this hacktivity we got awesome comments and suggestions:</p>
<ul>
<li>Deprecation Warning for obsolete methods on libturpial</li>
<li>Use <a href="http://docs.python-requests.org/en/latest/">Requests</a> library to handle HTTP request and OAuth</li>
<li>Service for API keys and usage statistics</li>
<li>Improve proxy support</li>
<li>Unit test for libturpial</li>
<li>Improve setup.py to recommend dependencies to install (with OS instructions)</li>
</ul>
<p>I want to thank and congratulate to our friends of the Python Community for this awesome initiative and encourage the people to participate and thanks to all the people who participated in this great pygout.</p>
<p>Keep hacking!</p>
]]></content:encoded>
			<wfw:commentRss>http://turpial.org.ve/2012/10/pygout-hacking-libturpial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A great day to join us!</title>
		<link>http://turpial.org.ve/2012/10/a-great-day-to-join-us/</link>
		<comments>http://turpial.org.ve/2012/10/a-great-day-to-join-us/#comments</comments>
		<pubDate>Thu, 18 Oct 2012 22:14:19 +0000</pubDate>
		<dc:creator>satanas</dc:creator>
				<category><![CDATA[Campaigns]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Official]]></category>
		<category><![CDATA[campaigns]]></category>
		<category><![CDATA[turpialism]]></category>
		<category><![CDATA[turpialismo]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[world-domination]]></category>

		<guid isPermaLink="false">http://turpial.org.ve/?p=1228</guid>
		<description><![CDATA[That&#8217;s it. Today is a great day to join us in our plan to rule the world. Let&#8217;s do it!]]></description>
			<content:encoded><![CDATA[<p>That&#8217;s it.</p>
<p>Today is a great day to join us in our plan to <a href="http://turpial.org.ve/world-domination?lang=en">rule the world</a>. Let&#8217;s do it!</p>
]]></content:encoded>
			<wfw:commentRss>http://turpial.org.ve/2012/10/a-great-day-to-join-us/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;I&#8217;m Going Through Changes&#8221; said Turpial</title>
		<link>http://turpial.org.ve/2012/10/im-going-through-changes-said-turpial/</link>
		<comments>http://turpial.org.ve/2012/10/im-going-through-changes-said-turpial/#comments</comments>
		<pubDate>Tue, 16 Oct 2012 20:14:57 +0000</pubDate>
		<dc:creator>azrael</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Improves]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Official]]></category>
		<category><![CDATA[Other]]></category>
		<category><![CDATA[Updates]]></category>
		<category><![CDATA[Eminem]]></category>
		<category><![CDATA[Fast]]></category>
		<category><![CDATA[Going Through Changes]]></category>
		<category><![CDATA[GTK3]]></category>
		<category><![CDATA[Identi.ca]]></category>
		<category><![CDATA[Light]]></category>
		<category><![CDATA[Native]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[Recovery]]></category>
		<category><![CDATA[turpial]]></category>

		<guid isPermaLink="false">http://turpial.org.ve/?p=1195</guid>
		<description><![CDATA[Turpial has something to say to you all: "I'm Going Through Changes, eh eh" [Eminem on "Going Through Changes" from his album Recovery] &#160; That&#8217;s right everybody, the Bird&#8216;s going to take a new direction back to its roots, back to where it all began, so i guess it isn&#8217;t quite a new direction after all. &#160; Have you ever [...]]]></description>
			<content:encoded><![CDATA[<p>Turpial has something to say to you all:</p>
<pre>"I'm Going Through Changes, eh eh"</pre>
<blockquote>
<h6 style="text-align: right;">[<a title="Official Site" href="http://www.eminem.com/" target="_blank">Eminem</a> on <a title="Song and Lyrics on video's description" href="http://youtu.be/vskykR73XQ0" target="_blank">"Going Through Changes"</a> from his album <a title="Info here" href="http://www.eminem.com/discography/default.aspx?pid=2616" target="_blank">Recovery</a>]</h6>
</blockquote>
<p>&nbsp;</p>
<p>That&#8217;s right everybody, <em>the Bird</em>&#8216;s going to take a new direction back to its roots, back to where it all began, <del>so i guess it isn&#8217;t quite a <em>new</em> direction after all</del>.</p>
<p>&nbsp;</p>
<p><strong>Have you ever gone to the gym</strong> and tried out every single <em><a title="¡Increíble! Transformer llega al Metro de Caracas" href="http://youtu.be/6qr3XCVZoGU?t=35s" target="_blank">trasformer</a></em> machine they got there in the hopes of getting the exercise you need to build your muscles properly? <del>Yeah, me neither</del> And then figured out that what you continue to do in that spensive gym is jog, run and weights? All of which you actually were pretty much doing all by yourself, effortlessly,  cheap AND you were getting results! The chicks were staring at you, when you went for morning/afternoon/night jogs and workouts in the park, instead of going to that four-walled torture chamber they so call gymnasium.</p>
<p>&nbsp;</p>
<p>Well, <strong>something like that happened to <em>the Bird</em> guys</strong>, we started heading to a path with great hopes of achieving new ways to port, use and implement Turpial in it&#8217;s newest forms but then it came to our attention that we&#8217;ve been over working ourselves for no reason, and that everything we&#8217;ve come to so far was resulting on too much power useage and not enought <em>lightness</em> and <em>fastness</em> from our beloved Turpial.</p>
<p>&nbsp;</p>
<p>So <strong>we had to make a choice, an adjustment to benefit you and <em>The Bird</em> in the way it was first planed: Light, Fast and Native</strong>. That&#8217;s why, we have decided to drop Webkit development to focus on <a title="Qt Project" href="http://qt-project.org/" target="_blank">Qt</a>, <a title="Python Programming Language – Official Website" href="http://www.python.org/" target="_blank">Python</a> and <a title="What is GTK+, and how can I use it? " href="http://www.gtk.org/" target="_blank">Gtk3</a>. This was the way things worked back in 2009-&#8217;10 and it&#8217;s time we go back to our roots, back to where it all started. These adjustment will take a bit of time to come out to the public, but we are hard working on it to make it the best solutions for you, Twitter, Identi.ca and for all our development team.</p>
<p>&nbsp;</p>
<p><strong>Thanks for being with us through all</strong> of our story and for allowing us to grow with you. Remember, we are all always</p>
<pre>"Going through changes..."</pre>
<p>If you need more info, please read: <a title="Why are we going back?" href="https://groups.google.com/forum/?fromgroups=#!topic/turpial-dev/dl_IJO6oYWE">To webkit or not to webkit</a></p>
]]></content:encoded>
			<wfw:commentRss>http://turpial.org.ve/2012/10/im-going-through-changes-said-turpial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to write code for Turpial</title>
		<link>http://turpial.org.ve/2012/10/how-to-write-code-for-turpial/</link>
		<comments>http://turpial.org.ve/2012/10/how-to-write-code-for-turpial/#comments</comments>
		<pubDate>Fri, 05 Oct 2012 21:21:16 +0000</pubDate>
		<dc:creator>satanas</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://turpial.org.ve/?p=1192</guid>
		<description><![CDATA[Are you a developer? Would you like to collaborate with the project but you don&#8217;t have idea how? This post is for you. We have created a new article in our wiki that explains the basic flow to interact and write code for Turpial. We assume that you already have a minimum understanding of Git [...]]]></description>
			<content:encoded><![CDATA[<p>Are you a developer? Would you like to collaborate with the project but you don&#8217;t have idea how? This post is for you.</p>
<p>We have created a new article in our wiki that explains the <a href="http://wiki.turpial.org.ve/dev:how_to_write_code">basic flow to interact and write code for Turpial</a>.</p>
<p>We assume that you already have a minimum understanding of Git and that you feel comfortable with shell commands. If you have any doubt or suggestion just pass by to #turpial channel on IRC or join to our <a href="http://groups.google.com/group/turpial-dev">mailing list</a> and ask your questions, we&#8217;ll be glad to hear you.</p>
<p>Check it out and tell us what do you think.</p>
]]></content:encoded>
			<wfw:commentRss>http://turpial.org.ve/2012/10/how-to-write-code-for-turpial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fixed Identi.ca authentication (development)</title>
		<link>http://turpial.org.ve/2012/07/fixed-identi-ca-authentication-development/</link>
		<comments>http://turpial.org.ve/2012/07/fixed-identi-ca-authentication-development/#comments</comments>
		<pubDate>Tue, 31 Jul 2012 19:21:17 +0000</pubDate>
		<dc:creator>satanas</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://turpial.org.ve/?p=1188</guid>
		<description><![CDATA[The Identi.ca authentication issue in Turpial 2.0 have been fixed. In order to fetch this changes from development branch you need to update both github repositories (turpial and libturpial) and then remove the ~/.config/turpial folder. This procedure will erase your current settings and all registered accounts but is completely necessary, otherwise Turpial won&#8217;t run after [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://dev.turpial.org.ve/issues/550">Identi.ca authentication issue</a> in Turpial 2.0 have been fixed. In order to fetch this changes from development branch you need to update both github repositories (turpial and libturpial) and then remove the <strong>~/.config/turpial</strong> folder.</p>
<p>This procedure will erase your current settings and all registered accounts but is completely necessary, otherwise Turpial won&#8217;t run after update because a conflict with the old configuration files.</p>
]]></content:encoded>
			<wfw:commentRss>http://turpial.org.ve/2012/07/fixed-identi-ca-authentication-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Turpial 1.6.9 now in Ubuntu PPA</title>
		<link>http://turpial.org.ve/2012/05/turpial-1-6-9-now-in-ubuntu-ppa/</link>
		<comments>http://turpial.org.ve/2012/05/turpial-1-6-9-now-in-ubuntu-ppa/#comments</comments>
		<pubDate>Thu, 24 May 2012 21:51:09 +0000</pubDate>
		<dc:creator>satanas</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Official]]></category>
		<category><![CDATA[Packages]]></category>
		<category><![CDATA[Updates]]></category>

		<guid isPermaLink="false">http://turpial.org.ve/?p=1181</guid>
		<description><![CDATA[After a long time, and thanks to the efforts of our friend Efrain Valles, Turpial&#8217;s PPA finally got updated with the lastest stable version of Turpial (1.6.9). If you&#8217;re using a previous version we encourage you to update as soon as posible. For more information visit our downloads page .]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://turpial.org.ve/wp-content/uploads/2012/05/ubuntu-logo.png"><img class="aligncenter  wp-image-1184" title="ubuntu-logo" src="http://turpial.org.ve/wp-content/uploads/2012/05/ubuntu-logo.png" alt="" width="180" height="180" /></a></p>
<p>After a long time, and thanks to the efforts of our friend <a href="http://twitter.com/#!/effiejayx">Efrain Valles</a>, <a href="https://launchpad.net/~effie-jayx/+archive/turpial">Turpial&#8217;s PPA</a> finally got updated with the lastest stable version of Turpial (1.6.9).</p>
<p>If you&#8217;re using a previous version we encourage you to update as soon as posible. For more information visit our <a href="http://turpial.org.ve/downloads/">downloads page</a></p>
<p>.</p>
]]></content:encoded>
			<wfw:commentRss>http://turpial.org.ve/2012/05/turpial-1-6-9-now-in-ubuntu-ppa/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
