<?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; General</title>
	<atom:link href="http://www.punksolid.com/category/general/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>De las Manifestaciones Méxicanas</title>
		<link>http://www.punksolid.com/de-las-manifestaciones-mexicanas/2011/</link>
		<comments>http://www.punksolid.com/de-las-manifestaciones-mexicanas/2011/#comments</comments>
		<pubDate>Thu, 18 Aug 2011 13:06:55 +0000</pubDate>
		<dc:creator>Punksolid</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Idealismo]]></category>
		<category><![CDATA[Mexico]]></category>
		<category><![CDATA[Narcotrafico]]></category>
		<category><![CDATA[Reflexion]]></category>
		<category><![CDATA[Sinaloa]]></category>
		<category><![CDATA[World Revolution]]></category>

		<guid isPermaLink="false">http://www.punksolid.com/?p=681</guid>
		<description><![CDATA[En México, nos han vendido que las manifestaciones son para atrasar a los demás, estorbos, un acto inútil, como mexicanos compramos la idea desde hace mucho, pocos se manifiestan. Lo curioso es que los inconformes son o somos muchos, ¿que pasa con eso que solo se quejan? ¿por que no dan el brinco a la [...]]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignright" style="width: 206px"><img title="Anonymous" src="http://www.it-networks.org/wp-content/uploads/2011/01/anonymous.jpg" alt="" width="196" height="147" /><p class="wp-caption-text">Anonymous</p></div>
<p>En México, nos han vendido que las manifestaciones son para atrasar a los demás, estorbos, un acto inútil, como mexicanos compramos la idea desde hace mucho, pocos se manifiestan. Lo curioso es que los inconformes son o somos muchos, ¿que pasa con eso que solo se quejan? ¿por que no dan el brinco a la manifestación? a ¿que le temen?,</p>
<h3>De las posibles causas de la apatía</h3>
<p>Creo que uno de los problemas es que esperamos a sentirnos identificados con <strong>todos</strong> los aspectos de cualquier movimiento, algo sin duda muy difícil ya que no hay dos mentes iguales, debemos encontrar el punto en común y potenciarlo, así como mantener al movimiento lo mas objetivo posible, cosa también difícil por que siempre habrá grupos que querrán adueñarse de los movimientos y hacerlos a su manera con todo y atribuciones, tal como pasó con el movimiento de Javier Sicilia, que empezó al menos recuerdo, como una exigencia a las autoridades a hacer su labor, y actualmente pareciera ser una petición para sacar al ejercito de las calles, o como está pasando en las manifestaciones por la educación chilena, <a href="http://diarioelobservador.cl/255-Intendente_estudiantes_estan_sometidos_a_dictadura_de_minorias_violentistas">que grupos radicales actúan con violencia </a>para perseguir el mismo fin que miles o millones de chilenos pacifistas desean, obviamente el morbo vende y los medios muestran a mas vándalos con bombas molotov, <a href="http://www.lanacion.cl/masivo-cacerolazo-por-educacion-en-todo-chile/noticias/2011-08-09/213024.html">que a estudiantes con cacerolas y batakas.</a></p>
<p>Pero el principal motivo es el <strong>miedo</strong>, esa razón que solo existe en las mentes de las personas, que ha sido cultivada por años por los medios y el boca a boca, y es que no la tenemos tan fácil como las manifestaciones pacificas de los españoles por que sabemos que aquí armas sobran, el problema es que la gente de bien no tiene, ni quiere usarlas. Además de que tampoco conocemos al enemigo, ni siquiera lo hemos definido, mientras unos dicen que el enemigo es el narcotráfico, otros dicen que son los políticos, y así con la pelotita saltando entre ambos, como sociedad estamos confundidos de a quien agradecer y a quien ignorar, aunque por practicidad terminamos agradeciendo  y temiendo a ambos.</p>
<h3>Del dicho al hecho</h3>
<p>Como mencionaba, millones de mexicanos están inconformes, violencia y pobreza es lo que mas se escucha, ¿que hace falta? no creo que la policía mexicana sea mas civica que la española, pero aquí la policía no ha golpeado a decenas de manifestantes, y es claramente por que no necesitan dispersar a nadie, la misma sociedad ha mantenido el lema de que "somos el país en el que no pasa nada", no creo que el problema sea del país, es de nosotros, por clavarnos ese tipo de "ideas" como si fuesen teorías científicas.<br />
Para romper la inercia que nos ha mantenido en nuestro confort durante tantos años necesitamos:</p>
<ul>
<li>Mostrar a la sociedad que manifestarse es nuestro derecho y oportunidad de cambiar lo que no nos gusta.</li>
<li>Hacer a las manifestaciones atractivas.</li>
<li>Infundir miedo.</li>
</ul>
<p>La población ignora que tiene el poder, por que pocas veces hemos hecho valer nuestros derechos a manifestarnos de manera masiva, sumando en lugar de fragmentando, que eso, ojalá podamos ver mas hacia el exterior para aprender de países como Egipto que logró la dimisión de Hosni Mubarak (ver video abajo), ganándose incluso la simpatía del ejercito (al fin y al cabo también son humanos), tengo esperanza de que mi localidad haya aprendido algo de las pasadas elecciones, que  por primera vez en la historia se eligió a un político de otro partido. En cambio, las manifestaciones tradicionales son para pedir, y ya no estamos para esas gentilezas, lo que tenemos que hacer es exigir, y hacerlo de manera creativa, las huelgas de hambre ya son aburridas, necesitamos algo nuevo, y masivo, que se manifiesten artistas y ciudadanos, no sindicatos victimizados, no a todos les interesa ir a un lugar a hacerse las víctimas, pero si a casi todos nos gustan las fiestas, sonidos y colores. Si el miedo es un método de control, usemoslo!, infundamos miedo a la población explicándole que pasaría si no hacen nada, o que está pasando ya por su omisión, aprovechemoslo a nuestro favor con información verídica y enfocada, solo si el miedo que infundamos es mayor que el miedo que los mantiene inertes se logrará, al final  el primero de los miedos desaparece, si no hacemos nada el segundo permanece.<br />
<iframe src="http://www.youtube.com/embed/ThvBJMzmSZI" frameborder="0" width="560" height="345"></iframe></p>
<h3>Esperanza</h3>
<p>Todo es relativo y el futuro es incierto, posiblemente la ciudadanía esté en un estatus de confort, con miedo y hambre, pero agusto, muchos han aprendido a vivir así por años, ese confort al que me refiero es similar al que tienen los estadounidenses, que olvidan las guerras que tienen solo por que no quieren perder los privilegios en los que han nacido y crecido, por acá sucede igual, hemos vivido en un confort otorgado por el narcotráfico, ha desaparecido de nuestra visión la prepotencia y corrupción, no queremos verlas por que no queremos perderlas. Por eso tal vez las cosas no cambien, hasta que nos demos cuenta que lo hemos perdido todo.<br />
<iframe src="http://www.youtube.com/embed/x2xuSHdjZ00" frameborder="0" width="560" height="345"></iframe></p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.punksolid.com/de-las-manifestaciones-mexicanas/2011/&via=Punksolid&text=De las Manifestaciones Méxicanas&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/de-las-manifestaciones-mexicanas/2011/&via=Punksolid&text=De las Manifestaciones Méxicanas&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/de-las-manifestaciones-mexicanas/2011/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Autocompletar con scriptaculous</title>
		<link>http://www.punksolid.com/autocompletar-con-scriptaculous/2011/</link>
		<comments>http://www.punksolid.com/autocompletar-con-scriptaculous/2011/#comments</comments>
		<pubDate>Tue, 16 Aug 2011 14:08:23 +0000</pubDate>
		<dc:creator>Punksolid</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Prototype]]></category>
		<category><![CDATA[Scriptaculous]]></category>

		<guid isPermaLink="false">http://www.punksolid.com/?p=671</guid>
		<description><![CDATA[Lo que vamos a hacer es un cuadro search box como el google suggest, que a diferencia de este, no haremos una petición ajax al servidor ya que tendremos los valores precargados en una variable javascript, útil cuando los registros son pocos y estáticos. Reconozco que a estas alturas medio mundo usa jquery, pero como [...]]]></description>
			<content:encoded><![CDATA[<p>Lo que vamos a hacer es un cuadro search box como el google suggest, que a diferencia de este, no haremos una petición ajax al servidor ya que tendremos los valores precargados en una variable javascript, útil cuando los registros son pocos y estáticos.<br />
Reconozco que a estas alturas medio mundo usa jquery, pero como persona de escaso conocimiento en el área, para el propósito me sirvió prototype y scriptaculous.</p>
<p>Lo primero que tenemos que hacer es <a href="http://script.aculo.us/downloads" target="_blank">descargar scriptaculous</a>, y extraemos todos los js dentro de una carpeta javascripts.</p>
<p>El siguiente paso es crear el archivo css.css para darle un diseño bonito al recuadro de opciones que aparecerán conforme vayamos escribiendo, el código de css.css es</p>
<p>&nbsp;</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">div<span style="color: #6666ff;">.autocomplete</span> <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #933;">0px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #933;">0px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">250px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#fff</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#888</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span><span style="color: #993333;">absolute</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
div<span style="color: #6666ff;">.autocomplete</span> ul <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #933;">0px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #933;">0px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">list-style-type</span><span style="color: #00AA00;">:</span><span style="color: #993333;">none</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
div<span style="color: #6666ff;">.autocomplete</span> ul li<span style="color: #6666ff;">.selected</span> <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#ffb</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
div<span style="color: #6666ff;">.autocomplete</span> ul li <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #933;">2px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">32px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span><span style="color: #993333;">block</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">list-style-type</span><span style="color: #00AA00;">:</span><span style="color: #993333;">none</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">cursor</span><span style="color: #00AA00;">:</span><span style="color: #993333;">pointer</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>El tercer paso es crear el archivo autocompletar.html donde incluiremos los javascripts de prototype y scriptaculous, automáticamente se incluirán todas las dependencias.</p>
<p>&nbsp;</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">&lt;script type=&quot;text/javascript&quot; src=&quot;javascripts/prototype.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;javascripts/scriptaculous.js?load=effects,controls&quot;&gt;
&lt;/script&gt;
<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
<span style="color: #003366; font-weight: bold;">var</span> bandsList <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span>
  <span style="color: #3366CC;">'ABBA'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'AC/DC'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Aerosmith'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'America'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Bay City Rollers'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Black Sabbath'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Boston'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'David Bowie'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Can'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'The Carpenters'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Crass'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Deep Purple'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'The Doobie Brothers'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Eagles'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Fleetwood Mac'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Haciendo Punto en Otro Son'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Heart'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Iggy Pop and the Stooges'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Journey'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Judas Priest'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'KC and the Sunshine Band'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Kiss'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Kraftwerk'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Led Zeppelin'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Lindisfarne (band)'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Lipps, Inc'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Lynyrd Skynyrd'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Pink Floyd'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Queen'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Ramones'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'REO Speedwagon'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Rhythm Heritage'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Rush'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Sex Pistols'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Slade'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Steely Dan'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Stillwater'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Styx'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Supertramp'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Sweet'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Three Dog Night'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'The Village People'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Wings (fronted by former Beatle Paul McCartney)'</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">'Yes'</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
   window.<span style="color: #000066;">onload</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #003366; font-weight: bold;">new</span> Autocompleter.<span style="color: #660066;">Local</span><span style="color: #009900;">&#40;</span>
        <span style="color: #3366CC;">'bands_from_the_70s'</span><span style="color: #339933;">,</span>
        <span style="color: #3366CC;">'band_list'</span><span style="color: #339933;">,</span>
        bandsList<span style="color: #339933;">,</span>
        <span style="color: #009900;">&#123;</span>ignoreCase<span style="color: #339933;">:</span><span style="color: #003366; font-weight: bold;">false</span><span style="color: #009900;">&#125;</span>
      <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span>
&lt;body&gt;
&lt;p&gt;
  &lt;label for=&quot;bands_from&quot;&gt;Your favorite rock  band from the 70's:&lt;/label&gt;
  &lt;br /&gt;
  &lt;input id=&quot;bands_from_the_70s&quot; autocomplete=&quot;off&quot; size=&quot;40&quot; type=&quot;text&quot; value=&quot;&quot; /&gt;
&lt;/p&gt;
&nbsp;
&lt;div class=&quot;autocomplete&quot; id=&quot;band_list&quot; style=&quot;display:none&quot;&gt;&lt;/div&gt;</pre></div></div>

<p>&nbsp;</p>
<p>Y listo ya con eso debemos tener un textbox con sugerencias.</p>
<p><strong>Enlaces</strong></p>
<p><a href="http://madrobby.github.com/scriptaculous/autocompleter-local/" target="_blank">Autocompleter.Local</a> para ver los parámetros aceptados.</p>
<p><a href="http://jonisalonen.com/2011/crazy-fast-ajax-search-suggest-in-cakephp-using-browser-cache/" target="_blank">Ajax search suggest with cakephp</a></p>
<p><a href="http://www.tutorialspoint.com/cgi-bin/practice.cgi?file=scriptaculous_51" target="_blank">Ejemplo simple autocomplete.local</a></p>
<h2></h2>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.punksolid.com/autocompletar-con-scriptaculous/2011/&via=Punksolid&text=Autocompletar con scriptaculous&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/autocompletar-con-scriptaculous/2011/&via=Punksolid&text=Autocompletar con scriptaculous&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/autocompletar-con-scriptaculous/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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>Invitar a todos en facebook</title>
		<link>http://www.punksolid.com/invitar-a-todos-en-facebook/2011/</link>
		<comments>http://www.punksolid.com/invitar-a-todos-en-facebook/2011/#comments</comments>
		<pubDate>Sun, 31 Jul 2011 01:10:30 +0000</pubDate>
		<dc:creator>Punksolid</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[community manager]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[greasemonkey]]></category>
		<category><![CDATA[social media]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[userscripts]]></category>

		<guid isPermaLink="false">http://www.punksolid.com/?p=648</guid>
		<description><![CDATA[Facebook constantemente cambia su arquitectura por innovación o para no poder enviar invitaciones masivas que podrían funcionar como spam, por eso aunque ya publiqué anteriormente como mandar invitaciones masivas, ya es obsoleto, y aquí explico una nueva forma de hacerlo para ello necesitamos 3 pasos: Instalar firefox, opcionalmente Google Chrome Instalar greasemonkey despues de reiniciar [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Facebook</strong> constantemente cambia su arquitectura por innovación o para no poder enviar invitaciones masivas que podrían funcionar como spam, por eso aunque ya publiqué anteriormente como <a title="Invitar a todos tus amigos de Facebook a un evento." href="http://www.punksolid.com/invitar-a-todos-tus-amigos-de-facebook-a-un-evento/2011/" target="_blank">mandar invitaciones masivas</a>, ya es obsoleto, y aquí explico una nueva forma de hacerlo para ello necesitamos 3 pasos:</p>
<blockquote>
<ol>
<li>Instalar firefox, opcionalmente Google Chrome</li>
<li>Instalar <a title="Greasemonkey para firefox" href="https://addons.mozilla.org/es-es/firefox/addon/greasemonkey/">greasemonkey</a> despues de reiniciar firefox.</li>
<li>Instalar el script que se instala sobre greasemonkey, eso se hace entrando a la pagina del script <a href="http://userscripts.org/scripts/show/89653">Facebook: InviteThemAll</a> y le damos en el botón install y seguimos las instrucciones.</li>
</ol>
</blockquote>
<p>&nbsp;</p>
<p><img class="alignleft size-full wp-image-653" title="Selección_018" src="http://www.punksolid.com/blog/wordpress/wp-content/uploads/2011/07/Selecci%C3%B3n_018.png" alt="" width="231" height="228" /> Ya para finalizar nos vamos a nuestra pagina de nuestro evento, presionamos seleccionar invitados del lado derecho</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Y para finalizar damos clic en el botón select all, esperamos unos segundos o minutos dependiendo de la computadora y el numero de amigos y hacemos clic en <strong>enviar</strong>.</p>
<p><img class="aligncenter size-full wp-image-652" title="Selección_016" src="http://www.punksolid.com/blog/wordpress/wp-content/uploads/2011/07/Selecci%C3%B3n_016.png" alt="" width="571" height="351" /></p>
<h3>Fuentes</h3>
<p><a href="https://addons.mozilla.org/es-es/firefox/addon/greasemonkey/" target="_blank">Extensión Greasemonkey para Firefox </a></p>
<p>Script para Greasemonkey | <a href="http://userscripts.org/scripts/show/89653" target="_blank">Facebook invite them all</a></p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.punksolid.com/invitar-a-todos-en-facebook/2011/&via=Punksolid&text=Invitar a todos en facebook&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/invitar-a-todos-en-facebook/2011/&via=Punksolid&text=Invitar a todos en facebook&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/invitar-a-todos-en-facebook/2011/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Barcamp Culiacán 2011</title>
		<link>http://www.punksolid.com/barcamp-culiacan-2011/2011/</link>
		<comments>http://www.punksolid.com/barcamp-culiacan-2011/2011/#comments</comments>
		<pubDate>Wed, 22 Jun 2011 06:52:11 +0000</pubDate>
		<dc:creator>Punksolid</dc:creator>
				<category><![CDATA[Exposiciones]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[BarcampCLN]]></category>
		<category><![CDATA[culiacan]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Mexico]]></category>
		<category><![CDATA[Sinaloa]]></category>
		<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.punksolid.com/?p=639</guid>
		<description><![CDATA[&#160; Sinaloa es un estado que en los últimos años ha estado apostando por el desarrollo tecnológico, como en muchos otros lugares, hay el talento suficiente para desarrollar y aplicar tecnología. También hay empresas grandes en la entidad, como Coppel, Homex, Neoris entre otras que cuentan con grandes áreas de ingenieros en sistemas y afines. [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" title="Logo del Barcamp Culiacán" src="http://barcamp.org/f/logoBCC1.png" alt="Bonito logo del Barcamp Culiacán" width="330" height="100" /></p>
<p>&nbsp;</p>
<p>Sinaloa es un estado que en los últimos años ha estado apostando por el desarrollo tecnológico, como en muchos otros lugares, hay el talento suficiente para desarrollar y aplicar tecnología. También hay empresas grandes en la entidad, como Coppel, Homex, Neoris entre otras que cuentan con grandes áreas de ingenieros en sistemas y afines. Así mismo hay muchos estudiantes deseosos de aprender, autodidactas en su estado puro.</p>
<p>Todo eso es genial, y si podemos potenciarlo de alguna manera, puede ser algo que cambié el estado, actualmente creo que cada area está desconectada de otra, por ejemplo los jovenes aprendices no encuentran buenas referencias, las empresas no encuentran talentos, y los talentos no encuentran socios. Es por eso que creo que un evento como un Barcamp puede potenciar el desarrollo de todos.</p>
<p>Por eso varios organizadores hemos planeado #<strong>BarcampCLN</strong> que es el primer Barcamp que se llevará a cabo en la ciudad. Un barcamp tiene varias modalidades, entre ellos la forma de desconferencias que será la que utilizaremos en la primera edición. Una desconferencia es como una conferencia informal dada por los mismos asistentes, en un Barcamp no hay gurúes, solo participantes. Al inicio del ida habrá un pintarrón con los horarios para disponibles para dar las charlas, los asistentes escribirán su nombre para apartar el horario. No es necesario llevar diapositivas, pero contaremos con proyector si alguien desea utilizarlo.</p>
<p>Así que como apasionado de la tecnología, me complace invitarlos para compartir ideas, trucos, tips, o solo para hechar la platicada. Si se puede se me antoja dar una charla de desarrollo de aplicaciones nativas para Ubuntu, ¿'que tal?. =)</p>
<p>&nbsp;</p>
<p><img class="aligncenter" title="Poster #BarcampCLN Culiacán" src="http://s3.amazonaws.com/twitpic/photos/full/321281902.jpg?AWSAccessKeyId=AKIAJF3XCCKACR3QDMOA&amp;Expires=1308725336&amp;Signature=4gKDidd70hejwSh8%2Bi2OGQwHoJM%3D" alt="Poster #BarcampCLN Culiacán" width="518" height="800" /></p>
<p>P.D. Si planeas asistir y tienes twitter, ayudanos haciendo promocion en<a href="http://www.shoutatweet.com/share/agtzaG91dGF0d2VldHINCxIFVHdlZXQYg5cIDA" target="_blank"> shoutatweet</a>, si no tienes twitter, ayudanos pasando la voz, este evento es de todos, y cualquier promoción es necesaria.</p>
<p>P.D.2 El hashtag para conversar en twitter es #BarcampCLN.</p>
<h4>Enlaces</h4>
<p>Pagina principal de Barcamp Culiacan | <a href="http://www.barcampculiacan.com">http://www.barcampculiacan.com</a></p>
<p><a href="http://www.facebook.com/BarCampCln?ref=ts">Pagina oficial en facebook</a></p>
<p>Twitter | <a href="http://www.twitter.com/barcampcln">@BarcampCLN</a></p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.punksolid.com/barcamp-culiacan-2011/2011/&via=Punksolid&text=Barcamp Culiacán 2011&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/barcamp-culiacan-2011/2011/&via=Punksolid&text=Barcamp Culiacán 2011&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/barcamp-culiacan-2011/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Problema para bootear USB de Ubuntu 11.04 &#8216;Error setting up gfxboot&#8217;</title>
		<link>http://www.punksolid.com/problema-para-bootear-usb-de-ubuntu-11-04-error-setting-up-gfxboot/2011/</link>
		<comments>http://www.punksolid.com/problema-para-bootear-usb-de-ubuntu-11-04-error-setting-up-gfxboot/2011/#comments</comments>
		<pubDate>Sun, 08 May 2011 01:11:16 +0000</pubDate>
		<dc:creator>Punksolid</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Boot]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[Ubuntu 11.04]]></category>

		<guid isPermaLink="false">http://www.punksolid.com/?p=632</guid>
		<description><![CDATA[Al querer inicializar de un USB de Ubuntu 11.04 en algunas computadoras, principalmente netbooks toshiba, en mi caso la NB255 aparece el siguiente error: graphics initialization failed Error setting up gfxboot boot: Para continuar con la instalación basta con solo escribir 'help' y esperar unos segundos y todo continuar normalmente, es un bug bastante bobo [...]]]></description>
			<content:encoded><![CDATA[<p>Al querer inicializar de un USB de Ubuntu 11.04 en algunas computadoras, principalmente netbooks toshiba, en mi caso la NB255 aparece el siguiente error:</p>
<blockquote>
<h3>graphics initialization failed<br />
Error setting up gfxboot<br />
boot:</h3>
</blockquote>
<p>Para continuar con la instalación basta con solo escribir 'help' y esperar unos segundos y todo continuar normalmente, es un bug bastante bobo y sencillo de pasar.</p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.punksolid.com/problema-para-bootear-usb-de-ubuntu-11-04-error-setting-up-gfxboot/2011/&via=Punksolid&text=Problema para bootear USB de Ubuntu 11.04 'Error setting up gfxboot'&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-para-bootear-usb-de-ubuntu-11-04-error-setting-up-gfxboot/2011/&via=Punksolid&text=Problema para bootear USB de Ubuntu 11.04 'Error setting up gfxboot'&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-para-bootear-usb-de-ubuntu-11-04-error-setting-up-gfxboot/2011/feed/</wfw:commentRss>
		<slash:comments>2</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>Como Identificar un Disco Duro Dañado</title>
		<link>http://www.punksolid.com/como-identificar-un-disco-duro-danado/2011/</link>
		<comments>http://www.punksolid.com/como-identificar-un-disco-duro-danado/2011/#comments</comments>
		<pubDate>Wed, 09 Feb 2011 10:55:04 +0000</pubDate>
		<dc:creator>Punksolid</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Discos duros]]></category>
		<category><![CDATA[Recuperación de datos]]></category>
		<category><![CDATA[Recursos]]></category>
		<category><![CDATA[Seguridad Informatica]]></category>

		<guid isPermaLink="false">http://www.punksolid.com/?p=615</guid>
		<description><![CDATA[Hace algunos años escribí acerca de Como Recuperar Datos de Un Disco Duro Dañado que es uno de los que mas visitas ha tenido, debido al interés que existe en cuanto a ello, pongo aquí un recurso que considero importante, ya que el primer paso es identificar correctamente un fallo en el disco duro, uno de esos metodos [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/robfon/2174992215/" title="Hard disk dissection por Roberto F., en Flickr"><img src="http://farm3.static.flickr.com/2231/2174992215_747ea3ddd3.jpg" width="500" height="333" alt="Hard disk dissection" /></a></p>
<p>Hace algunos años escribí acerca de <a href="http://www.punksolid.com/como-recuperar-datos-de-un-disco-duro-danado/2008/">Como Recuperar Datos de Un Disco Duro Dañado</a> que es uno de los que mas visitas ha tenido, debido al interés que existe en cuanto a ello, pongo aquí un recurso que considero importante, ya que el primer paso es identificar correctamente un fallo en el disco duro, uno de esos metodos es mediante el sonido, es tan singular que cada disco duro tiene sonidos particulares que la empresa de recuperacion de datos <a href="http://datacent.com/">Datacent</a> a recopilado mediante su pagina web.</p>
<blockquote>
<h3><a href="http://datacent.com/hard_drive_sounds.php">Failing hard drive sounds - Datacent.com - Datacent</a></h3>
</blockquote>
<p>Via <a href="http://lifehacker.com/#!5753859/learn-the-sounds-of-a-failing-hard-drive-to-avoid-lost-data">Learn the Sounds of a Failing Hard Drive to Avoid Lost Data</a> Lifehacker</p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.punksolid.com/como-identificar-un-disco-duro-danado/2011/&via=Punksolid&text=Como Identificar un Disco Duro Dañado&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/como-identificar-un-disco-duro-danado/2011/&via=Punksolid&text=Como Identificar un Disco Duro Dañado&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/como-identificar-un-disco-duro-danado/2011/feed/</wfw:commentRss>
		<slash:comments>1</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>
	</channel>
</rss>

