<?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>Punksolid &#187; Aplicaciones</title>
	<atom:link href="http://www.punksolid.com/category/aplicaciones/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.punksolid.com</link>
	<description>Tecnologia, Curiosidades, Sistemas de Informacion y un poco de Religion</description>
	<lastBuildDate>Thu, 18 Aug 2011 13:06:55 +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>Busquedas de filtros complejos en CakePHP</title>
		<link>http://www.punksolid.com/busquedas-de-filtros-complejos-en-cakephp/2011/</link>
		<comments>http://www.punksolid.com/busquedas-de-filtros-complejos-en-cakephp/2011/#comments</comments>
		<pubDate>Fri, 12 Aug 2011 11:57:44 +0000</pubDate>
		<dc:creator>Punksolid</dc:creator>
				<category><![CDATA[Aplicaciones]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programas]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.punksolid.com/?p=644</guid>
		<description><![CDATA[Para comprender la situación mejor, necesitamos ver el screenshot de la vista. Hay varias formas de hacer esto, la mas común es usar la función query de CakePHP para armar la consulta SQL en base a condiciones by (@el_keogh) , está la función find, pero no se pueden poner condiciones dentro, así que lo que [...]]]></description>
			<content:encoded><![CDATA[<p>Para comprender la situación mejor, necesitamos ver el screenshot de la vista.</p>
<p><a href="http://www.punksolid.com/blog/wordpress/wp-content/uploads/2011/07/Selecci%C3%B3n_011.png"><img class="aligncenter size-full wp-image-660" title="Busqueda" src="http://www.punksolid.com/blog/wordpress/wp-content/uploads/2011/08/Selecci%C3%B3n_024.png" alt="" width="687" height="225" /></a></p>
<p>Hay varias formas de hacer esto, la mas común es usar la función query de CakePHP para armar la <a href="http://pastebin.com/XS1rMtr1" target="_blank">consulta SQL en base a condiciones</a> by (<a href="http://twitter.com/el_keogh" target="_blank">@el_keogh)</a> , está la función find, pero no se pueden poner condiciones dentro, así que lo que se puede hacer es armar el array conditions desde afuera de la siguiente forma:</p>
<p>&nbsp;</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> 
<span style="color: #666666; font-style: italic;">//Bloque #1 asignacion de variables para comodidad</span>
<span style="color: #000088;">$alumnoid</span><span style="color: #339933;">=</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Examene'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'cuenta'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$user</span><span style="color: #339933;">=</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Examene'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'user'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$fechaInicio</span><span style="color: #339933;">=</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Examene'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Fecha de Inicio'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$fechaFin</span><span style="color: #339933;">=</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Examene'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Fecha de Fin'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$formadepago</span><span style="color: #339933;">=</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Examene'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'forma_de_pago'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$resultado</span><span style="color: #339933;">=</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Examene'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'resultado'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$conditions</span><span style="color: #339933;">=</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//Bloque #2 Condiciones tabla Alumnos</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Examene'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'nombre'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$conditions</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Alumno.nombre LIKE'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'%'</span><span style="color: #339933;">.</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Examene'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'nombre'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'%'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Examene'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'apellido_paterno'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$conditions</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Alumno.apellido_paterno LIKE'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'%'</span><span style="color: #339933;">.</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Examene'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'apellido_paterno'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'%'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Examene'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'apellido_materno'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$conditions</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Alumno.apellido_materno LIKE'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'%'</span><span style="color: #339933;">.</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Examene'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'apellido_materno'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'%'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #666666; font-style: italic;">//Bloque #3 Condiciones tabla Examenes</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$alumnoid</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$conditions</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Examene.alumno_id'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #000088;">$alumnoid</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$user</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$conditions</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Examene.user_id'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #000088;">$user</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #666666; font-style: italic;">//Bloque #4 Condiciones de intervalos de fecha</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fechaInicio</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$conditions</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Examene.created &gt;'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$fechaInicio</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fechaFin</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$conditions</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Examene.created &lt;='</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span><span style="color: #000088;">$fechaFin</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' 23:59:59'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$formadepago</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$conditions</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Examene.forma_de_pago'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span><span style="color: #000088;">$formadepago</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$resultado</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$conditions</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Examene.resultado'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span><span style="color: #000088;">$resultado</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #666666; font-style: italic;">//Bloque #5 query</span>
<span style="color: #000088;">$conditions</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Examene.statusid &lt;&gt;'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">4</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$examenes</span><span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">paginate</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$conditions</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<h3>Bloque #1 asignación de variables</h3>
<p>En este caso se manejan dos tablas distintas de la base de datos, están relacionadas entre si, Alumnos y Examenes, utilicé asignación de variables para mas comodidad en su manejo, pero no son necesarias.</p>
<h3>Bloque #2 Condiciones de tabla Alumnos</h3>
<p>Las condiciones determinan cuando hay datos en los campos, si no hay datos, no hay condición que aplicar y nada que meter en el array, las primeras tres condiciones pertenecen a la tabla alumnos, de la cual se va a buscar por nombre NO exacto por eso los LIKE y la concatenación del símbolo de porcentaje. Para que esto funcione, las relaciones en el modelo deben estar previamente establecidas.</p>
<h3>Bloque #3 Condiciones de tabla Examenes</h3>
<p>En el segundo bloque ponemos las condiciones de la otra tabla, nada especial ya que los valores de esos campos deben ser exactos.</p>
<h3>Bloque #4 Condiciones de intervalos de fecha</h3>
<p>Para cuando tenemos intervalos de fechas y tenemos el formato en Datetime, es necesario concatenar la hora en la que termina el dia, si no lo hiciéramos contaría hasta la hora 00:00:00 no devolviéndonos los resultados del ultimo dia especificado.</p>
<h3>Bloque #5 Query</h3>
<p>La función paginate, se utiliza casi de la misma manera que un <a href="http://book.cakephp.org/view/1030/Complex-Find-Conditions" title="Complex Find Conditions" target="_blank">find</a> y listo automagicamente cakephp devolverá solo los exámenes de los campos donde se les haya especificado algun dato, notese que este tipo de búsqueda es de tipo AND, o sea cada campo va filtrando aun mas la búsqueda, en lugar de añadir nuevas coincidencias.</p>
<p>Cualquier duda o comentario es bienvenido.<br />
Referencias<br />
<a href="http://book.cakephp.org/view/1030/Complex-Find-Conditions" title="Documentación oficial cakephp" target="_blank">Complex Find Conditions</a><br />
<a href="http://book.cakephp.org/view/164/pagination" target="_blank">Pagination in cakephp</a></p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.punksolid.com/busquedas-de-filtros-complejos-en-cakephp/2011/&via=Punksolid&text=Busquedas de filtros complejos en CakePHP&related=José Palazuelos:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.punksolid.com/busquedas-de-filtros-complejos-en-cakephp/2011/&via=Punksolid&text=Busquedas de filtros complejos en CakePHP&related=José Palazuelos:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.punksolid.com/busquedas-de-filtros-complejos-en-cakephp/2011/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>cakephp-instaweb</title>
		<link>http://www.punksolid.com/cakephp-instaweb/2011/</link>
		<comments>http://www.punksolid.com/cakephp-instaweb/2011/#comments</comments>
		<pubDate>Thu, 12 May 2011 08:12:43 +0000</pubDate>
		<dc:creator>Punksolid</dc:creator>
				<category><![CDATA[Aplicaciones]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Ubuntu 10.10]]></category>
		<category><![CDATA[Ubuntu 11.04]]></category>

		<guid isPermaLink="false">http://www.punksolid.com/?p=636</guid>
		<description><![CDATA[cakephp-instaweb server es un webserver pequeño con todas las configuraciones necesarias para desarrollar en cakephp, no necesitas instalar todo el entorno php. Funciona igual al django-runserver, solo en la terminal te colocas en la carpeta de la aplicación, corres el comando y listo, tendrás tu app funcionando en http://localhost.com:3000 Si usas Ubuntu 10.10 y cakephp [...]]]></description>
			<content:encoded><![CDATA[<p><strong><img class="alignright" title="Cakephp" src="http://cakephp.org/img/new.png" alt="cakephp" width="134" height="132" />cakephp-instaweb</strong> server es un webserver pequeño con todas las configuraciones necesarias para desarrollar en cakephp, no necesitas instalar todo el entorno php. Funciona igual al django-runserver, solo en la terminal te colocas en la carpeta de la aplicación, corres el comando y listo, tendrás tu app funcionando en http://localhost.com:3000</p>
<p>Si usas Ubuntu 10.10 y cakephp 1.3.8 te marcará un error</p>
<blockquote>
<h3>CGI Script Error</h3>
<h3>Premature end of script headers.</h3>
</blockquote>
<p>Si instalaste cakephp-instaweb desde los repositorios de maverick se habrá instalado la versión 0.4.X, el error anterior se soluciona con la versión mas nueva 0.5-1 para instalarlo primero debes desinstalar completamente el cakephp-instaweb y luego <a href="https://launchpad.net/ubuntu/natty/amd64/cakephp-instaweb/0.5-1">descargar el .deb desde launchpad para Ubuntu Natty</a>, no causa conflicto alguno.</p>
<p>Con eso se habrá solucionado el problema.</p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.punksolid.com/cakephp-instaweb/2011/&via=Punksolid&text=cakephp-instaweb&related=José Palazuelos:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.punksolid.com/cakephp-instaweb/2011/&via=Punksolid&text=cakephp-instaweb&related=José Palazuelos:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.punksolid.com/cakephp-instaweb/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ninite Easy PC Setup &#8211; Silent Unattended Install Multiple Programs At Once</title>
		<link>http://www.punksolid.com/ninite-easy-pc-setup-silent-unattended-install-multiple-programs-at-once/2011/</link>
		<comments>http://www.punksolid.com/ninite-easy-pc-setup-silent-unattended-install-multiple-programs-at-once/2011/#comments</comments>
		<pubDate>Fri, 11 Feb 2011 11:17:09 +0000</pubDate>
		<dc:creator>Punksolid</dc:creator>
				<category><![CDATA[Aplicaciones]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[Ninite]]></category>
		<category><![CDATA[Seguridad Informatica]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.punksolid.com/?p=617</guid>
		<description><![CDATA[Como cualquier informatico o afín, no importa si eres un sysadmin, o tecnico o simplemente un Pringao (Howto) siempre es incomodo que una vez que instalas un windows tienes que descargarte las aplicaciones comunes una por una, al menos que ya las tengas almacenadas, lo cual también es incomodo por que tienes espacio alojado por aplicaciones que se [...]]]></description>
			<content:encoded><![CDATA[<p>Como cualquier informatico o afín, no importa si eres un sysadmin, o tecnico o simplemente un <a href="http://www.sromero.org/wiki/linux/sistema/pringao_howto">Pringao (Howto)</a> siempre es incomodo que una vez que instalas un windows tienes que descargarte las aplicaciones comunes una por una, al menos que ya las tengas almacenadas, lo cual también es incomodo por que tienes espacio alojado por aplicaciones que se descargan rápidamente. En fin, existen programas como Ninite, que seleccionas las aplicaciones que deseas y te genera el instalador que automáticamente te descarga e instala las aplicaciones sin necesidad de que el usuario vea configuraciones avanzadas, ideal para enviar por mensajería o usarlo de manera desatendida.</p>
<blockquote><p><a href="http://ninite.com/">Ninite Easy PC Setup - Silent Unattended Install Multiple Programs At Once</a>.</p></blockquote>
<p>Funcionó perfecto cuando lo probé, si conoces una aplicacion similar para windows o linux te lo agradeceria me dijeras en los comentarios.</p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.punksolid.com/ninite-easy-pc-setup-silent-unattended-install-multiple-programs-at-once/2011/&via=Punksolid&text=Ninite Easy PC Setup - Silent Unattended Install Multiple Programs At Once&related=José Palazuelos:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.punksolid.com/ninite-easy-pc-setup-silent-unattended-install-multiple-programs-at-once/2011/&via=Punksolid&text=Ninite Easy PC Setup - Silent Unattended Install Multiple Programs At Once&related=José Palazuelos:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.punksolid.com/ninite-easy-pc-setup-silent-unattended-install-multiple-programs-at-once/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Revenge of the Titans</title>
		<link>http://www.punksolid.com/revenge-of-the-titans/2011/</link>
		<comments>http://www.punksolid.com/revenge-of-the-titans/2011/#comments</comments>
		<pubDate>Sat, 22 Jan 2011 12:05:25 +0000</pubDate>
		<dc:creator>Punksolid</dc:creator>
				<category><![CDATA[Aplicaciones]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Videojuegos]]></category>
		<category><![CDATA[Humble Bundle]]></category>
		<category><![CDATA[Juegos]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.punksolid.com/?p=600</guid>
		<description><![CDATA[En diciembre de 2010 hubo algo que está tomando auge, salió a la venta el Humble Indie Bundle 2, un pack de juegos con una original forma de vender, todos los 5 juegos al precio que quieras, sin DRM, multiplataforma, indies, personalmente entre un amigo y yo lo compramos a 21 dolares, ya que él [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" title="Revenge of the titans" src="http://www.punksolid.com/blog/wordpress/wp-content/uploads/2011/01/revenge-general-2.gif" alt="" width="127" height="168" /></p>
<p>En diciembre de 2010 hubo algo que está tomando auge, salió a la venta el Humble Indie Bundle 2, un pack de juegos con una original forma de vender, todos los 5 juegos al precio que quieras, sin DRM, multiplataforma, indies, personalmente entre un amigo y yo lo compramos a 21 dolares, ya que él no tenia tarjeta de credito.</p>
<p>Entre el pack de juegos está un juego llamado Revenge of The Titans que consiste en defender la base de disitintos tipos de aliens, algó parecido a una de las modalidades modificadas de juegos del clasico Starcraft donde pones torretas al alcance para proteger.</p>
<p style="text-align: center;"><img class="aligncenter" title="Revenge of the Titans Gameplay" src="http://tap-repeatedly.com/wp-content/uploads/greggb-rott2.jpg" alt="" width="478" height="382" /></p>
<p>La calidad de los gráficos me pareció muy detallada pero no compleja, con toques retro, variedad de armas y enemigos, y sobre todo una dificultad muy buena. Aunque si pierdes puedes bajarle el nivel a las misiones por separado.</p>
<p><img src="http://static.puppygames.net/images/09/screenshots/revenge-of-the-titans-screen-2.jpg" alt="" /></p>
<p>Tiene modalidad campaña y survival, en la survival el mapa es generado automaticamente de manera muy inteligente, y la duración del modo campaña aceptable, me tomó aproximadamente 4 arduos dias de juego.</p>
<p>Sin duda alguna recomiendo este juego si eres jugador casual, cuesta 13 dolares en la pagina oficial y lo vale, eso o mas, o puedes esperar a que salga el proximo humble bundle a ver si lo ponen de nuevo, si no estás convencido y ocupas mas también puedes probar el beta.</p>
<p>Consejos/ Tips: Vende todas tus construcciones antes del final del juego, la manera mas rápida de hacerlo es dejando presionada la rueda del mouse y pasando el cursor encima de todas las construcciones y siempre que puedas compra upgrades, ya que solo puedes comprar un por misión.</p>
<p>P.D. Si ya lo jugaste, te agradecería me dijeras como se eliminan a los fantasmas. Si tampoco sabes puedes hacerle como yo, sacrificando una torreta de las mas baratas para destrucción mutua.</p>
<p><em>De los mejores juegos nativos para linux que he jugado.</em></p>
<p>Trailer<br />
<iframe title="YouTube video player" class="youtube-player" type="text/html" width="640" height="390" src="http://www.youtube.com/embed/05r_-Fp5Vfo?rel=0&amp;hd=1" frameborder="0" allowFullScreen></iframe><br />
Sitio Oficial | <a href="http://www.puppygames.net/revenge-of-the-titans/">Puppy Games - Revenge of the Titans</a></p>
<p>Beta para linux | <a href="http://www.puppygames.net/downloads/?game=revenge-of-the-titans">Puppy Games - Downloads, Award winning retro arcade game</a></p>
<p><a href="http://www.humblebundle.com/">The Humble Indie Bundle #2 (pay what you want for five awesome indie games)</a></p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.punksolid.com/revenge-of-the-titans/2011/&via=Punksolid&text=Revenge of the Titans&related=José Palazuelos:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.punksolid.com/revenge-of-the-titans/2011/&via=Punksolid&text=Revenge of the Titans&related=José Palazuelos:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.punksolid.com/revenge-of-the-titans/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hotot &#8211; Cliente Twitter</title>
		<link>http://www.punksolid.com/hotot-cliente-twitter/2011/</link>
		<comments>http://www.punksolid.com/hotot-cliente-twitter/2011/#comments</comments>
		<pubDate>Fri, 21 Jan 2011 09:20:36 +0000</pubDate>
		<dc:creator>Punksolid</dc:creator>
				<category><![CDATA[Aplicaciones]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Hotot]]></category>
		<category><![CDATA[programas]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.punksolid.com/?p=597</guid>
		<description><![CDATA[Gwibber el cliente predeterminado para Ubuntu me parece lento, con varios bugs, feo y gastón de memoria, así que usaba la web de twitter en lo que encontraba un cliente que me convenciera, probé varios multiplataforma empezando por los muchos que hay para adobe air, y aunque son bonitos y robustos, terminé descartando todos por [...]]]></description>
			<content:encoded><![CDATA[<p>Gwibber el cliente predeterminado para Ubuntu me parece lento, con varios bugs, feo y gastón de memoria, así que usaba la web de twitter en lo que encontraba un cliente que me convenciera, probé varios multiplataforma empezando por los muchos que hay para adobe air, y aunque son bonitos y robustos, terminé descartando todos por que gastan demasiados recursos, muchos solo queremos twittear no sacar estadisticas.</p>
<p>Así que entre los clientes nativos salió uno en python llamado Hotot que aunque sigue en beta tiene desarrollo intenso</p>
<p><img class="alignnone" title="Hotot - Cliente Twitter" src="http://img5.imagebanana.com/img/27q0t67k/Hototpunksolidtwitter_040.png" alt="Hotot" width="514" height="651" /></p>
<p>Ademas cuenta con soporte para plugins, hay pocos pero efectivos, como para ver las imagenes insertadas, geolocalizacion e incluso traductor.</p>
<p>En el tiempo que lo he llevado probando ronda entre los 40 y 100 megas de ram, y se refresca rapido. La interfaz es intuitiva, pulida, y muy fluida, tambien cuenta con shorcut (Alt+C) para traerlo en pantalla, aunque han aparecido varios bugs, ninguno ha sido de gravedad.</p>
<p>Aunque fue empezado para linux ya es multiplataforma con versiones nativas para cada sistema.</p>
<h4>Instalación, sin dar muchas vueltas</h4>
<blockquote>
<pre>$ sudo add-apt-repository ppa:hotot-team
$ sudo apt-get update
$ sudo apt-get install hotot</pre>
</blockquote>
<p>Creo que Hotot llegó para quedarse.</p>
<p>Enlace | <a href="http://code.google.com/p/hotot/">Hotot - Project Hosting on Google Code</a></p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.punksolid.com/hotot-cliente-twitter/2011/&via=Punksolid&text=Hotot - Cliente Twitter&related=José Palazuelos:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.punksolid.com/hotot-cliente-twitter/2011/&via=Punksolid&text=Hotot - Cliente Twitter&related=José Palazuelos:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.punksolid.com/hotot-cliente-twitter/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eliminar Entradas No Deseadas de el Menú de Mensajes de Ubuntu</title>
		<link>http://www.punksolid.com/eliminar-entradas-no-deseadas-de-el-menu-de-mensajes-de-ubuntu/2010/</link>
		<comments>http://www.punksolid.com/eliminar-entradas-no-deseadas-de-el-menu-de-mensajes-de-ubuntu/2010/#comments</comments>
		<pubDate>Thu, 02 Dec 2010 06:38:11 +0000</pubDate>
		<dc:creator>Punksolid</dc:creator>
				<category><![CDATA[Aplicaciones]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Computacion]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[Ubuntu 10.10]]></category>

		<guid isPermaLink="false">http://www.punksolid.com/?p=585</guid>
		<description><![CDATA[El menú de mensajes de ubuntu te da la posibilidad de accesar rapidamente al email, chat y otras aplicaciones sociales desde la barra de menús. Si quieres esconder algunas de las aplicaciones de ahí puedes eliminarlas. Pero si prefieres, Gmail a Evolution en ubuntu, puedes eliminar esa opcion de "Configurar Email" en el menu de [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="lytebox" href="http://cache.gawkerassets.com/assets/images/17/2010/12/screenshot.png"><img class="left image500" src="http://cache.gawkerassets.com/assets/images/17/2010/12/500x_screenshot.jpg" alt="Remove Unwanted Entries from Ubuntu's Messaging Menu" width="500" /></a></p>
<p>El menú de mensajes de ubuntu te da la posibilidad de accesar rapidamente al email, chat y otras aplicaciones sociales desde la barra de menús. Si quieres esconder algunas de las aplicaciones de ahí puedes eliminarlas.</p>
<p>Pero si prefieres, Gmail a Evolution en ubuntu, puedes eliminar esa opcion de "Configurar Email" en el menu de mensajes. Para eliminarla (o cualquier otra opcion en el menú), puedes crear una lista negra en las preferencias del indicador. Primero, crea la carpeta de lista negra corriendo el siguiente comando en la Terminal:</p>
<blockquote>
<pre><strong>mkdir -p ~/.config/indicators/messages/applications-blacklist/</strong>
</pre>
</blockquote>
<p>Para añadir aplicaciones a la lista negra, pon symlinks a las aplicaciones en esta carpeta. Los indicadores que puedes bloquear están visibles en /usr/share/indicators/messages/applications. Así que, para bloquear Evolution solo necesitas escribir:</p>
<blockquote><p>ln -s /usr/share/indicators/messages/applications/evolution ~/.config/indicators/messages/applications-blacklist/evolution</p></blockquote>
<p>Puedes repetir este comando para las otras aplicaciones que quieras esconder. Después, solo reinicia el panel de Gnome con <em>killall gnome-panel</em> para ver los cambios.</p>
<p>Alternativamente, si no quieres ver el menú completo puedes desinstalarlo todo desde el Centro de Software de Ubuntu removiendo la aplicacion</p>
<blockquote><p>indicator-messages</p></blockquote>
<h4>Créditos</h4>
<p>Este articulo fue traducido y modificado de Lifehacker (<a href="http://lifehacker.com/5703681/remove-unwanted-entries-from-ubuntus-messaging-menu">Remove Unwanted Entries from Ubuntu's Messaging Menu</a>) <a href="http://creativecommons.org/licenses/by-nc/3.0/">Creative Commons License</a></p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.punksolid.com/eliminar-entradas-no-deseadas-de-el-menu-de-mensajes-de-ubuntu/2010/&via=Punksolid&text=Eliminar Entradas No Deseadas de el Menú de Mensajes de Ubuntu&related=José Palazuelos:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.punksolid.com/eliminar-entradas-no-deseadas-de-el-menu-de-mensajes-de-ubuntu/2010/&via=Punksolid&text=Eliminar Entradas No Deseadas de el Menú de Mensajes de Ubuntu&related=José Palazuelos:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.punksolid.com/eliminar-entradas-no-deseadas-de-el-menu-de-mensajes-de-ubuntu/2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recuperar imágenes borradas con PhotoRec</title>
		<link>http://www.punksolid.com/recuperar-imagenes-borradas-con-photorec/2010/</link>
		<comments>http://www.punksolid.com/recuperar-imagenes-borradas-con-photorec/2010/#comments</comments>
		<pubDate>Sun, 07 Nov 2010 11:29:05 +0000</pubDate>
		<dc:creator>Punksolid</dc:creator>
				<category><![CDATA[Aplicaciones]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Seguridad Informatica]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.punksolid.com/?p=573</guid>
		<description><![CDATA[Si accidentalmente borraste las fotos de la memoria de tu cámara, aún hay esperanza, dentro del mundo de la informatica forense, hay varias aplicaciones para recuperar archivos, personalmente he usado EasyRecovery Pro en Windows, que me pareció muy bueno pero es software privativo. Y como windows ya pasó de moda les recomiendo PhotoRec un software libre [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter" title="PhotoRec" src="http://www.cgsecurity.org/photorec.png" alt="PhotoRec - Recuperación de imágenes." width="521" height="328" />Si accidentalmente borraste las fotos de la memoria de tu cámara, aún hay esperanza, dentro del mundo de la informatica forense, hay varias aplicaciones para recuperar archivos, personalmente he usado EasyRecovery Pro en Windows, que me pareció muy bueno pero es software privativo. Y como windows ya pasó de moda les recomiendo <strong>PhotoRec</strong> un software libre multiplataforma, sencillo y efectivo para recuperar imagenes.</p>
<p>Esta aplicación corre en modo consola, y se encuentra dentro del conjunto de paquetes <strong>testdisk</strong> que pueden instalar desde</p>
<blockquote><p>Sistema -&gt; Administración -&gt;Gestor de paquetes Synaptic</p></blockquote>
<h3>¿Que es exactamente PhotoRec?</h3>
<p>PhotoRec es un software de recuperación de archivos diseñado para recuperar archivos prdidos incluyendo video, documentos y archivos de discos duros, CD-ROM's e imagenes perdidas (por eso el nombre)  de memorias de camaras digitales. PhotoRec ignora el sistema de archivos y va una capa abajo, así que funcionará incluso si tu sistema de archivos ha sido seriamente dañado o reformateado.</p>
<p>PhotoRec es gratis - Es opensource y multiplataforma, y para mayor placer está distribuido bajo la licencia GNU. PhotoRec es un programa acompañante de TestDisk, una aplicacion para recuperar particiones perdidad de una variedad de sistemas de archivos y tambien para hacer discos no booteables, booteables de nuevo.</p>
<p>Para mayor seguridad, PhotoRec usa acceso de solo lectura para manejar el dispositivo o memoria flash de la que vas a recuperar datos.</p>
<p>Importante: Tan pronto como una imagen o archivo es accidentalmente borrado, o te das cuenta que perdiste algo, NO guardes mas imagenes, con eso previenes sobreescribir datos. Esto incluye que cuando vas a recuperar datos con PhotoRec, NO debes usar la partición con daños, para guardar los datos recuperados.</p>
<p>A la hora de usarlo es bastante sencillo, solo tienes que escribir en la terminal PhotoRec con permisos de super usuario y seguir la indicaciones del asistente, en caso de problemas también puedes seguir la documentacion</p>
<h4>Enlaces</h4>
<p><a href="http://www.cgsecurity.org/wiki/PhotoRec">PhotoRec</a> | Sitio oficial</p>
<p><a href="http://www.cgsecurity.org/wiki/PhotoRec_Paso_A_Paso">Paso a paso wiki -</a></p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.punksolid.com/recuperar-imagenes-borradas-con-photorec/2010/&via=Punksolid&text=Recuperar imágenes borradas con PhotoRec&related=José Palazuelos:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.punksolid.com/recuperar-imagenes-borradas-con-photorec/2010/&via=Punksolid&text=Recuperar imágenes borradas con PhotoRec&related=José Palazuelos:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.punksolid.com/recuperar-imagenes-borradas-con-photorec/2010/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Back in Time Linux Backup</title>
		<link>http://www.punksolid.com/back-in-time-linux-backup/2010/</link>
		<comments>http://www.punksolid.com/back-in-time-linux-backup/2010/#comments</comments>
		<pubDate>Sat, 09 Oct 2010 14:06:46 +0000</pubDate>
		<dc:creator>Punksolid</dc:creator>
				<category><![CDATA[Aplicaciones]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Back In Time]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[Gnome]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Ubuntu 10.04]]></category>

		<guid isPermaLink="false">http://www.punksolid.com/?p=555</guid>
		<description><![CDATA[Buscando la alternativa para linux mas aproximada a TimeMachine de Mac (que simplemente se ve fabuloso), me encontré con varias opciones, entre ellas, la que le copia el nombre, TimeVault que no pude instalar por tener plataforma de 64 bits y no haber compilación, y tampoco había mucho interés puesto que no tiene desarrollo activo desde hace [...]]]></description>
			<content:encoded><![CDATA[<p>Buscando la alternativa para linux mas aproximada a <a href="http://www.youtube.com/watch?v=1BOwL8MuE_Y">TimeMachine de Mac</a> (que simplemente se ve fabuloso), me encontré con varias opciones, entre ellas, la que le copia el nombre, <a href="http://www.launchpad.net/timevault">TimeVault</a> que no pude instalar por tener plataforma de 64 bits y no haber compilación, y tampoco había mucho interés puesto que no tiene desarrollo activo desde hace unos 3 años.</p>
<p>Otra alternativa que tambien instalé , que incluso se basan en TimeMachine, <a href="http://code.google.com/p/flyback">Flyback</a> que al igual que TimeVault parece estar olvidado, tambíen fué un fracaso, en el backup inicial, despues de pasar varios gigas se quedó trabado y dejó de copiar archivos, así duró mas de tres horas.</p>
<p>Por ultimo les presento  <a href="http://backintime.le-web.org/">Back In Time</a>, que hasta el momento es exitoso, introducción:</p>
<div class="wp-caption alignnone" style="width: 794px"><img title="Back In Time" src="http://a.yfrog.com/img253/5053/backintime005.png" alt="" width="784" height="566" /><p class="wp-caption-text"> </p></div>
<p>Back In Time es una herramienta de respaldos bastante sencilla, que dispone de version para Gnome y KDE. El respaldo es hecho tomando instantaneas de las carpetas especificadas.</p>
<p>Todo lo que necesitas hacer es:</p>
<ul>
<li>Configurar donde guardar las instantaneas</li>
<li>Configurar que carpetas quieres respaldar</li>
<li>Programar el respaldo automatico: Desabilitado, cada 5 minutos, cada 10 minutos, cada hora, dia, semana, o mes.</li>
</ul>
<p>Back in Time actua como una herramienta de respaldo como si fuera un usuario. Esto significa que tu puedes respaldar y recuperar solo tus carpetas a las que tienes permiso de escritura (de hecho puedes respaldar tambien a las que tienes permisos de solo lectura pero no puedes restaurarlo).</p>
<p>Si quieres correrlo como root necesitaras usar el comando sudo con gksu para Gnome y kdesudo para KDE.</p>
<p>Una nueva instantanea es creada solo si algo cambió desde la ultima instantanea.</p>
<p>Una instantanea contiene todas las carpetas seleccionadas (a excepcion de los patrones de excepcion). A manera de reducir el espacio en disco, usa hard-links (si es posible) entre las instantaneas para los archivos que no cambiaron. De esta manera un archivo de 10 Mb, sin cambiar durante 10 instantaneas, usará solo 10Mb de espacio en disco.</p>
<p>Cuando restauras un archivo 'A', si ya existe en el sistema de archivos lo renombrará a 'A.backup.fechaactual'</p>
<p>Si ya lo han probado, me gustaría leer su opinión en los comentarios.</p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.punksolid.com/back-in-time-linux-backup/2010/&via=Punksolid&text=Back in Time Linux Backup&related=José Palazuelos:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.punksolid.com/back-in-time-linux-backup/2010/&via=Punksolid&text=Back in Time Linux Backup&related=José Palazuelos:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.punksolid.com/back-in-time-linux-backup/2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Problema común de software para discapacitados</title>
		<link>http://www.punksolid.com/problema-comun-de-software-para-discapacitados/2010/</link>
		<comments>http://www.punksolid.com/problema-comun-de-software-para-discapacitados/2010/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 12:27:05 +0000</pubDate>
		<dc:creator>Punksolid</dc:creator>
				<category><![CDATA[Aplicaciones]]></category>
		<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Accesibilidad]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.punksolid.com/?p=518</guid>
		<description><![CDATA[Esta opinion era muy larga para escribirla en un twitt, así que aprovechemos este espacio. Uno de los temas que tengo una fascinacion personal es la accesibilidad para discapacitados, y hay un error que se comete comúnmente en todos aquellos softwares que sirven para escribir, y activan el teclado, para explicar mejor eso les detallo el siguiente ejemplo. NeuroKey [...]]]></description>
			<content:encoded><![CDATA[<p>Esta opinion era muy larga para escribirla en un twitt, así que aprovechemos este espacio. Uno de los temas que tengo una fascinacion personal es la accesibilidad para discapacitados, y hay un error que se comete comúnmente en todos aquellos softwares que sirven para escribir, y activan el teclado, para explicar mejor eso les detallo el siguiente ejemplo.</p>
<h3>NeuroKey</h3>
<p><img title="Neurokey" src="http://star-consultants.net/images/NeuroKeyMD.jpg" alt="Imagen completa de Neurokey" width="438" height="332" /></p>
<p>Para saber la diferencia de esta aplicacion debemos conocer las comunes, una de las que recuerdo es <a href="http://www.emotiv.com/apps/applications/130/727" target="_blank">NeuroKey</a>, un software que bien ideado puede ser una maravilla en conjunto con el hardware que tiene (<a href="http://www.emotiv.com/" target="_blank">Epoc Emotiv</a>),  el problema con este tipo de software, es que los encargados de usabilidad y accesibilidad olvidan por completo a los usuarios objetivos, discapacitados que no pueden mover mas que unas pestañas, o dedos o cualquier cosa.</p>
<p>Para analizar NeuroKey pueden ver la imagen superior, basicamente tiene 3 areas, la de configuracion donde se elige la forma en la que se van a activar los 5 triggers, la de cajas de texto donde se ve lo que se ha escrito y la del teclado que va iluminando de color amarillo tecla por tecla.</p>
<p>Si se piensa o se conoce a una persona discapacitada, lo que menos le importa son las opciones que tenga el software, lo primordial es que se pueda comunicar, y para ello solo necesitamos el abecedario, y el espacio, si nos basamos en neurokey, basicamente nos quedamos con los primeros dos renglones del teclado mas la barra espaciadora, aun así, todavia se puede mejorar, si imaginamos que queremos la tecla N y la seleccion en amarillo dura 1 segundo en cada posicion tardariamos 14 segundos en tenerla seleccionada, por lo tanto podriamos intentar acomodarlos en un numero de filas igual al numero de columnas algo como 5x5 variando la ultima fila con las letras restantes, este acomodo nos serviria para manejar el selector en forma de coordenadas, iluminando la fila que queremos y una vez seleccionada con un trigger, pasar a seleccionar las columnas, lo que reduciria a 6 segundos la seleccion de la letra N. Y sin necesidad de utilizar triggers para subir y bajar de renglon, usando solo 1 trigger, lo que le facilitaria al discapacitado.</p>
<h3>Un buen ejemplo</h3>
<p>Leyendo <a href="http://www.engadget.com" target="_blank">engadget</a> veo el siguiente video acerca de un software para controlar un sistema windows a través  la inhalación con la nariz, lo sorprendente de esto no es el sistema de activacion de comandos, si no el software en si, donde priorizan en el acceso a la escritura de una forma asombrosa.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/uw50ctI60w4&amp;hl=es_ES&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube.com/v/uw50ctI60w4&amp;hl=es_ES&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="505" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/4jylh97RY1I&amp;hl=es_ES&amp;fs=1?color1=0x3a3a3a&amp;color2=0x999999" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="505" src="http://www.youtube.com/v/4jylh97RY1I&amp;hl=es_ES&amp;fs=1?color1=0x3a3a3a&amp;color2=0x999999" allowscriptaccess="always" allowfullscreen="true"></embed></object><br />
Este software es algo que ya habia deseado e ideado hacer, no me importa que me hayan ganado estoy feliz de ver que lo han hecho, tiene todo lo que un software para escribir necesita, seleccion de letras por coordenadas con las letras basicas y texto predictivo como el de los telefonos celulares, con un solo trigger.</p>
<h4>¿Y ustedes creen que haya alguna manera de mejorarlo?</h4>
<h3>Enlaces</h3>
<h4><a href="http://www.engadget.com/2010/07/27/the-nose-knows-how-to-let-quadriplegics-move-and-speak-video/" target="_self">The nose knows... how to let quadriplegics move and speak (video)</a></h4>
<h4><a title="Permanent Link: Sniff-detector allows paralysed people to write messages, surf the net and drive a wheelchair" rel="bookmark" href="http://blogs.discovermagazine.com/notrocketscience/2010/07/26/sniff-detector-lets-paralysed-patients-to-write-messages-surf-the-net-and-drive-a-wheelchair/">Sniff-detector allows paralysed people to write messages, surf the net and drive a wheelchair</a></h4>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.punksolid.com/problema-comun-de-software-para-discapacitados/2010/&via=Punksolid&text=Problema común de software para discapacitados&related=José Palazuelos:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.punksolid.com/problema-comun-de-software-para-discapacitados/2010/&via=Punksolid&text=Problema común de software para discapacitados&related=José Palazuelos:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.punksolid.com/problema-comun-de-software-para-discapacitados/2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hacer Visible Desde Internet Mi Localhost En Linux Ubuntu</title>
		<link>http://www.punksolid.com/hacer-visible-desde-internet-mi-localhost-en-linux-ubuntu/2009/</link>
		<comments>http://www.punksolid.com/hacer-visible-desde-internet-mi-localhost-en-linux-ubuntu/2009/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 09:58:28 +0000</pubDate>
		<dc:creator>Punksolid</dc:creator>
				<category><![CDATA[Aplicaciones]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Infinitum]]></category>
		<category><![CDATA[redes]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.punksolid.com/?p=453</guid>
		<description><![CDATA[Escenario Ubuntu 9.04 Infinitum Router 2 wire Inadyn Dyndns Tutorial rápido Modo desmilitarizado Crear y configurar cuenta Dyndns Configurar programa cliente Tutorial a detalle Dyndns Suponiendo que ya tenemos el locahost jalando, ocupamos un servidor DNS, para eso hay un servicio gratuito de subdominios en www.dyndns.org, ahi creamos una cuenta y la confirmamos en el [...]]]></description>
			<content:encoded><![CDATA[<h2><a href="null"><img class="alignright" title="Dyndns" src="https://www.dyndns.com/images/site/tango/dyndns.gif" alt="" width="238" height="50" /></a>Escenario</h2>
<ul>
<li>Ubuntu 9.04</li>
<li>Infinitum Router 2 wire</li>
<li>Inadyn</li>
<li>Dyndns</li>
</ul>
<h2>Tutorial rápido</h2>
<ol>
<li>Modo desmilitarizado</li>
<li>Crear y configurar cuenta Dyndns</li>
<li>Configurar programa cliente</li>
</ol>
<p><a href="null"><img class="aligncenter" title="Dyndns" src="http://infracom-france.com/blog2/wp-content/uploads/2009/05/ddns.gif" alt="" width="532" height="300" /></a></p>
<ol></ol>
<h2>Tutorial a detalle</h2>
<h3>Dyndns</h3>
<p>Suponiendo que ya tenemos el locahost jalando, ocupamos un servidor DNS, para eso hay un servicio gratuito de subdominios en www.dyndns.org, ahi creamos una cuenta y la confirmamos en el correo electronico.</p>
<p>Nos vamos a la pagina y accesamos con nuestro usuario y contraseña, en la pantalla principal elegimos <em>"Add Host Services"</em> ahi tendremos un formulario donde elegiremos el nombre de nuestro host en mi caso <em>punksolid.ath.cx </em>clickeamos en <em>"Use auto detected IP address 189.186.17.219" </em> y luego <em>"Add To Cart" </em>-&gt; <em>"Next" -&gt; "Activate Services"</em></p>
<p>Desde ahí ya tenemos configurado nuestro dominio en Dyndns, todavia no podemos acceder a la direccion que hayamos elegido.</p>
<h3>Configuración del router</h3>
<p>Primero que nada, con megared no lo podrán hacer visible desde Internet, solo desde otros usuarios de megared, ya que no es posible configurar una computadora con el modo desmilitarizado o DMZ.</p>
<p>La otra opción es con infinitum, entrando a la configuración desde el navegador, para eso, en nuestro firefox u opera escribimos http://home/, y luego en "Ver la red domestica" -&gt; " Modificar la configuración del cortafuegos", esa ultima opción la elegimos sobre la computadora que desees hacer visible, por ultimo escribimos la contraseña en caso de que nos la pida y seleccionamos la opción de "Permitir todas las aplicaciones (modo DMZplus(Zona desmilitarizada))" y Aceptar.</p>
<h3>Configuración de la aplicación cliente</h3>
<p>Se supone que tenemos una ip dinámica y por eso ocupamos una aplicación que le esté diciendo al servidor dns que nuestra ip ha cambiado.</p>
<p>En los repositorios de Ubuntu hay varias aplicaciones ya listas para instalar, este ejemplo será con una aplicación de consola que se llama inadyn para eso escribimos en consola:</p>
<p style="padding-left: 30px;">sudo apt-get install inadyn</p>
<p>Después de instalado ya solo ocupamos un ultimo paso, configurar la aplicación para que se conecte a nuestra cuenta de dyndns, para eso tecleamos en la consola el siguiente formato:</p>
<p>inadyn --username <em>usuario</em> -p <em>contraseña</em> -a punksolid.ath.cx</p>
<p>Y listo. Ya debería de funcionar, y si no funciona solo hay que reconectarse a la red.</p>
<p>Alguna duda o sugerencia, siéntete libre de comentar</p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.punksolid.com/hacer-visible-desde-internet-mi-localhost-en-linux-ubuntu/2009/&via=Punksolid&text=Hacer Visible Desde Internet Mi Localhost En Linux Ubuntu&related=José Palazuelos:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.punksolid.com/hacer-visible-desde-internet-mi-localhost-en-linux-ubuntu/2009/&via=Punksolid&text=Hacer Visible Desde Internet Mi Localhost En Linux Ubuntu&related=José Palazuelos:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.punksolid.com/hacer-visible-desde-internet-mi-localhost-en-linux-ubuntu/2009/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

