<?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>D&#039;oh! &#187; PHP</title>
	<atom:link href="http://pabloseminario.com/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://pabloseminario.com</link>
	<description>pabluk&#039;s blog</description>
	<lastBuildDate>Thu, 15 Sep 2011 23:16:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Compilando php-gtk2 en Ubuntu 8.10</title>
		<link>http://pabloseminario.com/2009/01/11/compilando-php-gtk2-en-ubuntu-8-10/</link>
		<comments>http://pabloseminario.com/2009/01/11/compilando-php-gtk2-en-ubuntu-8-10/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 18:14:00 +0000</pubDate>
		<dc:creator>Pablo</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.pabloseminario.com.ar/?p=36</guid>
		<description><![CDATA[Update! you can read this post translated to English here. Escribo este post porque compilar PHP-GTK 2 en Ubuntu Intrepid no es tan obvio como debería ser, o al menos como dicen acá. Descargué la última versión estable de PHP-GTK 2, la 2.0.1 pero al intentar compilarlo tira algunos errores, en LaunchPad hay un reporte]]></description>
			<content:encoded><![CDATA[<p><em><span style="color: #ff0000;">Update!</span></em> you can read this post translated to English <a href="/howtos/php-gtk2/">here</a>.</p>
<p>Escribo este post porque compilar <a href="http://gtk.php.net" target="_blank">PHP-GTK 2</a> en Ubuntu Intrepid no es tan obvio como debería ser, o al menos como dicen <a href="http://gtk.php.net/manual/en/tutorials.installation.linux.php" target="_blank">acá</a>.<br />
Descargué la última versión estable de PHP-GTK 2, la <a href="http://gtk.php.net/download.php" target="_blank">2.0.1</a> pero al intentar compilarlo tira algunos errores, en <a href="https://bugs.launchpad.net/ubuntu/+source/php5/+bug/262251" target="_blank">LaunchPad</a> hay un reporte sobre este bug. El fix para esto es</p>
<pre class="brush:shell; light: true;">cd /usr/share/aclocal
cat lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4 &gt;&gt; libtool.m4</pre>
<p>por un problema con libtool.<br />
El tema es que después de hacer esto tampoco compiló. Se me ocurrió probar la versión del CVS de PHP-GTK pero pasaba el <span style="font-family: monospace;">configure</span> pero al hacer <span style="font-family: monospace;">make</span> tiraba otros errores.<br />
La solución fue descargar la versión anterior a la estable de PHP-GTK, la 2.0.0. Este es el link para descargarla <a href="http://gtk.php.net/do_download.php?download_file=php-gtk-2.0.0.tar.gz" target="_blank">http://gtk.php.net/do_download.php?download_file=php-gtk-2.0.0.tar.gz</a><br />
Una vez descargado, solo hay que hacer</p>
<pre class="brush:shell; light: true;">./buildconf --with-phpize=/usr/bin/phpize5
./configure --with-php-config=/usr/bin/php-config5
make
sudo make install</pre>
<p>Después para poder usarlo hay que crear <span style="font-family: monospace;">/etc/php5/conf.d/php_gtk2.ini</span>, con el siguiente contenido</p>
<pre class="brush:shell; light: true;">extension=php_gtk2.so</pre>
<p>para comprobar si el módulo carga correctamente</p>
<pre class="brush:shell; light: true;">php -m|grep php-gtk</pre>
<p>y listo, ese fue todo el post dominguero <img src='http://pabloseminario.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://pabloseminario.com/2009/01/11/compilando-php-gtk2-en-ubuntu-8-10/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Another Twitter command-line client</title>
		<link>http://pabloseminario.com/2008/06/13/another-twitter-command-line-client/</link>
		<comments>http://pabloseminario.com/2008/06/13/another-twitter-command-line-client/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 23:46:00 +0000</pubDate>
		<dc:creator>Pablo</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.pabloseminario.com.ar/?p=24</guid>
		<description><![CDATA[No sé hasta cuando me va a durar, pero por ahora sigo usando Twitter. El tema o la excusa para escribir este script, es que es un embole tener un browser corriendo solo para ver los updates. Y aprovechando que la API esta por todos lados y no es nada complicado hacerse un cliente en]]></description>
			<content:encoded><![CDATA[<p>No sé hasta cuando me va a durar, pero por ahora sigo usando <a href="http://twitter.com/pabluk" target="_blank">Twitter</a>. El tema o la excusa para escribir este script, es que es un embole tener un browser corriendo solo para ver los updates. Y aprovechando que la <a href="http://groups.google.com/group/twitter-development-talk/web/api-documentation" target="_blank">API</a> esta por todos lados y no es nada complicado hacerse un cliente en cualquier lenguaje. En este caso lo hice con PHP, si si ya sé que podría haber usado hasta bash y tidy para esto. Pero esto fue lo más rápido que encontré para hacerlo, solo necesitaba PHP para parsear JSON y un poco de PEAR. <a href="http://twitter.com" target="_blank">Twitter</a> también soporta XML, RSS y ATOM.</p>
<pre class="brush:php">&lt;?php
include ("HTTP/Request.php");

$user = "pabluk";
$pass = "pass";

$timeline = new HTTP_Request("http://twitter.com/statuses/friends_timeline/" .
                             $user . ".json");
$timeline-&gt;setBasicAuth($user, $pass);
$timeline-&gt;sendRequest();

$updates = array_reverse(json_decode($timeline-&gt;getResponseBody(), TRUE));

foreach ($updates as $update) {
    if ($update['user']['screen_name'] == $user) {
        echo "\033[32m" . $update['user']['screen_name'] . ":\33[37m " .
             $update['text'] . "\n";
    } else {
        echo "\033[33m" . $update['user']['screen_name'] . ":\33[37m " .
             $update['text'] . "\n";
    }
}

?&gt;</pre>
<p>Bastante sencillo, muestra el username en color y uso <span style="font-family:monospace;">array_reverse()</span> para ordenar los updates en la terminal, así aparecen los más recientes al final.<br />
Lo ejecuto con</p>
<pre class="brush:shell; light: true;">pabluk@amidala:~$ php twitter-status.php</pre>
<p>Para tenerlo cada tanto actualizado se puede correr con</p>
<pre class="brush:shell; light: true;">pabluk@amidala:~$ while : ; do clear ; php twitter-status.php ; sleep 120 ; done</pre>
<p>Y por supuesto que también se pueden enviar updates, usando <span style="font-family:monospace;">curl</span></p>
<pre class="brush:shell">
#!/bin/bash
curl -u "pabluk:pass" -d status="$@" \
        "http://twitter.com/statuses/update.json" &amp;&gt; /dev/null</pre>
<p>y haciendo</p>
<pre class="brush:shell; light: true;">pabluk@amidala:~$ twitter-update.sh "fin del post..."</pre>
]]></content:encoded>
			<wfw:commentRss>http://pabloseminario.com/2008/06/13/another-twitter-command-line-client/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vim para CakePHP</title>
		<link>http://pabloseminario.com/2008/04/08/vim-para-cakephp/</link>
		<comments>http://pabloseminario.com/2008/04/08/vim-para-cakephp/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 23:59:00 +0000</pubDate>
		<dc:creator>Pablo</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.pabloseminario.com.ar/?p=10</guid>
		<description><![CDATA[Hace un tiempo que me decidí a usar algún framework para PHP, cansado de tener que usar mis libs, que por supuesto estaban lejos de ser perfectas, pero que en su momento me fueron útiles. Terminé elegiendo, por ahora, CakePHP. Es bastante fácil de entender, mucho mas que el framework de Zend y se ajusta]]></description>
			<content:encoded><![CDATA[<p>Hace un tiempo que me decidí a usar algún framework para <a href="http://www.php.net">PHP</a>, cansado de tener que usar mis libs, que por supuesto estaban lejos de ser perfectas, pero que en su momento me fueron útiles. Terminé elegiendo, por ahora, <a href="http://cakephp.org/">CakePHP</a>. Es bastante fácil de entender, mucho mas que el framework de <a href="http://framework.zend.com/">Zend</a> y se ajusta a lo que necesito&#8230; hacer mucho con poco esfuerzo <img src='http://pabloseminario.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> <br />
Lo único que me faltaba era decidirme por un <a href="http://es.wikipedia.org/wiki/Entorno_de_desarrollo_integrado">IDE</a> o un editor de código, a pesar de los grandes <a href="http://es.wikipedia.org/wiki/Entorno_de_desarrollo_integrado">IDE</a> como <a href="http://www.eclipse.org/">Eclipse</a> y otros. Me terminé decidiendo por Vim, ya sé que muchos me recordaran que siempre me incliné por Emacs (ping Pepe) pero a pesar de es el mejor editor de texto, creo que Vim gana por su sencillez.</p>
<p>Así que ahora a configurar Vim para hacer más fácil la vida con <a href="http://cakephp.org/">CakePHP.</a> Lo que voy a mostrar es como agregar el resaltado de sintaxis para los archivos .thtml usados en <a href="http://cakephp.org/">CakePHP.</a><br />
Sacado de <a href="http://bakery.cakephp.org">The Bakery</a>, sitio donde se cocina <a href="http://cakephp.org/">CakePHP,</a> estan estos sencillos pasos</p>
<div class="code">
<pre>mkdir ~/.vim
vi ~/.vim/filetype.vim</pre>
</div>
<p>y agregamos esto</p>
<div class="code">
<pre>" my filetype file
   if exists("did_load_filetypes")
     finish
   endif
   augroup filetypedetect
     au! BufRead,BufNewFile *.thtml     setfiletype html
   augroup END</pre>
</div>
<p>Solo queda guardar, salir y voilà!</p>
]]></content:encoded>
			<wfw:commentRss>http://pabloseminario.com/2008/04/08/vim-para-cakephp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

