El humor en la programacion

Ya una vez escribi sobre el humor en la programacion. Pero esta vez me lo encuentro en persona. Mientras estaba yo toqueteando un script PHP (Cosa que me encanta!). Me encontre con algo interesante:

foreach(array('friendmail1','friendmail2',
'friendmail3','email','name') as $key)
$_POST[$key] = strip_tags($_POST[$key]);
if(!is_secure($_POST)) {
die("Hasta la vista Hacker");}

Una cosa, el creardor del script, de habla inglesa, puso Asta la vista Hacker, me tome el atrevimiento de corregirlo.

Poner thumbnails en directorios PHPLD

Al día de hoy tengo tres directorios montados. El principal es Plusdoo, un directorio general. En ese directorio quería poner thumbnails de las paginas que linkeaba. Pero la mayoría de las soluciones que encontraba era bastante laboriosas,

Para lograrlo me puse a investigar un script de intercambios automáticos de enlaces que encontré por ahí. En ese script se muestran los thhumbnails tal como yo lo quería.

Con un par de clicks me encontré con que esas imágenes tienen una url así: http://open.thumbshots.org/image.pxf?url= y despues del = la url de la pagina.

Por ejemplo para este blog quedaría así: http://open.thumbshots.org/image.pxf?url=http://ferticidio.com lo que nos da una imagen como la del costado de este párrafo.

Ahora solo me quedaba buscar la forma de poner esas imágenes en los listados de paginas que había en el directorio. Pensé que iba a ser muy complicado pero no fue así. Solo hubo que usar un poco la imaginación.

En las plantillas (o templates) de PHPLD hay un archivo que es el encargado de mostrar los enlaces: links.tpl

El contenido integro de este archivo es:

{strip}
<table><tr>
{* show page rank *}
{if $smarty.const.SHOW_PAGERANK}
   <td>
      {include file="pagerank.tpl" pr=$link.PAGERANK}
   </td>
{/if}

<td>
   <a id="id_{$link.ID}" href="{$link.URL|escape|trim}"title="{$link.TITLE|escape|trim}"
      {* nofollow *}
      {if $link.NOFOLLOW or ($link.RECPR_VALID eq 0 and ($smarty.const.RECPR_NOFOLLOW eq 2 or ($smarty.const.RECPR_NOFOLLOW eq 1 and $link.RECPR_REQUIRED eq 1)))} rel="nofollow"{/if}
      {if $smarty.const.ENABLE_BLANK} target="_blank"{/if}>
      {$link.TITLE|escape|trim}</a> <span class="url">- {$link.URL|escape|trim}</span>

      <p>{$link.DESCRIPTION|escape|trim}</p>
</td>
</tr></table>
{/strip}

la parte que nos interesa es la primer celda. La que dice:

<td>
   {include file="pagerank.tpl" pr=$link.PAGERANK}
</td>

Pagerank.tpl es un archivo que se encarga de poner la barrita verde con el PR de sitio. Yo en vez de eso quería poner la imagen. Pero para poner esa imagen necesitaba la url del sitio. Que investigando un poco me encontré con que en ese archivo se usa este código para mostrarlo: {$link.URL|escape|trim}

Con eso ya estaba listo para armar el nuevo archivo que quedo de la siguiente forma:

{strip}
<table><tr>
{* show page rank *}
{if $smarty.const.SHOW_PAGERANK}
   <td>
   <img src="http://open.thumbshots.org/image.pxf?url={$link.URL|escape|trim}" />
   </td>
{/if}

<td>
  <a id="id_{$link.ID}" href="{$link.URL|escape|trim}" title="{$link.TITLE|escape|trim}"
      {* nofollow *}
      {if $link.NOFOLLOW or ($link.RECPR_VALID eq 0 and ($smarty.const.RECPR_NOFOLLOW eq 2 or ($smarty.const.RECPR_NOFOLLOW eq 1 and $link.RECPR_REQUIRED eq 1)))} rel="nofollow"{/if}
      {if $smarty.const.ENABLE_BLANK} target="_blank"{/if}>
      {$link.TITLE|escape|trim}</a> <span class="url">- {$link.URL|escape|trim}</span>

      <p>{$link.DESCRIPTION|escape|trim}</p>
      {include file="pagerank.tpl" pr=$link.PAGERANK}
</td>
</tr></table>
{/strip}

Y con eso ya pude mostrar los thumnails en el directorio sin necesidad de nada mas. Solo un par de líneas. Habría que editar un poco mas, por ejemplo el “if” de mostrar el PR pero como siempre lo voy a mostrar lo voy a dejar así.

Ah otra cosa, la barrita verde ahora se muestra después de la descripción de sitio.

Pueden ver el resultado en Plusdoo.

Mis dotes con PHP

Con Camilo tenemos varias webs, creo que ya les conte. Entre ellas esta Presupuestos de Reformas. Una pagina para contactar a las personas con empresas que puedan hacerle un presupuesto de su reforma sin ningun costo.

Bien, esta pagina era una pagina estatica en HTML. Y queriamos agregarle secciones con las provincias y las ciudades mas importantes de estas provincias. De esta forma logramos ofrecer un mejor servicio y mejoramos mucho el SEO.

El punto es que hacerlo en HTML era un verdadero dolor de huevo. Asi que me meti a hacerlo en PHP. Cree unos cuantos arrays con las provincias, las ciudades… y muchas otras cosas internas de la pagina (Por ejemplo el titulo y las descripciones de las imágenes).

El resultado quedo bastante bien. Por ejemplo esta la pagina de Presupuestos de Reformas en Barcelona, y esta es la de Presupuestos de Reformas en Madrid Capital.

Intente, y mucho, hacer la URLs amigables. Pero el htacess no se dejo. Por lo que quedaron URLs con variables. Pero variables bastante descriptivas no con números y esas cosas.

Comentarios en los codigos

Cuando programo en PHP y se me forman secuencias de if’s bastante largas suelo poner un comentario que una vez encontré en un archivo de WordPress: “Si borras esta línea el cielo caerá sobre nuestras cabezas”. Por lo general esa línea es } (una llave).

Ahora me encontré con gente que hace mejores comentarios en sus programas:

Sinceridad

// estoy borracho, lo arreglo después

Un poco de magia

// Mágico. No tocar.

Por si no se entiende

return 1; //retorna 1

Dios, ayúdanos

// Cuando escribí esto sólo Dios y yo sabíamos lo que hace.
// Ahora, sólo Dios sabe.

Aviso

/*
* Quizás creas que sabés lo que hace esta porción de código.
* Creeme, no lo sabés.
* Si tratás de entenderlo vas a pasar muchos horas sin dormir,
* maldiciendo el momento que pensaste que eras los suficientemente
* inteligente para "optimizar" el siguiente código.
* Así que, cerrá este archivo y andá a jugar con otra cosa.
*/

Arreglo

// no estoy seguro de que esto funcione, pero resuelve el problema

Ah decir verdad el del capitán obvio lo suelo usar bastante.

Vía: El libro gordo de petete.

Rectifico lo anterior, mi FrameWork sera CodeIgniter

ci_logo_flameEsta mañana falte al trabajo. No estaba enfermo ni nada por el estilo. Pero tenia un cansancio acumulado de varias semanas y tomarme un día me vino re bien. Después de dormir hasta tarde y desayunar unos mates me puse a la tarea de hacer funcionar Symfony. Me fue imposible.

Por mas que le daba vuelta al asunto no pude hacerlo funcionar como corresponde. Me calenté tanto que me instale otro FrameWork: CakePHP… no me fue mucho mejor. Si Logre instalarlo y hasta tratar de hacer algo. Pero no logre nada en concreto. Mi tercer intento fue CodeIgniter y ahí las cosas mejoraron mucho.

En unas tres horas mas o menos leí un poco la documentación y logre hacer una pseudoaplicacion que se conecta a una base de datos. No mucho lo suficiente como para mostrar los datos que hay en la base de datos y como para ingresar esos datos. Nada mas si estuviera en la web cualquier persona podría publicar cualquier cosa que quiera. Pero es algo funcional, así que estoy contento.

Por lo que estoy viendo CodeIgniter es muy sencillo de usar. Solo hay que acostumbrarse a la forma de hacer las cosas (que en realidad en la mayoría de estos Framworks es igual). El famoso MVC Modelo Vista Controlador. Mas adelante cuando le agarre la mano bien seguramente haga algun post sobre este punto.