tag:blogger.com,1999:blog-91247402024-03-27T11:19:40.395+01:00un poco de arsuceno...<br>Historias, anécdotas, comentarios y demás escritos de alguien que sin saber muy bien quién fue ayer se pregunta quien será mañana...arsucenohttp://www.blogger.com/profile/03910517809577819985noreply@blogger.comBlogger69125tag:blogger.com,1999:blog-9124740.post-17378135548937230212024-03-27T01:45:00.007+01:002024-03-27T11:19:07.931+01:00Madurar<p><i> ¿Cómo podías ser más valiente con 25 que con 38? ¿qué has hecho todo este tiempo? Y lo más importante, ¿cuándo piensas aprender a compartir tus emociones?</i></p><p>He vuelto. Quizás debería volver más a menudo. Es curioso <i>que haya sido un santo</i> el que me ha vuelto a traer a ti. O una santa, no sabría decirlo. Quizás un día vuelva a leer esto y no recuerde nada de ese santo. Y espero poder leer esto un día y haber olvidado lo mucho que necesitaba la <i>calma. </i></p><p>Porque el primer paso para conseguir (la calma), es olvidar<i>la</i>.</p><p>Porque<i> </i>ya va siendo hora de aprender que la vida es un juego... de una sola vida.</p><p><br /></p><p><br /></p>arsucenohttp://www.blogger.com/profile/03910517809577819985noreply@blogger.com0tag:blogger.com,1999:blog-9124740.post-74185145509911337112016-08-14T04:37:00.004+02:002016-08-14T04:38:16.571+02:00Loguear consultas de DoctrineTan sencillo como:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;"><br /></span>
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">$this->em->getConnection()</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;"> ->getConfiguration()</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;"> ->setSQLLogger(new \Doctrine\DBAL\Logging\EchoSQLLogger());</span><br />
<br />
<br />
<div>
<br /></div>
arsucenohttp://www.blogger.com/profile/03910517809577819985noreply@blogger.com0tag:blogger.com,1999:blog-9124740.post-15893071137888493092013-10-23T14:45:00.001+02:002013-10-23T14:45:40.689+02:00Configurar git para usar https:// en vez de git://Muy útil para cuando estamos detrás de un proxy o firewall:<br />
<br />
<pre style="background-color: #eeeeee; border: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 18px; margin-bottom: 10px; max-height: 600px; overflow: auto; padding: 5px; vertical-align: baseline; width: auto; word-wrap: normal;"><code style="border: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin: 0px; padding: 0px; vertical-align: baseline;">git config --global url."https://".insteadOf git://</code></pre>
<br />
Visto en: <a href="http://stackoverflow.com/questions/16298986/unable-to-connect-to-github-com-for-cloning">http://stackoverflow.com/questions/16298986/unable-to-connect-to-github-com-for-cloning</a>arsucenohttp://www.blogger.com/profile/03910517809577819985noreply@blogger.com0tag:blogger.com,1999:blog-9124740.post-32123367854562796982013-02-11T12:36:00.000+01:002013-02-25T01:20:42.494+01:00Symfony: Limitaciones de tipo de campo entity y prefetch de las entidades asociadasCualquiera que haya trabajado con Symfony y se haya visto en la necesidad de añadir un campo en un formulario que haga referencia a una entidad se habrá visto en la situación de que la única opción posible es usar el tipo 'entity'. Este tipo tienes dos grandes problemas:<br />
<ul>
<li>Solo permite mostrar el campo mediante checkboxes, radiobuttons o selects, donde todas las opciones posibles se muestran para que el usuario escoja alguna en concreto. Esto dificulta mucho la interacción en casos como el de recuperar una entidad vía AJAX y vincularla al formulario.</li>
<li>La eficiencia de lo anterior es nula, porque obliga a recuperar todos los valores posibles de la entidad a la hora de mostrar el campo. Imagina que necesitas un campo usuario y tienes más de 5000 en tu base de datos. Sería inviable usar el tipo entity.</li>
</ul>
<div>
Este es un tema que lleva dando vueltas por los repositorios de Symfony desde hace 2 años. Una solución es la propuesta por el usuario Gregwar en este PR <a href="https://github.com/symfony/symfony/pull/1951/">https://github.com/symfony/symfony/pull/1951/</a>, que añade el tipo 'entity_id'. Del ejemplo de la misma página:</div>
<div>
<pre style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(204, 204, 204); color: #333333; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 13.333333969116211px; line-height: 19px; margin-bottom: 15px; margin-top: 15px; overflow: auto; padding: 6px 10px;"><span class="nx" style="border: 0px; margin: 0px; padding: 0px;">$builder</span><span class="o" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;">-></span><span class="nx" style="border: 0px; margin: 0px; padding: 0px;">add</span><span class="p" style="border: 0px; margin: 0px; padding: 0px;">(</span><span class="s1" style="border: 0px; color: #dd1144; margin: 0px; padding: 0px;">'city'</span><span class="p" style="border: 0px; margin: 0px; padding: 0px;">,</span> <span class="s1" style="border: 0px; color: #dd1144; margin: 0px; padding: 0px;">'entity_id'</span><span class="p" style="border: 0px; margin: 0px; padding: 0px;">,</span> <span class="nx" style="border: 0px; margin: 0px; padding: 0px;">array</span><span class="p" style="border: 0px; margin: 0px; padding: 0px;">(</span>
<span class="s1" style="border: 0px; color: #dd1144; margin: 0px; padding: 0px;">'query_builder'</span> <span class="o" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;">=></span> <span class="kd" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;">function</span><span class="p" style="border: 0px; margin: 0px; padding: 0px;">(</span><span class="nx" style="border: 0px; margin: 0px; padding: 0px;">$repository</span><span class="p" style="border: 0px; margin: 0px; padding: 0px;">,</span> <span class="nx" style="border: 0px; margin: 0px; padding: 0px;">$id</span><span class="p" style="border: 0px; margin: 0px; padding: 0px;">)</span> <span class="p" style="border: 0px; margin: 0px; padding: 0px;">{</span>
<span class="k" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="nx" style="border: 0px; margin: 0px; padding: 0px;">$repository</span><span class="o" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;">-></span><span class="nx" style="border: 0px; margin: 0px; padding: 0px;">createQueryBuilder</span><span class="p" style="border: 0px; margin: 0px; padding: 0px;">(</span><span class="s1" style="border: 0px; color: #dd1144; margin: 0px; padding: 0px;">'c'</span><span class="p" style="border: 0px; margin: 0px; padding: 0px;">)</span>
<span class="o" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;">-></span><span class="nx" style="border: 0px; margin: 0px; padding: 0px;">where</span><span class="p" style="border: 0px; margin: 0px; padding: 0px;">(</span><span class="s1" style="border: 0px; color: #dd1144; margin: 0px; padding: 0px;">'c.id = :id AND c.available = 1'</span><span class="p" style="border: 0px; margin: 0px; padding: 0px;">)</span>
<span class="o" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;">-></span><span class="nx" style="border: 0px; margin: 0px; padding: 0px;">setParameter</span><span class="p" style="border: 0px; margin: 0px; padding: 0px;">(</span><span class="s1" style="border: 0px; color: #dd1144; margin: 0px; padding: 0px;">'id'</span><span class="p" style="border: 0px; margin: 0px; padding: 0px;">,</span> <span class="nx" style="border: 0px; margin: 0px; padding: 0px;">$id</span><span class="p" style="border: 0px; margin: 0px; padding: 0px;">);</span>
<span class="p" style="border: 0px; margin: 0px; padding: 0px;">},</span>
<span class="s1" style="border: 0px; color: #dd1144; margin: 0px; padding: 0px;">'class'</span> <span class="o" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;">=></span> <span class="s1" style="border: 0px; color: #dd1144; margin: 0px; padding: 0px;">'Gregwar\TestBundle\Entity\City'</span><span class="p" style="border: 0px; margin: 0px; padding: 0px;">,</span>
<span class="s1" style="border: 0px; color: #dd1144; margin: 0px; padding: 0px;">'required'</span> <span class="o" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;">=></span> <span class="kc" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;">false</span><span class="p" style="border: 0px; margin: 0px; padding: 0px;">,</span>
<span class="s1" style="border: 0px; color: #dd1144; margin: 0px; padding: 0px;">'hidden'</span> <span class="o" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;">=></span> <span class="kc" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;">true</span>
<span class="p" style="border: 0px; margin: 0px; padding: 0px;">));</span> </pre>
</div>
<div>
Con este tipo es posible tener un campo de texto o un campo oculto en el que poder insertar automáticamente el ID de una entidad, olvidándonos de selects, radiobuttons o checkboxes, y sin hacer prefetchs de las entidades. Yo llevo usándolo desde hace 8 meses y me ha resuelto bastantes problemas.</div>
<div>
<br /></div>
<div>
Aunque hay bastantes solicitudes para hacer oficial este PR, parece que finalmente la solución oficial va a ser la de añadir un atributo widget al tipo entity, como se detalla aquí <a href="https://github.com/symfony/symfony/issues/6602">https://github.com/symfony/symfony/issues/6602</a> :<br />
<br />
<span style="background-color: #fbfbfb; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 13.333333969116211px; line-height: 22.22222328186035px;">I think that we should add two new options </span><code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); color: #333333; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; line-height: 22.22222328186035px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">widget</code><span style="background-color: #fbfbfb; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 13.333333969116211px; line-height: 22.22222328186035px;"> </span><span style="background-color: #fbfbfb; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 13.333333969116211px; line-height: 22.22222328186035px;">and</span><span style="background-color: #fbfbfb; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 13.333333969116211px; line-height: 22.22222328186035px;"> </span><code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); color: #333333; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; line-height: 22.22222328186035px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">delimiter</code><span style="background-color: #fbfbfb; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 13.333333969116211px; line-height: 22.22222328186035px;"> </span><span style="background-color: #fbfbfb; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 13.333333969116211px; line-height: 22.22222328186035px;">to ChoiceType.</span><br />
<ul style="background-color: #fbfbfb; border: 0px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 13.333333969116211px; line-height: 22.22222328186035px; margin: 15px 0px; padding: 0px 0px 0px 30px;">
<li style="border: 0px; margin: 0px; padding: 0px;"><code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">widget</code> can be one of the values <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">select</code>, <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">checkbox</code>, <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">radio</code> and <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">text</code></li>
<li style="border: 0px; margin: 0px; padding: 0px;"><code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">delimiter</code> can be any single character</li>
</ul>
</div>
<div>
<div style="background-color: #fbfbfb; border: 0px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 13.333333969116211px; line-height: 22.22222328186035px; margin-bottom: 15px; margin-top: 15px; padding: 0px;">
Behavior:</div>
<ul style="background-color: #fbfbfb; border: 0px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 13.333333969116211px; line-height: 22.22222328186035px; margin-bottom: 0px !important; margin-left: 0px; margin-right: 0px; margin-top: 15px; padding: 0px 0px 0px 30px;">
<li style="border: 0px; margin: 0px; padding: 0px;"><code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">widget = 'select'</code>: This is equivalent to <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">expanded = false</code> right now.</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">widget = 'checkbox'</code>: <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">multiple</code> must not be set to false. Otherwise equivalent to <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">expanded = true</code>.</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">widget = 'radio'</code>: <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">multiple</code> must not be set to true. Otherwise equivalent to <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">expanded = true</code>.</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">widget = 'text'</code>: A text input is shown.<ul style="border: 0px; margin: 0px; padding: 0px 0px 0px 30px;">
<li style="border: 0px; margin: 0px; padding: 0px;">if <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">multiple</code> is false, the input must equal one of the predefined choices.</li>
<li style="border: 0px; margin: 0px; padding: 0px;">if <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">multiple</code> is true, the input is split by the character defined in <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">delimiter</code> (a comma by default), then each value is trimmed (unless <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">trim</code> is false). Each resulting input must equal one of the predefined choices.</li>
</ul>
</li>
</ul>
</div>
<div>
<br /></div>
<div>
Solución bastante más genérica y limpia, y que incluye el tipo de widget text, que combinado con el atributo multiple soluciona el problema de poder referenciar entidades "manualmente". Lo que no aclara esta solución es si seguirá haciendo prefetch o no de todas las entidades posibles. A día de hoy este debate sigue abierto en Github.</div>
arsucenohttp://www.blogger.com/profile/03910517809577819985noreply@blogger.com4tag:blogger.com,1999:blog-9124740.post-29725331744152262582013-02-09T22:35:00.001+01:002013-02-11T13:09:59.995+01:00Recuperar datos de formularios al volver atrás en el navegadorDado que cada navegador es un mundo a la hora de enviar un formulario y volver atrás a la página del formulario, que unos conservan los datos del formulario y otros no, que algunos tipos de campos mantienen el estado y otros no, que unos tiran de caché y otros vuelven a solicitar la página... La solución más fiable y más crossbrowser es guardar una cookie en el momento en que se envía el formulario, y hacer una petición AJAX en la página del formulario siempre que dicha cookie esté definida, cookie que recupere los datos del formulario y los vuelque en el formulario.<br />
<br />
Ojo, para datos sensibles esta solución puede no ser la más adecuada.<br />
<br />
Explicación por extender.arsucenohttp://www.blogger.com/profile/03910517809577819985noreply@blogger.com0tag:blogger.com,1999:blog-9124740.post-84340584985501832092013-02-09T13:40:00.003+01:002013-03-12T18:31:01.173+01:00Parámetros de Symfony en variables de entornoA veces nos interesa que ciertos parámetros de nuestra configuración estén definidos fuera del código de esta. Por ejemplo, los parámetros de conexión de la base de datos. Para estos casos podemos usar variables de entorno. En Apache lo haríamos así:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;"> DocumentRoot "c:/xampp/htdocs/dev/public_html/web"</span><br />
<span style="font-family: Courier New, Courier, monospace;"> ServerName symfony.localhost</span><br />
<span style="font-family: Courier New, Courier, monospace;"> SetEnv SYMFONY__DATABASE__USER "usuario"</span><br />
<span style="font-family: Courier New, Courier, monospace;"> SetEnv SYMFONY__DATABASE__PASSWORD "password"</span><br />
<span style="font-family: Courier New, Courier, monospace;"> SetEnv SYMFONY__DATABASE__NAME "name"</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"><br /></span>En el caso de que usemos Nginx con PHP-CGI sería algo así:<br />
<br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> location ~ .php$ {</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> fastcgi_pass 127.0.0.1:9000;</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> fastcgi_index app_dev.php;</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> include fastcgi_params;</span><br />
<span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"> </span><span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;">fastcgi_param SYMFONY__DATABASE__USER usuario;</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> fastcgi_param SYMFONY__DATABASE__NAME name;</span><br />
<span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"> fastcgi_param SYMFONY__DATABASE__PASSWORD password;</span><br />
<span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"> fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> }</span><br />
<br />
Y luego los recuperamos en el config.yml:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">doctrine:</span><br />
<span style="font-family: Courier New, Courier, monospace;"> dbal:</span><br />
<span style="font-family: Courier New, Courier, monospace;"> driver: %database_driver%</span><br />
<span style="font-family: Courier New, Courier, monospace;"> host: %database_host%</span><br />
<span style="font-family: Courier New, Courier, monospace;"> port: %database_port%</span><br />
<span style="font-family: Courier New, Courier, monospace;"> dbname: %database.name%</span><br />
<span style="font-family: Courier New, Courier, monospace;"> user: %database.user%</span><br />
<span style="font-family: Courier New, Courier, monospace;"> password: %database.password%</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"><br /></span>
Ojo al uso de . y _ . En este caso database_driver, database_host y database_port siguen definidos en el fichero parameteres.ini.<br />
<br />
Hay que tener en cuenta que si lanzamos algún script desde consola, tipo php app/console, no tendrá acceso a las variables de entorno, generando un error:<br />
<br />
<br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException]</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"><br /></span>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">You have requested a non-existent parameter "database.user".</span><br />
<br />
<br />
Para que funcione correctamente, hay que definir las variables de entorno, usando SET en Windows, o EXPORT en Linux:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">SET SYMFONY__DATABASE__USER=usuario</span><span style="font-family: 'Courier New', Courier, monospace;">SET SYMFONY__DATABASE__PASSWORD=password</span><br />
<span style="font-family: 'Courier New', Courier, monospace;">SET SYMFONY__DATABASE__NAME=name</span><br />
<br />
En Windows también podemos hacerlo en la ventana de variables de entorno, Panel de control -> Sistema -> Configuración avanzada del sistema -> Variables de entorno:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDtxh_7_Iyp92zO1BhNnyeluarABrOIlrFvmWvihgll6z4oQZMSfMVQ_gsReRKN2twpAX1BopF16Y186_7kcI0AejPUV_CEvL7qo0AYTTNbr09MPvhv0KwD9QWyiXct8LrleCY/s1600/borrame.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDtxh_7_Iyp92zO1BhNnyeluarABrOIlrFvmWvihgll6z4oQZMSfMVQ_gsReRKN2twpAX1BopF16Y186_7kcI0AejPUV_CEvL7qo0AYTTNbr09MPvhv0KwD9QWyiXct8LrleCY/s320/borrame.png" width="289" /></a></div>
<br />
<br />
Más info en: http://symfony.com/doc/current/cookbook/configuration/external_parameters.html<br />
<br />arsucenohttp://www.blogger.com/profile/03910517809577819985noreply@blogger.com0tag:blogger.com,1999:blog-9124740.post-89028134650181464362013-02-08T13:15:00.003+01:002013-02-11T13:10:33.388+01:00Ojo a los orders by en MySQLAunque MySQL suele ser inteligente, a veces no viene mal ayudarle con los orders. Ejemplo, tabla con muchos municipios, donde queremos obtener unos cuantos haciendo búsqueda por nombre, y luego ordenarlos por capitales y códigos postales ascendentes. La consulta típica sería así:<br />
<br />
<a href="http://db.localhost/url.php?url=http%3A%2F%2Fdev.mysql.com%2Fdoc%2Frefman%2F5.5%2Fen%2Fselect.html&token=bbedea0c10164f0a348480d03af2d100" style="background-color: #e5e5e5; border-bottom-color: black; border-bottom-style: dotted; border-bottom-width: 1px; color: #235a81; cursor: pointer; font-family: Verdan, Arial, Tahoma; font-size: 14px; outline: none; text-decoration: initial;" target="mysql_doc"><span class="syntax_alpha syntax_alpha_reservedWord" style="color: #990099; font-weight: bold; text-transform: uppercase;">SELECT</span></a><span style="background-color: #e5e5e5; color: #444444; font-family: Verdan, Arial, Tahoma; font-size: 14px;"> </span><span class="syntax_alpha syntax_alpha_identifier" style="background-color: #e5e5e5; font-family: Verdan, Arial, Tahoma; font-size: 14px;">m1</span><span class="syntax_punct syntax_punct_qualifier" style="background-color: #e5e5e5; color: magenta; font-family: Verdan, Arial, Tahoma; font-size: 14px;">.</span><span class="syntax_alpha syntax_alpha_identifier" style="background-color: #e5e5e5; font-family: Verdan, Arial, Tahoma; font-size: 14px;">id</span><span class="syntax_punct syntax_punct_listsep" style="background-color: #e5e5e5; color: magenta; font-family: Verdan, Arial, Tahoma; font-size: 14px;">,</span><span style="background-color: #e5e5e5; color: #444444; font-family: Verdan, Arial, Tahoma; font-size: 14px;"> </span><span class="syntax_alpha syntax_alpha_identifier" style="background-color: #e5e5e5; font-family: Verdan, Arial, Tahoma; font-size: 14px;">m1</span><span class="syntax_punct syntax_punct_qualifier" style="background-color: #e5e5e5; color: magenta; font-family: Verdan, Arial, Tahoma; font-size: 14px;">.</span><span class="syntax_alpha syntax_alpha_identifier" style="background-color: #e5e5e5; font-family: Verdan, Arial, Tahoma; font-size: 14px;">nombre</span><span class="syntax_punct syntax_punct_listsep" style="background-color: #e5e5e5; color: magenta; font-family: Verdan, Arial, Tahoma; font-size: 14px;">,</span><span style="background-color: #e5e5e5; color: #444444; font-family: Verdan, Arial, Tahoma; font-size: 14px;"> </span><span class="syntax_alpha syntax_alpha_identifier" style="background-color: #e5e5e5; font-family: Verdan, Arial, Tahoma; font-size: 14px;">m1</span><span class="syntax_punct syntax_punct_qualifier" style="background-color: #e5e5e5; color: magenta; font-family: Verdan, Arial, Tahoma; font-size: 14px;">.</span><span class="syntax_alpha syntax_alpha_identifier" style="background-color: #e5e5e5; font-family: Verdan, Arial, Tahoma; font-size: 14px;">codigo_postal</span><span class="syntax_punct syntax_punct_listsep" style="background-color: #e5e5e5; color: magenta; font-family: Verdan, Arial, Tahoma; font-size: 14px;">,</span><span style="background-color: #e5e5e5; color: #444444; font-family: Verdan, Arial, Tahoma; font-size: 14px;"> </span><span class="syntax_alpha syntax_alpha_identifier" style="background-color: #e5e5e5; font-family: Verdan, Arial, Tahoma; font-size: 14px;">m1</span><span class="syntax_punct syntax_punct_qualifier" style="background-color: #e5e5e5; color: magenta; font-family: Verdan, Arial, Tahoma; font-size: 14px;">.</span><span class="syntax_alpha syntax_alpha_identifier" style="background-color: #e5e5e5; font-family: Verdan, Arial, Tahoma; font-size: 14px;">capital</span><br />
<span class="syntax_alpha syntax_alpha_reservedWord" style="background-color: #e5e5e5; color: #990099; font-family: Verdan, Arial, Tahoma; font-size: 14px; font-weight: bold; text-transform: uppercase;">FROM</span><span style="background-color: #e5e5e5; color: #444444; font-family: Verdan, Arial, Tahoma; font-size: 14px;"> </span><span class="syntax_alpha syntax_alpha_identifier" style="background-color: #e5e5e5; font-family: Verdan, Arial, Tahoma; font-size: 14px;">Municipio</span><span style="background-color: #e5e5e5; color: #444444; font-family: Verdan, Arial, Tahoma; font-size: 14px;"> </span><span class="syntax_alpha syntax_alpha_identifier" style="background-color: #e5e5e5; font-family: Verdan, Arial, Tahoma; font-size: 14px;">m1</span><br />
<span class="syntax_alpha syntax_alpha_reservedWord" style="background-color: #e5e5e5; color: #990099; font-family: Verdan, Arial, Tahoma; font-size: 14px; font-weight: bold; text-transform: uppercase;">WHERE</span><span style="background-color: #e5e5e5; color: #444444; font-family: Verdan, Arial, Tahoma; font-size: 14px;"> </span><span class="syntax_alpha syntax_alpha_identifier" style="background-color: #e5e5e5; font-family: Verdan, Arial, Tahoma; font-size: 14px;">m1</span><span class="syntax_punct syntax_punct_qualifier" style="background-color: #e5e5e5; color: magenta; font-family: Verdan, Arial, Tahoma; font-size: 14px;">.</span><span class="syntax_alpha syntax_alpha_identifier" style="background-color: #e5e5e5; font-family: Verdan, Arial, Tahoma; font-size: 14px;">nombre</span><span style="background-color: #e5e5e5; color: #444444; font-family: Verdan, Arial, Tahoma; font-size: 14px;"> </span><a href="http://db.localhost/url.php?url=http%3A%2F%2Fdev.mysql.com%2Fdoc%2Frefman%2F5.5%2Fen%2Fstring-comparison-functions.html%23operator_like&token=bbedea0c10164f0a348480d03af2d100" style="background-color: #e5e5e5; border-bottom-color: black; border-bottom-style: dotted; border-bottom-width: 1px; color: #235a81; cursor: pointer; font-family: Verdan, Arial, Tahoma; font-size: 14px; outline: none; text-decoration: initial;" target="mysql_doc"><span class="syntax_alpha syntax_alpha_reservedWord" style="color: #990099; font-weight: bold; text-transform: uppercase;">LIKE</span></a><span style="background-color: #e5e5e5; color: #444444; font-family: Verdan, Arial, Tahoma; font-size: 14px;"> </span><span class="syntax_quote syntax_quote_double" style="background-color: #e5e5e5; color: green; font-family: Verdan, Arial, Tahoma; font-size: 14px; white-space: pre;">"%Girona%"</span><br />
<span class="syntax_alpha syntax_alpha_reservedWord" style="background-color: #e5e5e5; color: #990099; font-family: Verdan, Arial, Tahoma; font-size: 14px; font-weight: bold; text-transform: uppercase;">ORDER</span><span style="background-color: #e5e5e5; color: #444444; font-family: Verdan, Arial, Tahoma; font-size: 14px;"> </span><span class="syntax_alpha syntax_alpha_reservedWord" style="background-color: #e5e5e5; color: #990099; font-family: Verdan, Arial, Tahoma; font-size: 14px; font-weight: bold; text-transform: uppercase;">BY</span><span style="background-color: #e5e5e5; color: #444444; font-family: Verdan, Arial, Tahoma; font-size: 14px;"> </span><span class="syntax_alpha syntax_alpha_identifier" style="background-color: #e5e5e5; font-family: Verdan, Arial, Tahoma; font-size: 14px;">m1</span><span class="syntax_punct syntax_punct_qualifier" style="background-color: #e5e5e5; color: magenta; font-family: Verdan, Arial, Tahoma; font-size: 14px;">.</span><span class="syntax_alpha syntax_alpha_identifier" style="background-color: #e5e5e5; font-family: Verdan, Arial, Tahoma; font-size: 14px;">capital</span><span style="background-color: #e5e5e5; color: #444444; font-family: Verdan, Arial, Tahoma; font-size: 14px;"> </span><span class="syntax_alpha syntax_alpha_reservedWord" style="background-color: #e5e5e5; color: #990099; font-family: Verdan, Arial, Tahoma; font-size: 14px; font-weight: bold; text-transform: uppercase;">DESC</span><span style="background-color: #e5e5e5; color: #444444; font-family: Verdan, Arial, Tahoma; font-size: 14px;"> </span><span class="syntax_punct syntax_punct_listsep" style="background-color: #e5e5e5; color: magenta; font-family: Verdan, Arial, Tahoma; font-size: 14px;">,</span><span style="background-color: #e5e5e5; color: #444444; font-family: Verdan, Arial, Tahoma; font-size: 14px;"> </span><span class="syntax_alpha syntax_alpha_identifier" style="background-color: #e5e5e5; font-family: Verdan, Arial, Tahoma; font-size: 14px;">m1</span><span class="syntax_punct syntax_punct_qualifier" style="background-color: #e5e5e5; color: magenta; font-family: Verdan, Arial, Tahoma; font-size: 14px;">.</span><span class="syntax_alpha syntax_alpha_identifier" style="background-color: #e5e5e5; font-family: Verdan, Arial, Tahoma; font-size: 14px;">codigo_postal </span><span class="syntax_alpha syntax_alpha_reservedWord" style="background-color: #e5e5e5; color: #990099; font-family: Verdan, Arial, Tahoma; font-size: 14px; font-weight: bold; text-transform: uppercase;">ASC</span><br />
<span style="color: teal; font-family: Verdan, Arial, Tahoma;"><span style="font-size: 14px;"><br /></span></span><span style="background-color: #ebf8a4; font-family: sans-serif; font-size: 13px;">12 total, La consulta tardó 0.5366 seg</span><br />
<span style="color: teal; font-family: Verdan, Arial, Tahoma;"><span style="font-size: 14px;"><br /></span></span>
Si le echamos una mano a MySQL:<br />
<br />
<a href="http://db.localhost/url.php?url=http%3A%2F%2Fdev.mysql.com%2Fdoc%2Frefman%2F5.5%2Fen%2Fselect.html&token=bbedea0c10164f0a348480d03af2d100" style="background-color: #e5e5e5; border-bottom-color: black; border-bottom-style: dotted; border-bottom-width: 1px; color: #235a81; cursor: pointer; font-family: Verdan, Arial, Tahoma; font-size: 14px; outline: none; text-decoration: initial;" target="mysql_doc"><span class="syntax_alpha syntax_alpha_reservedWord" style="color: #990099; font-weight: bold; text-transform: uppercase;">SELECT</span></a><span style="background-color: #e5e5e5; color: #444444; font-family: Verdan, Arial, Tahoma; font-size: 14px;"> </span><span class="syntax_alpha syntax_alpha_identifier" style="background-color: #e5e5e5; font-family: Verdan, Arial, Tahoma; font-size: 14px;">m2</span><span class="syntax_punct syntax_punct_qualifier" style="background-color: #e5e5e5; color: magenta; font-family: Verdan, Arial, Tahoma; font-size: 14px;">.</span><span class="syntax_alpha syntax_alpha_identifier" style="background-color: #e5e5e5; font-family: Verdan, Arial, Tahoma; font-size: 14px;">id</span><span style="background-color: #e5e5e5; color: #444444; font-family: Verdan, Arial, Tahoma; font-size: 14px;"> </span><span class="syntax_alpha syntax_alpha_reservedWord" style="background-color: #e5e5e5; color: #990099; font-family: Verdan, Arial, Tahoma; font-size: 14px; font-weight: bold; text-transform: uppercase;">AS</span><span style="background-color: #e5e5e5; color: #444444; font-family: Verdan, Arial, Tahoma; font-size: 14px;"> </span><span class="syntax_alpha syntax_alpha_identifier" style="background-color: #e5e5e5; font-family: Verdan, Arial, Tahoma; font-size: 14px;">id</span><span class="syntax_punct syntax_punct_listsep" style="background-color: #e5e5e5; color: magenta; font-family: Verdan, Arial, Tahoma; font-size: 14px;">,</span><span style="background-color: #e5e5e5; color: #444444; font-family: Verdan, Arial, Tahoma; font-size: 14px;"> </span><span class="syntax_alpha syntax_alpha_identifier" style="background-color: #e5e5e5; font-family: Verdan, Arial, Tahoma; font-size: 14px;">m2</span><span class="syntax_punct syntax_punct_qualifier" style="background-color: #e5e5e5; color: magenta; font-family: Verdan, Arial, Tahoma; font-size: 14px;">.</span><span class="syntax_alpha syntax_alpha_identifier" style="background-color: #e5e5e5; font-family: Verdan, Arial, Tahoma; font-size: 14px;">nombre</span><span style="background-color: #e5e5e5; color: #444444; font-family: Verdan, Arial, Tahoma; font-size: 14px;"> </span><span class="syntax_alpha syntax_alpha_reservedWord" style="background-color: #e5e5e5; color: #990099; font-family: Verdan, Arial, Tahoma; font-size: 14px; font-weight: bold; text-transform: uppercase;">AS</span><span style="background-color: #e5e5e5; color: #444444; font-family: Verdan, Arial, Tahoma; font-size: 14px;"> </span><span class="syntax_alpha syntax_alpha_identifier" style="background-color: #e5e5e5; font-family: Verdan, Arial, Tahoma; font-size: 14px;">nombre</span><span class="syntax_punct syntax_punct_listsep" style="background-color: #e5e5e5; color: magenta; font-family: Verdan, Arial, Tahoma; font-size: 14px;">,</span><span style="background-color: #e5e5e5; color: #444444; font-family: Verdan, Arial, Tahoma; font-size: 14px;"> </span><span class="syntax_alpha syntax_alpha_identifier" style="background-color: #e5e5e5; font-family: Verdan, Arial, Tahoma; font-size: 14px;">m2</span><span class="syntax_punct syntax_punct_qualifier" style="background-color: #e5e5e5; color: magenta; font-family: Verdan, Arial, Tahoma; font-size: 14px;">.</span><span class="syntax_alpha syntax_alpha_identifier" style="background-color: #e5e5e5; font-family: Verdan, Arial, Tahoma; font-size: 14px;">codigo_postal</span><span style="background-color: #e5e5e5; color: #444444; font-family: Verdan, Arial, Tahoma; font-size: 14px;"> </span><span class="syntax_alpha syntax_alpha_reservedWord" style="background-color: #e5e5e5; color: #990099; font-family: Verdan, Arial, Tahoma; font-size: 14px; font-weight: bold; text-transform: uppercase;">AS</span><span style="background-color: #e5e5e5; color: #444444; font-family: Verdan, Arial, Tahoma; font-size: 14px;"> </span><span class="syntax_alpha syntax_alpha_identifier" style="background-color: #e5e5e5; font-family: Verdan, Arial, Tahoma; font-size: 14px;">codigoPostal</span><span class="syntax_punct syntax_punct_listsep" style="background-color: #e5e5e5; color: magenta; font-family: Verdan, Arial, Tahoma; font-size: 14px;">,</span><span style="background-color: #e5e5e5; color: #444444; font-family: Verdan, Arial, Tahoma; font-size: 14px;"> </span><span class="syntax_alpha syntax_alpha_identifier" style="background-color: #e5e5e5; font-family: Verdan, Arial, Tahoma; font-size: 14px;">m2</span><span class="syntax_punct syntax_punct_qualifier" style="background-color: #e5e5e5; color: magenta; font-family: Verdan, Arial, Tahoma; font-size: 14px;">.</span><span class="syntax_alpha syntax_alpha_identifier" style="background-color: #e5e5e5; font-family: Verdan, Arial, Tahoma; font-size: 14px;">capital</span><br />
<span class="syntax_alpha syntax_alpha_reservedWord" style="background-color: #e5e5e5; color: #990099; font-family: Verdan, Arial, Tahoma; font-size: 14px; font-weight: bold; text-transform: uppercase;">FROM</span><span style="background-color: #e5e5e5; color: #444444; font-family: Verdan, Arial, Tahoma; font-size: 14px;"> </span><span class="syntax_punct syntax_punct_bracket_open_round" style="background-color: #e5e5e5; color: magenta; font-family: Verdan, Arial, Tahoma; font-size: 14px;">(</span><br />
<div class="syntax_indent1" style="background-color: #e5e5e5; color: #444444; font-family: Verdan, Arial, Tahoma; font-size: 14px; margin-left: 1em;">
<a href="http://db.localhost/url.php?url=http%3A%2F%2Fdev.mysql.com%2Fdoc%2Frefman%2F5.5%2Fen%2Fselect.html&token=bbedea0c10164f0a348480d03af2d100" style="border-bottom-color: black; border-bottom-style: dotted; border-bottom-width: 1px; color: #235a81; cursor: pointer; outline: none; text-decoration: initial;" target="mysql_doc"><span class="syntax_alpha syntax_alpha_reservedWord" style="color: #990099; font-weight: bold; text-transform: uppercase;">SELECT</span></a> <span class="syntax_alpha syntax_alpha_identifier" style="color: black;">m1</span><span class="syntax_punct syntax_punct_qualifier" style="color: magenta;">.</span><span class="syntax_alpha syntax_alpha_identifier" style="color: black;">id</span><span class="syntax_punct syntax_punct_listsep" style="color: magenta;">,</span> <span class="syntax_alpha syntax_alpha_identifier" style="color: black;">m1</span><span class="syntax_punct syntax_punct_qualifier" style="color: magenta;">.</span><span class="syntax_alpha syntax_alpha_identifier" style="color: black;">nombre</span><span class="syntax_punct syntax_punct_listsep" style="color: magenta;">,</span> <span class="syntax_alpha syntax_alpha_identifier" style="color: black;">m1</span><span class="syntax_punct syntax_punct_qualifier" style="color: magenta;">.</span><span class="syntax_alpha syntax_alpha_identifier" style="color: black;">codigo_postal</span><span class="syntax_punct syntax_punct_listsep" style="color: magenta;">,</span> <span class="syntax_alpha syntax_alpha_identifier" style="color: black;">m1</span><span class="syntax_punct syntax_punct_qualifier" style="color: magenta;">.</span><span class="syntax_alpha syntax_alpha_identifier" style="color: black;">capital</span><br />
<span class="syntax_alpha syntax_alpha_reservedWord" style="color: #990099; font-weight: bold; text-transform: uppercase;">FROM</span> <span class="syntax_alpha syntax_alpha_identifier" style="color: black;">Municipio</span> <span class="syntax_alpha syntax_alpha_identifier" style="color: black;">m1</span><br />
<span class="syntax_alpha syntax_alpha_reservedWord" style="color: #990099; font-weight: bold; text-transform: uppercase;">WHERE</span> <span class="syntax_alpha syntax_alpha_identifier" style="color: black;">m1</span><span class="syntax_punct syntax_punct_qualifier" style="color: magenta;">.</span><span class="syntax_alpha syntax_alpha_identifier" style="color: black;">nombre</span> <a href="http://db.localhost/url.php?url=http%3A%2F%2Fdev.mysql.com%2Fdoc%2Frefman%2F5.5%2Fen%2Fstring-comparison-functions.html%23operator_like&token=bbedea0c10164f0a348480d03af2d100" style="border-bottom-color: black; border-bottom-style: dotted; border-bottom-width: 1px; color: #235a81; cursor: pointer; outline: none; text-decoration: initial;" target="mysql_doc"><span class="syntax_alpha syntax_alpha_reservedWord" style="color: #990099; font-weight: bold; text-transform: uppercase;">LIKE</span></a> <span class="syntax_quote syntax_quote_double" style="color: green; white-space: pre;">"%Girona%"</span></div>
<span class="syntax_punct syntax_punct_bracket_close_round" style="background-color: #e5e5e5; color: magenta; font-family: Verdan, Arial, Tahoma; font-size: 14px;">) </span><span class="syntax_alpha syntax_alpha_identifier" style="background-color: #e5e5e5; font-family: Verdan, Arial, Tahoma; font-size: 14px;">m2</span><br />
<span class="syntax_alpha syntax_alpha_reservedWord" style="background-color: #e5e5e5; color: #990099; font-family: Verdan, Arial, Tahoma; font-size: 14px; font-weight: bold; text-transform: uppercase;">ORDER</span><span style="background-color: #e5e5e5; color: #444444; font-family: Verdan, Arial, Tahoma; font-size: 14px;"> </span><span class="syntax_alpha syntax_alpha_reservedWord" style="background-color: #e5e5e5; color: #990099; font-family: Verdan, Arial, Tahoma; font-size: 14px; font-weight: bold; text-transform: uppercase;">BY</span><span style="background-color: #e5e5e5; color: #444444; font-family: Verdan, Arial, Tahoma; font-size: 14px;"> </span><span class="syntax_alpha syntax_alpha_identifier" style="background-color: #e5e5e5; font-family: Verdan, Arial, Tahoma; font-size: 14px;">m2</span><span class="syntax_punct syntax_punct_qualifier" style="background-color: #e5e5e5; color: magenta; font-family: Verdan, Arial, Tahoma; font-size: 14px;">.</span><span class="syntax_alpha syntax_alpha_identifier" style="background-color: #e5e5e5; font-family: Verdan, Arial, Tahoma; font-size: 14px;">capital</span><span style="background-color: #e5e5e5; color: #444444; font-family: Verdan, Arial, Tahoma; font-size: 14px;"> </span><span class="syntax_alpha syntax_alpha_reservedWord" style="background-color: #e5e5e5; color: #990099; font-family: Verdan, Arial, Tahoma; font-size: 14px; font-weight: bold; text-transform: uppercase;">DESC</span><span style="background-color: #e5e5e5; color: #444444; font-family: Verdan, Arial, Tahoma; font-size: 14px;"> </span><span class="syntax_punct syntax_punct_listsep" style="background-color: #e5e5e5; color: magenta; font-family: Verdan, Arial, Tahoma; font-size: 14px;">,</span><span style="background-color: #e5e5e5; color: #444444; font-family: Verdan, Arial, Tahoma; font-size: 14px;"> </span><span class="syntax_alpha syntax_alpha_identifier" style="background-color: #e5e5e5; font-family: Verdan, Arial, Tahoma; font-size: 14px;">m2</span><span class="syntax_punct syntax_punct_qualifier" style="background-color: #e5e5e5; color: magenta; font-family: Verdan, Arial, Tahoma; font-size: 14px;">.</span><span class="syntax_alpha syntax_alpha_identifier" style="background-color: #e5e5e5; font-family: Verdan, Arial, Tahoma; font-size: 14px;">codigo_postal</span><span style="background-color: #e5e5e5; color: #444444; font-family: Verdan, Arial, Tahoma; font-size: 14px;"> </span><span class="syntax_alpha syntax_alpha_reservedWord" style="background-color: #e5e5e5; color: #990099; font-family: Verdan, Arial, Tahoma; font-size: 14px; font-weight: bold; text-transform: uppercase;">ASC</span><br />
<span class="syntax_alpha syntax_alpha_reservedWord" style="background-color: #e5e5e5; color: #990099; font-family: Verdan, Arial, Tahoma; font-size: 14px; font-weight: bold; text-transform: uppercase;"><br /></span>
<span style="background-color: #ebf8a4; font-family: sans-serif; font-size: 13px;">12 total, La consulta tardó 0.0886 seg</span><br />
<span class="syntax_alpha syntax_alpha_reservedWord" style="background-color: #e5e5e5; color: #990099; font-family: Verdan, Arial, Tahoma; font-size: 14px; font-weight: bold; text-transform: uppercase;"><br /></span>
Parece ser que en algunos casos, como en éste, MySQL tiene a ordenar la tabla antes de realizar la búsqueda, con lo que el resultado es bastante peor.<br />
<br />
<span style="font-size: x-small;">pd: La prueba está hecha con varios municipios y tras varios reinicios de MySQL. No parece un tema de caché.</span>arsucenohttp://www.blogger.com/profile/03910517809577819985noreply@blogger.com0tag:blogger.com,1999:blog-9124740.post-21539063218046299622013-02-07T19:40:00.003+01:002013-02-11T13:10:50.625+01:00¿Qué aplicación utiliza un puerto en Windows?1. En consola:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">netstat -noa</span><br />
<span style="font-family: Courier New, Courier, monospace;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkOqknrgCCk8KATZ8Zbvhs0srvmgxFWiu8RKBbu2dkDxRIXO4tg37GKKrdlx_5LN3EUpdo79_FtnOjupL1324afJXYPwxVM0O1am-A_faV1gY-X_hW5rN9YdH1wvCgCM5YSMu9/s1600/consola.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="386" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkOqknrgCCk8KATZ8Zbvhs0srvmgxFWiu8RKBbu2dkDxRIXO4tg37GKKrdlx_5LN3EUpdo79_FtnOjupL1324afJXYPwxVM0O1am-A_faV1gY-X_hW5rN9YdH1wvCgCM5YSMu9/s400/consola.png" width="400" /></a></div>
<span style="font-family: Courier New, Courier, monospace;"><br /></span>
2. En el administrador de tareas buscamos el PID: (si el PID no aparece marcarlo en Ver/Seleccionar columnas...)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9XUkNBU64odGqKMUfGqkOq3UuPi81qbdbyDqP9cncPtVDA_3zp_SVTvEnlOEZHY_9bzY6mGtnZZQTDY47YEjba8NmPyzGWU22Vo2vz4xrjDyfYhI3NJmCAHHfBfhBudqCPNQ3/s1600/administradortareas.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="388" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9XUkNBU64odGqKMUfGqkOq3UuPi81qbdbyDqP9cncPtVDA_3zp_SVTvEnlOEZHY_9bzY6mGtnZZQTDY47YEjba8NmPyzGWU22Vo2vz4xrjDyfYhI3NJmCAHHfBfhBudqCPNQ3/s400/administradortareas.png" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
Actualización: Otra forma más cómoda y rápida como administrador (gracias al comentario anónimo). En consola:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">netstat -nba</span><br />
<span style="font-family: Courier New, Courier, monospace;"><br /></span>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRpJsP2XWNMIVsuDpPO1AT9TNfOzJRgybIYowv1PtvxHvKg4OvD5TOkmYeaLgfMyxvfh4gjTbcxI0jN4P9tGdR-Knb_kU6nH_tfaH_sWrTu7kT9fJNMRcXP-Y3MDFkPw6ZNxrd/s1600/netstat.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="307" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRpJsP2XWNMIVsuDpPO1AT9TNfOzJRgybIYowv1PtvxHvKg4OvD5TOkmYeaLgfMyxvfh4gjTbcxI0jN4P9tGdR-Knb_kU6nH_tfaH_sWrTu7kT9fJNMRcXP-Y3MDFkPw6ZNxrd/s400/netstat.png" width="400" /></a><span style="font-family: Courier New, Courier, monospace;"><br /><br /></span>arsucenohttp://www.blogger.com/profile/03910517809577819985noreply@blogger.com2tag:blogger.com,1999:blog-9124740.post-75326242470554262022013-02-07T19:22:00.003+01:002015-01-05T02:58:29.567+01:00Mercurial y SSH bajo WindowsTal que así:<br />
<br />
1. Bajar putty, plink, puttygen. Generar clave SSH, guardarla y añadirla al authorized_keys del servidor.<br />
<br />
2. Bajar e instalar Mercurial.<br />
<br />
3. Configurar %USERPROFILE%/Mercurial.ini:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">[ui]</span><br />
<span style="font-family: Courier New, Courier, monospace;">ssh="C:\Putty\Plink.exe" -P XXXX -ssh -i "C:\Putty\key.ppk" </span><br />
<span style="font-family: Courier New, Courier, monospace;">username=usuario</span><br />
<span style="font-family: Courier New, Courier, monospace;"><br /></span>
4. En consola probar:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">plink -ssh -i c:\putty\key.ppk usuario@X.X.X.X -P XXXX</span><br />
<span style="font-family: Courier New, Courier, monospace;"><br /></span>
5. Si ha ido bien, perfect, si no tenemos algún fallo previamente. Revisar IPs, puerto, key, etc. Aceptar añadir clave a cache.<br />
<br />
6. Clonar repositorio:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">hg -v clone ssh://usuario@X.X.X.X:XXXX/ruta/al/repo /ruta/local</span><br />
<span style="font-family: Courier New, Courier, monospace;"><br /></span>
¡Listo!arsucenohttp://www.blogger.com/profile/03910517809577819985noreply@blogger.com0tag:blogger.com,1999:blog-9124740.post-52486252168274685782013-01-02T21:24:00.001+01:002013-01-02T21:24:23.446+01:00Termina el año de la valoraciónUn año después, termina el año de la valoración. 2 entrevistas de trabajo, contratado durante 9 meses y ahora vuelta a empezar. Siempre será mejor que trabajar gratis.<br />
<br />
Este año... aun en duda.arsucenohttp://www.blogger.com/profile/03910517809577819985noreply@blogger.com0tag:blogger.com,1999:blog-9124740.post-52371811716012363482012-11-27T01:58:00.004+01:002012-11-27T01:58:48.825+01:00Con que poco...... me haces feliz antes de dormir.<br />
<br />
Hace ya tiempo que dejaste huella.<br />
<br />
<br />
<br />
<br />
<br />
<br />
arsucenohttp://www.blogger.com/profile/03910517809577819985noreply@blogger.com0tag:blogger.com,1999:blog-9124740.post-19215050065359246082012-09-19T13:06:00.001+02:002013-02-11T13:11:34.274+01:00Separar nombre y apellidos en MySQLNo es 100% efectivo dado la cantidad de nombres compuestos, apellidos e historias que hay, pero una solución rápida para dejar la primera palabra como nombre y el resto como apellidos sería:<br />
<br />
UPDATE usuario SET nombre = (SELECT LEFT(nombre_apellidos,InStr(
nombre_apellidos ,' '))), apellidos = (SELECT RIGHT(nombre_apellidos,(Length(
nombre_apellidos ) - InStr(
nombre_apellidos ,' '))));<br />
<br />
Visto originalmente aquí: <a href="http://compgroups.net/comp.databases.mysql/split-full-name-in-to-first-middle-and-l/104981">http://compgroups.net/comp.databases.mysql/split-full-name-in-to-first-middle-and-l/104981</a>arsucenohttp://www.blogger.com/profile/03910517809577819985noreply@blogger.com0tag:blogger.com,1999:blog-9124740.post-68489938458338295372012-07-31T18:17:00.002+02:002013-02-11T13:11:48.892+01:00remember_me en security.yml (Symfony 2.0)Después de muchas peleas con el security.yml de Symfony 2.0 para habilitar la función remember_me, esta es la versión definitiva:<br />
<br />
<span style="font-family: 'Courier New', Courier, monospace;">frontend: </span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> ... </span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> remember_me: </span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> key: "una_key_cualquiera" </span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> lifetime: 604800 </span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> remember_me_parameter: _remember_me </span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> path: / </span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> domain: </span><br />
<br />
Muy importante <b>dejar el dominio en blanco</b> para no tener problemas si estamos haciendo pruebas en varios servidores, <b>no poner rutas con símbolos comodín o similar en el path</b>, y <b>no poner comentarios o usar ~ a continuación de los valores</b>. Al menos a mi estos factores me causaban problemas porque no se parsea de ningún modo los valores antes de introducirlos en la cookie que se envía el usuario, por lo cual el navegador puede recibir la cookie y no tragársela.<br />
<br />
<span style="font-size: x-small;">pd: esto es un inciso solo.</span>arsucenohttp://www.blogger.com/profile/03910517809577819985noreply@blogger.com0tag:blogger.com,1999:blog-9124740.post-57556862857882094362012-01-02T00:48:00.001+01:002012-01-02T00:49:27.882+01:00Bienvenido 2012Termina el año de la congruencia. Comienza el año de la valoración.<br /><br />pd: El balance, más adelante.arsucenohttp://www.blogger.com/profile/03910517809577819985noreply@blogger.com0tag:blogger.com,1999:blog-9124740.post-34282515383580070302011-12-17T05:16:00.004+01:002011-12-17T05:32:03.558+01:00Casual-idadesÉl.<br />Sin una llamada no habría venido a verme.<br />Sin verme, no la habría acompañado a casa.<br />Sin acompañarla, no habría buscado un autobús para volver.<br />Sin ser su acompañante por teléfono, no habría acabado ahí.<br /><br />Ella.<br />(...)<br />Si no hubiera acompañado a su amiga, no habría acabado ahí.<br /><br />Ellos.<br />Sin una causa conjunta, no habrían entablado una conversación. Si el autobús hubiera seguido su rumbo no se habrían conocido. Sin conocerse, habría sido una noche más.<br /><br />Denada por una conversación agradable. Ahora te toca rellenar tu parte.<br /><br /><span style="font-style:italic;">El ya sabía escribir su nombre. Casualidades.</span>arsucenohttp://www.blogger.com/profile/03910517809577819985noreply@blogger.com0tag:blogger.com,1999:blog-9124740.post-11154508929558572852011-10-24T04:24:00.007+02:002011-10-24T04:55:16.122+02:00Pequeño apunte sobre Grecia<div style="text-align: justify;">Hace cerca de año y medio saltaba a la red un vídeo de un europarlamentario francés por el partido de Los Verdes, llamado Daniel Cohn-Bendit, donde criticaba con mucha dureza las reformas que se le estaban exigiendo a Grecia. También criticaba la hipocresía de la venta de armamento militar (minuto 4:50) por parte de Francia y Alemania. La reflexión, en sus propias palabras, era la siguiente: "Les estamos prestando dinero para que nos compren armamento". En su comparecencia también pone en entredicho el tamaño del ejercito de Grecia. Según <a href="http://www.globalfirepower.com/countries-comparison-detail.asp">GlobalFirePower</a>, Grecia tiene 177600 militares activos con una población de 11 millones de personas, mientras que, p.ej., España, tiene 177000 con una población de 47 millones. Si comparamos nuestro arsenal militar con el de ellos, también quedamos por detrás en muchos aspectos.</div><div><br /><div style="text-align: center;"><iframe width="475" height="265" src="http://www.youtube.com/embed/nqno8H-mjeY" frameborder="0" allowfullscreen=""></iframe></div></div><div style="text-align: center;"><i><span class="Apple-style-span">Daniel Cohn-Bendit, eurodiputado francés, hablando sobre Grecia</span></i></div><div><br /></div><div style="text-align: justify;">¿Y a que viene todo esto? Fácil, un año y medio después de este vídeo, y tal como esta la situación en Grecia, surge la <a href="http://www.alsosprachanalyst.com/economy/what-greece-to-buy-400-tanks-from-the-us.html">noticia de la compra de 400 tanques</a> a Estados Unidos por valor de 1280 millones de euros según <a href="http://www.larazon.es/noticia/8384-grecia-al-borde-de-la-bancarrota-compra-400-tanques-a-estados-unidos">La Razón</a>.</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">Cuanto menos es para hacerse preguntas. Tanto oír hablar de rescates, de recortes, de manifestaciones... ¿para luego leer que compran 400 tanques? Definitivamente, el mundo está loco.</div>arsucenohttp://www.blogger.com/profile/03910517809577819985noreply@blogger.com0tag:blogger.com,1999:blog-9124740.post-83243683303439935972011-10-09T13:14:00.004+02:002011-10-10T03:01:21.290+02:00Volando en círculos<div style="text-align: justify;">- Aun no podemos volar juntos.</div><div style="text-align: justify;">- ¿Por qué?</div><div style="text-align: justify;">- Debes aprender a volar en linea recta.</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;"><i>No existen lineas rectas. Incluso el horizonte es un círculo.</i></div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">Todos queremos volar. Pero nadie vuela igual. Las variables son tantas como profundo sea el análisis. Y en cualquier caso, dos vuelos exactamente iguales tienen muchas posibilidades de acabar en accidente. Tampoco se vuela igual a lo largo de la vida. A día de hoy, si pudiera escoger, escogería volar a la misma velocidad, en círculos pequeños que entrecruzan sus caminos constantemente a diferente altura. Si me preguntas mañana, no sabría responder, aunque quizás ya haya escogido.</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">Tan importante es volar como respetar el vuelo de los demás. No puedes forzar a que alguien vuele como tu si no lleváis el mismo avión y la misma cantidad de combustible.</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;"><i>Suerte en tu vuelo. Quizás a tu regreso ya vuele en linea recta.</i></div>arsucenohttp://www.blogger.com/profile/03910517809577819985noreply@blogger.com0tag:blogger.com,1999:blog-9124740.post-4645710436973216552011-10-05T02:52:00.015+02:002011-10-07T00:00:38.555+02:00El sistema electoral aplicado a Granada<div style="text-align: justify;">Me he decidido a hacer este post porque creo que mucha gente no entiende aun cómo va el sistema electoral y como afecta en particular a Granada. Como creo que está más que explicado en Internet, el que aun no sepa como va debe entender que en España se aplica el <a href="http://es.wikipedia.org/wiki/Sistema_D'Hondt">sistema D'Hondt</a>, que las <a href="http://es.wikipedia.org/wiki/Sistema_D%27Hondt#Influencia_de_las_leyes_electorales_en_los_resultados">circunscripciones son las provincias y el porcentaje de exclusión es del 3%</a>.</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">Dicho esto, en el caso concreto de Granada tenemos que, de cara al congreso, al votar en Granada tu voto afectará solo a los 7 diputados que por población le corresponden a Granada. Para entender esto mejor, es bueno hacer un poco de historia.</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">En las 3 últimas elecciones generales al congreso (2008, 2004 y 2000), el resultado en Granada ha sido idéntico, 4 diputados para PSOE y 3 diputados para PP. Para obtener un resultado diferente hay que remontarse a 1996, cuando IU consiguió robarle un diputado al PSOE. La Tabla 1 refleja estos datos:</div><div><br /></div><div><span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnC6tRleSJkF0b1_o68YrC-JSs77jT4dbr4t-H0VO8kZIQCl_UR-5hgxr4hFbbND0PIyXjnoEbevZI7oIDQtZH8KX2WUqg7yNr-stYJSlg_oxoSm4FZLfCusYK06wQCIMsNCwD/s400/HistoriaCongresoGranada.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5659807077085846738" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 250px; " /></span></div><div style="text-align: center;"><span class="Apple-style-span">Tabla 1 - Resultados al congreso por Granada 1996-2004</span></div><div style="text-align: center;"><span class="Apple-style-span"><br /></span></div><div style="text-align: justify;"><span class="Apple-style-span">Si nunca antes habías observado estos datos te preguntarás, ¿qué pasa, p.ej., con los 35000 votos de IU en el 2000? ¿A dónde van? La respuesta es muy sencilla: a la basura. Quizás te parezca lógico, pues el resto de partidos tienen bastante más porcentaje. Pero, ¿y si en Granada hubiera más de 7 diputados? Vamos a fijarnos ahora en la Tabla 2, que muestra la tabla D'Hondt de los resultados de 2008:</span></div><div style="text-align: left;"><span class="Apple-style-span"><br /></span></div><div style="text-align: left;"><span class="Apple-style-span"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu-W9WU5WcOZIuYxS4bdS5p80PYbGtgjHjXlB0Yyofqv9vZRNUev4CsbzRLdsoCaXD5umRShOPSiWZjRjIGqs6f7rOYcHlvTDAlPg6-in1HRF4xrkyqlz6bB9YywrlRMJEDRVI/s1600/Granada7Diputados2008.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu-W9WU5WcOZIuYxS4bdS5p80PYbGtgjHjXlB0Yyofqv9vZRNUev4CsbzRLdsoCaXD5umRShOPSiWZjRjIGqs6f7rOYcHlvTDAlPg6-in1HRF4xrkyqlz6bB9YywrlRMJEDRVI/s400/Granada7Diputados2008.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5659824092533153954" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 355px; height: 141px; " /></a></span></div><div style="text-align: center;"><span class="Apple-style-span">Tabla 2 - Tabla D'Hondt de elecciones al congreso de Granada en 2008, usando 7 diputados</span><br /></div><div style="text-align: left;"><br /></div><div style="text-align: left;">En esta tabla se ve como el PSOE obtiene 4 diputados y el PP 3. Ahora bien, ¿qué pasaría si en Granada se escogieran 18 diputados? El resultado sería el de la Tabla 3:</div><div style="text-align: left;"><br /></div><div style="text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVfVpZzahG__FcLyZAcOgH3LsiE-_L7pUjipZ8bzhdtL9uDBQ85Tbz1XIzeoKBYGxfIjgNo1wdkALfwevuXVZ6AABnexgjCeJTLxZ3SKVCNAoCrpO_FAlcOD1OjE_PojgIVex6/s1600/Granada18Diputados.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVfVpZzahG__FcLyZAcOgH3LsiE-_L7pUjipZ8bzhdtL9uDBQ85Tbz1XIzeoKBYGxfIjgNo1wdkALfwevuXVZ6AABnexgjCeJTLxZ3SKVCNAoCrpO_FAlcOD1OjE_PojgIVex6/s400/Granada18Diputados.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5659823490351968754" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 355px; height: 238px; " /></a></div><div style="text-align: center;"><span class="Apple-style-span">Tabla 3 - Resultados al congreso por Granada suponiendo 18 diputados en vez de 7</span></div><div style="text-align: center;"><br /></div><div style="text-align: justify;">Con 18 diputados, IU hubiera obtenido un diputado por Granada. Pero claro, no vamos a tener 18 diputados por provincia. La solución a este problema pasaría por hacer más grandes las circunscripciones. Si usáramos Andalucía como circunscripción, que en total suma 55 diputados, el resultado con estos mismos porcentajes sería de 29 diputados para PSOE, 24 para PP y 2 para IU. Y a medida que aumenta la circunscripción disminuye el bipartidismo, pero claro, esto no le interesa a los grandes partidos, que precisamente son los que tienen en su mano el poder cambiar la ley electoral.</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">Dicho todo esto, a modo de curiosidad, si el próximo 20N se repitieran en las elecciones al congreso de los diputados los mismos resultados que en las municipales del 22M, el resultado sería el que se muestra en la Tabla 4:</div><div><br /></div><div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKEUWL051c0iM_4nHX7u6jNAHS7oi7pK9KrsNIsVRwl-mhemVCNL2-fA7LtzHThRglDWnhUzRP00WXgsrcgLI8D9N5Am7BEpxxk1YsRtJqQXs5mbn7ryFDtmM_nuIVwZUqwvKR/s1600/Municipales2011Congreso.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKEUWL051c0iM_4nHX7u6jNAHS7oi7pK9KrsNIsVRwl-mhemVCNL2-fA7LtzHThRglDWnhUzRP00WXgsrcgLI8D9N5Am7BEpxxk1YsRtJqQXs5mbn7ryFDtmM_nuIVwZUqwvKR/s400/Municipales2011Congreso.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5659822527800067858" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 355px; height: 123px; " /></a></div><div style="text-align: center;"><span class="Apple-style-span">Tabla 4 - Resultados al congreso por Granada utilizando resultados de las municipales</span></div><div><br /></div><div style="text-align: justify;">No me he olvidado de UPyD, que obtuvo representación en el ayuntamiento. Simplemente sus 10000 votos en toda la provincia no le darían para superar el listón del 3% de votos totales. No obstante esta tabla es totalmente especulativa, pues UPyD no se presentaba en todos los municipios de la provincia y ni que decir tiene que los votos a partidos locales en las municipales acaban en los partidos grandes en las generales. En cualquier caso, con estos resultados IU volvería a tener un diputado por apenas 395 votos.</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">Como conclusión, y aunque el voto es libre, diré que no acabo de entender a la gente que vota a partidos cuyas opciones de obtener representación en el congreso son nulas. Hacen falta casi 50000 votos para obtener un representante de un partido en la provincia, y francamente no me imagino, p.ej., a 50000 votantes de PACMA (por muy loable que sea su programa). Si estás cansado de lo mismo explora que posibilidades tienen otros partidos en tu provincia, a veces el obtener o no representación depende de apenas unos votos. Y si lo que te frustra es simplemente este sistema electoral bipartidista sal a manifestarte con Democracia Real Ya, pues uno de sus principales puntos estaba relacionado con el bipartidismo.</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;"><span class="Apple-style-span">Pd: Para hacer cálculos con el Sistema D'Hondt he usado la calculadora de <a href="http://www.portalelectoral.es/">http://www.portalelectoral.es/</a></span></div>arsucenohttp://www.blogger.com/profile/03910517809577819985noreply@blogger.com3tag:blogger.com,1999:blog-9124740.post-40671441203170786042011-10-04T04:55:00.006+02:002011-10-04T10:43:07.698+02:00Silencios<div><span class="Apple-style-span" >Lo siento, no volverá a pasar.</span></div><i><span class="Apple-style-span" ><div><i><br /></i></div>Shhh. No digas nada.</span></i><div><i><span class="Apple-style-span" ><br /></span></i></div><div><span class="Apple-style-span" >Silencios que intimidan. Silencios que recelan. Silencios que respetan.</span></div><div><span class="Apple-style-span" ><br /></span></div><div><span class="Apple-style-span" >Silencios que ven. Silencios que descubren. Silencios que ayudan.</span></div><div><span class="Apple-style-span" ><br /></span></div><div><span class="Apple-style-span" >Silencios que abrigan. Silencios que hablan. Silencios que responden. </span></div><div><span class="Apple-style-span" >Silencios que aventuran. Silencios que sorprenden. Silencios entrelazados.</span></div><div><span class="Apple-style-span" ><br /></span></div><div><span class="Apple-style-span" >Silencios que disfrutan. Silencios que abrazan. Silencios felices.</span></div><div><span class="Apple-style-span" ><br /></span></div><div><span class="Apple-style-span" >Silencios que pasean. Silencios que observan. Silencios que acogen.</span></div><div><span class="Apple-style-span" >Silencios que preguntan. Silencios que dudan. Silencios dormidos.</span></div><div><span class="Apple-style-span" ><br /></span></div><div><span class="Apple-style-span" >Silencios que piensan. Silencios que temen. Silencios equivocados.</span></div><div style="text-align: right;"><span class="Apple-style-span" >Silencios que ansian. Silencios adultos. Silencios sinceros.</span></div><div style="text-align: right;"><span class="Apple-style-span" ><br /></span></div><div style="text-align: left;"><span class="Apple-style-span" >Silencios de amistad. Silencios tranquilos. Silencios cómodos.</span></div><div style="text-align: right;"><span class="Apple-style-span" >Silencios cansados. Silencios que beben. Silencios que auyentan.</span></div><div style="text-align: right;"><span class="Apple-style-span" ><br /></span></div><div style="text-align: left;"><span class="Apple-style-span" >Silencios que no entienden. Silencios que no olvidan.</span></div><div style="text-align: left;"><span class="Apple-style-span" ><br /></span></div><div style="text-align: left;"><i><span class="Apple-style-span" >Entre el amor y el odio, escogieron el silencio.</span></i></div>arsucenohttp://www.blogger.com/profile/03910517809577819985noreply@blogger.com0tag:blogger.com,1999:blog-9124740.post-5156235026430270242011-09-26T04:37:00.006+02:002011-09-26T05:14:56.028+02:00Perdona. Olvida. Quiere.<div style="text-align: justify;">No. Gracias.</div><div style="text-align: justify;"><i><br /></i></div><div style="text-align: justify;"><i>¡Pero si lo tiene todo!, ¿cuál es el problema entonces?</i></div><div style="text-align: justify;"><i><br /></i></div><div style="text-align: justify;">Puedes acallar, puedes ocultar, puedes censurar. Pero no puedes ignorar. Y mucho menos avanzar. Aun así, de intentarlo, escoge bien con quien lo intentas. Porque nadie merece heredar problemas, preocupaciones o miedos. Sobre todo si nada de ello venía en la carta de presentación. Sentirse querido es muy agradable, pero para que funcione hay que saber querer. Y para saber querer, hay que saber olvidar. Perdona. Olvida. Quiere. Al revés, duele.</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;"><i>El problema era él. Y frente a eso no valían excusas.</i></div>arsucenohttp://www.blogger.com/profile/03910517809577819985noreply@blogger.com2tag:blogger.com,1999:blog-9124740.post-69619953854528887892011-09-19T20:42:00.004+02:002011-09-19T20:45:45.588+02:00Error en XAMPP Installer y Windows 7Si al arrancar el XAMPP Control Panel aparece el mensaje: <div><br /></div><div><span class="Apple-style-span"><span class="Apple-style-span" style="line-height: 18px;"><i><div>Current directory: c:\xampp</div><div>Install(er) Directory: C:\xampp</div><div>Error Status Check Failure (3).</div><div>This program must run form your XAMPP root directory</div></i></span></span></div><div><i><br /></i></div><div>aun habiéndolo instalado en c:\xampp, desinstálalo, descárgate la versión ZIP, descomprímela en C:\xampp y ejecuta setup_xampp.bat. Parece ser que el instalador tiene ciertos conflictos.</div>arsucenohttp://www.blogger.com/profile/03910517809577819985noreply@blogger.com0tag:blogger.com,1999:blog-9124740.post-72204558465834787582011-09-13T03:02:00.007+02:002011-09-13T03:26:02.934+02:00De vainilla y cholate<div>- Entonces, ¿de qué quieres el helado?<div>- De vainilla.<div><br /></div><div><i>Me alegro. Él los prefería de chocolate.</i></div><div><i><br /></i></div><div style="text-align: justify;">Todos hemos tenido experiencias. Experiencias buenas, y experiencias malas, pero experiencias al fin y al cabo. Y las comparaciones son odiosas, e inevitables. Al menos para mí. Por eso, prefiero no saber. Prefiero evitar los condicionantes y prefiero crear una experiencia en base a lo desconocido. Porque aun no quiero saber quien fuiste, y porque aun podemos ser quienes queramos. Sin trampas, sin atajos. Mañana no me toca madrugar.</div><div><i><br /></i></div><div><i>En realidad, de vainilla y cholate. Demasiado tarde. Sonríes.</i></div></div><br /></div>arsucenohttp://www.blogger.com/profile/03910517809577819985noreply@blogger.com3tag:blogger.com,1999:blog-9124740.post-73098206243638651442011-09-06T04:24:00.007+02:002011-09-13T12:19:47.414+02:00Sí, sólo un abrazo.<div>- "¿Solo?"</div><div>- "Sí, sólo un abrazo."</div><div><br /></div><div><i>Y la noche, deslunada, se hizo día...</i></div><div><br /></div><div style="text-align: justify;">Entendió las reglas. Las hizo suyas. Ambos sabían que podían ganar perdiendo; ó que podían perder ganando. Sin embargo, firmaron tablas. Y al menos uno de los dos se preguntó si habría más partidas, pues las tablas bien saben a poco cuando no tiene por que haber vencidos.</div><div><br /></div><div><i>Ella aun desconoce cuán grande es su poder. Pero nadie mintió: él tampoco lo sabe.</i></div>arsucenohttp://www.blogger.com/profile/03910517809577819985noreply@blogger.com0tag:blogger.com,1999:blog-9124740.post-77819921626262971482011-08-23T12:57:00.002+02:002013-02-11T13:13:37.488+01:00La generación del siglo XXI<div style="text-align: justify;">
Bienvenido al siglo XXI. Te ha tocado vivir la generación que trabajará más que sus padres, pero que se jubilará con una pensión menor. La generación mejor formada, pero que, con suerte, y si puede permitírselo, terminará a los 60 años de pagar una casa. La generación que verá desaparecer, poco a poco, la educación y la sanidad pública. La generación de los sueldos bajos camuflados bajo el nombre de becas y contratos de prácticas. La generación de las horas extras no remuneradas por miedo al despido. La generación que bajo la cantinela del "hay que ser más competitivos" verá reducidos sus sueldos. La generación del bipartidismo sostenido bajo un sistema electoral injusto. La generación de "la culpa es de los mercados".</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Aun así, serás feliz. Tendrás tus malos momentos, pero terminarás tus estudios, te estresarás buscando trabajo y aceptarás lo primero que encuentres, a sabiendas de que "eso es lo que hay". Te consolarás con objetos como tu iPhone y tu ropa de marca, fabricados por gente que, en condiciones peores que las tuyas, ya asumió hace tiempo que "eso es lo que hay". Finalmente, sucumbiendo a la hipocresía del sistema, harás caso omiso de otras realidades, autojustificándote con un "bastante tengo con lo mío".</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Y así, poco a poco, gracias al individualismo del "sálvese quien pueda" y a los efectos de felicidad efímera que aporta el consumismo, contribuirás a que los que realmente deciden que es "lo que hay" sean más libres, mientras tú, paso a paso, eres un poco más esclavo. Pero si lees esto puedes estar tranquilo, afortunadamente para ti siempre habrá alguien más esclavo que tú.</div>
arsucenohttp://www.blogger.com/profile/03910517809577819985noreply@blogger.com3tag:blogger.com,1999:blog-9124740.post-61249006035438825262011-07-03T22:47:00.009+02:002011-07-05T10:22:59.845+02:00La comunicación horizontal<div style="text-align: justify;">Me resulta sumamente curioso ver en prensa, medios y demás como se hacen comparaciones de todo el tema #15M y ¡Democracia Real Ya! con otros movimientos y revoluciones de la historia. Me resulta curioso porque en muchos de esos análisis se hace mención a las diferencias que existen entre los movimientos actuales y los movimientos del pasado, pero se omiten las novedades. Y desde mi punto de vista, la diferencia a nivel informativo es abismal.</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">Partimos de la base de que no soy historiador. De hecho, soy de ciencias. Pero las nociones de historia que tengo, los libros que he leído, las películas que he visto, etc., suelen plasmar una misma realidad: un gobierno, un rey, un status quo que no satisface a un porcentaje relevante de la población. Y unos medios al servicio del órgano de poder que genera esa insatisfacción. </div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">Entre esos medios, siempre algún periódico o revista revolucionaria, mostrando otra realidad, evitando la censura, publicándose en la sombra. Informando al fin y al cabo. Y en medio de esas dos realidades, una población que es, de un modo u otro, manipulada.</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">Hasta aquí, nada diferente a la situación actual y a la guerra periodística entre unos y otros medios.</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">¿Qué cambia entonces? ¿Cuál es la diferencia abismal? Fácil: Internet en general, y Twitter en particular. Y ojo, no estoy diciendo nada que no se haya dicho antes, pero parece que algunos no se dan cuenta aun. En general, la comunicación ha cambiado, la incalculable cantidad de información que circula por Internet implica que periodistas, políticos y ciudadanos en general tengan que, en mayor o menor medida, estar al corriente de lo que sucede en la red. Como pasa ante cualquier tipo de evolución, hay gente más reacia al cambio. Pero imagino que también hubo reacios a ver la televión o a usar el teléfono. Y en particular, la comunicación ya no es vertical. De hecho, es menos vertical que nunca.</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">Antes podías estar en desacuerdo con la publicación de un periodista. E incluso podías enviar una carta al director. Pero que fuese o no publicada era algo que escapaba a tu control. Y obviamente, en un medio manipulador, es difícil publicar algo crítico. A día de hoy eso ya no es así. El periodista que haya escrito un artículo probablemente estará en Twitter. Y si no lo está, llega tarde. Eso te permite escribir una crítica y hacer que todos sus seguidores la vean. De hecho, puedes escribir una crítica y estar seguro de qué, si tiene fundamento, esa crítica será leída por una cantidad gente superior a la que leyó el artículo original. No solo eso, sino que probablemente des pie a que el periodista tenga que hacer una rectificación sino quiere ver su credibilidad en entredicho. Si le ha sucedido a Telemadrid, le puede suceder a cualquiera.</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">Dicho todo esto, es hora de que los medios despierten. La búsqueda del enfrentamiento mediante la manipulación está condenada a desaparecer, pues la información ya no es cosa de unos pocos. El medio que siga en esa línea está abocado al fracaso. Porque ahora cualquiera puede generar información, aportando incluso su propio material multimedia. Por tanto, la transparencia, tarde o temprano, tiene que primar. Y un mundo transparente conduce, irremediablemente, a un mundo más justo. Pero esa es otra historia.</div>arsucenohttp://www.blogger.com/profile/03910517809577819985noreply@blogger.com0