<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8645810976462506895</id><updated>2011-11-27T15:37:49.598-08:00</updated><category term='citas'/><category term='musica'/><category term='trucos'/><category term='frases'/><category term='sql'/><category term='desarrollo Web'/><category term='papiroflexia'/><category term='programacion'/><category term='wii'/><category term='Fotografia'/><category term='cakePHP'/><category term='series'/><category term='eternity'/><category term='mods'/><title type='text'>Guadonpost</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://guadonpost.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645810976462506895/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://guadonpost.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Guadonpost</name><uri>http://www.blogger.com/profile/17069548603650399633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8645810976462506895.post-1987293804781633794</id><published>2008-04-03T14:41:00.000-07:00</published><updated>2008-12-11T10:01:47.846-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='musica'/><title type='text'>Echoes, Silence, Patience &amp; Grace</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BkQH-GzMXes/R_VRfd7SXgI/AAAAAAAAAC0/HKP7YuRhVTU/s1600-h/espg_150.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BkQH-GzMXes/R_VRfd7SXgI/AAAAAAAAAC0/HKP7YuRhVTU/s320/espg_150.jpg" alt="" id="BLOGGER_PHOTO_ID_5185140147038084610" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Aunque el disco lleva a la venta desde Octubre del año pasado, no me entere hasta hace mas bien poco que Foo Fighters tenia nuevo disco. Como siempre las canciones son geniales, pero quiero destacar una de ellas, entre otras cosas porque me siento ligado con lo que representa.&lt;br /&gt;Podéis escucharla aquí [&lt;a href="http://www.last.fm/music/Foo+Fighters/_/Home"&gt;last fm&lt;/a&gt;] y aquí tenéis la letra:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;Home - &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Echoes, Silence, Patience &amp;amp; Grace&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Wish I were with you but I couldn't stay&lt;/span&gt; &lt;span style="font-style: italic;"&gt;&lt;br /&gt;Every direction leads me away&lt;/span&gt; &lt;span style="font-style: italic;"&gt;&lt;br /&gt;Pray for tomorrow but for today&lt;/span&gt; &lt;span style="font-style: italic;"&gt;&lt;br /&gt;All I want is to be home&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Stand in the mirror,  you look the same&lt;/span&gt; &lt;span style="font-style: italic;"&gt;&lt;br /&gt;Just lookin' for shelter from cold and the pain&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Someone to cover, safe from the rain&lt;/span&gt; &lt;span style="font-style: italic;"&gt;&lt;br /&gt;All I want is to be home&lt;/span&gt;  &lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;Echoes and silence, Patience and Grace&lt;/span&gt; &lt;span style="font-style: italic;"&gt;&lt;br /&gt;All of these moments I'll never replace&lt;/span&gt; &lt;span style="font-style: italic;"&gt;&lt;br /&gt;No fear of my heart, absence of faith&lt;/span&gt; &lt;span style="font-style: italic;"&gt;&lt;br /&gt;All I want is to be home&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;All I want is to be home&lt;/span&gt;  &lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;People I've loved, I have no regrets&lt;/span&gt; &lt;span style="font-style: italic;"&gt;&lt;br /&gt;Some I remember, some I forget&lt;/span&gt; &lt;span style="font-style: italic;"&gt;&lt;br /&gt;Some of them living, some of them dead&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;All I want is to be home&lt;br /&gt;&lt;br /&gt;by&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;a href="http://www.foofighters.com/"&gt;Foo Fighters&lt;/a&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645810976462506895-1987293804781633794?l=guadonpost.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://guadonpost.blogspot.com/feeds/1987293804781633794/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8645810976462506895&amp;postID=1987293804781633794' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645810976462506895/posts/default/1987293804781633794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645810976462506895/posts/default/1987293804781633794'/><link rel='alternate' type='text/html' href='http://guadonpost.blogspot.com/2008/04/echoes-silence-patience-grace.html' title='Echoes, Silence, Patience &amp; Grace'/><author><name>Guadonpost</name><uri>http://www.blogger.com/profile/17069548603650399633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_BkQH-GzMXes/R_VRfd7SXgI/AAAAAAAAAC0/HKP7YuRhVTU/s72-c/espg_150.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645810976462506895.post-3623504312391454169</id><published>2008-02-27T09:34:00.000-08:00</published><updated>2008-03-03T12:25:02.322-08:00</updated><title type='text'>¿Porque le aplauden al piloto al aterrizar?</title><content type='html'>¿Y porque c... nadie me aplaude a mi cuando arreglo un ordenador?&lt;br /&gt;&lt;br /&gt;Actualizado: Yo a este le aplaudo y le toco las castañuelas si le hace falta.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ueJeC2pxxbM&amp;rel=1&amp;border=0"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/ueJeC2pxxbM&amp;rel=1&amp;border=0" type="application/x-shockwave-flash" wmode="transparent"width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645810976462506895-3623504312391454169?l=guadonpost.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://guadonpost.blogspot.com/feeds/3623504312391454169/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8645810976462506895&amp;postID=3623504312391454169' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645810976462506895/posts/default/3623504312391454169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645810976462506895/posts/default/3623504312391454169'/><link rel='alternate' type='text/html' href='http://guadonpost.blogspot.com/2008/02/porque-le-aplauden-al-piloto-al.html' title='¿Porque le aplauden al piloto al aterrizar?'/><author><name>Guadonpost</name><uri>http://www.blogger.com/profile/17069548603650399633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645810976462506895.post-5719311637758373010</id><published>2008-02-09T15:44:00.000-08:00</published><updated>2008-12-11T10:01:50.176-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mods'/><category scheme='http://www.blogger.com/atom/ns#' term='wii'/><title type='text'>Guitarra Les Pauls, homenaje a los piratas</title><content type='html'>Con esto de la fiebre y el arresto domiciliario impuesto por el medico no tengo otra cosa mejor que ponerme a pintarrajear la guitarra de la wii. Aqui os dejo las fotos del proceso de transformación.&lt;br /&gt;&lt;br /&gt;- Pruebas de color por el anverso.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BkQH-GzMXes/R65Ci8EcogI/AAAAAAAAAB0/V534tMLL83U/s1600-h/DSCF5345.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_BkQH-GzMXes/R65Ci8EcogI/AAAAAAAAAB0/V534tMLL83U/s320/DSCF5345.JPG" alt="" id="BLOGGER_PHOTO_ID_5165138990648304130" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;- Posicionando las pegatinas en el carcasa.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BkQH-GzMXes/R65EC8EcohI/AAAAAAAAAB8/s5gCeJUCgVw/s1600-h/DSCF5349.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_BkQH-GzMXes/R65EC8EcohI/AAAAAAAAAB8/s5gCeJUCgVw/s320/DSCF5349.JPG" alt="" id="BLOGGER_PHOTO_ID_5165140639915745810" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;- Pintando de rojo.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BkQH-GzMXes/R65FdMEcoiI/AAAAAAAAACE/PniUq6lIgAU/s1600-h/DSCF5352.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_BkQH-GzMXes/R65FdMEcoiI/AAAAAAAAACE/PniUq6lIgAU/s320/DSCF5352.JPG" alt="" id="BLOGGER_PHOTO_ID_5165142190398939682" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;- Pegado de las pegatinas.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BkQH-GzMXes/R65HP8EcojI/AAAAAAAAACM/_yKlDvftkJ4/s1600-h/DSCF5355.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_BkQH-GzMXes/R65HP8EcojI/AAAAAAAAACM/_yKlDvftkJ4/s320/DSCF5355.JPG" alt="" id="BLOGGER_PHOTO_ID_5165144161788928562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;- Recorte y vaciado de las pegatinas.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BkQH-GzMXes/R65NPsEcolI/AAAAAAAAACc/pw3ccXtemcQ/s1600-h/DSCF5357.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_BkQH-GzMXes/R65NPsEcolI/AAAAAAAAACc/pw3ccXtemcQ/s320/DSCF5357.JPG" alt="" id="BLOGGER_PHOTO_ID_5165150754563727954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;- Pintando de negro.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BkQH-GzMXes/R65NQMEcomI/AAAAAAAAACk/s9ue_w-9rQ8/s1600-h/DSCF5362.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_BkQH-GzMXes/R65NQMEcomI/AAAAAAAAACk/s9ue_w-9rQ8/s320/DSCF5362.JPG" alt="" id="BLOGGER_PHOTO_ID_5165150763153662562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;- Retirando las pegatinas.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BkQH-GzMXes/R65NQ8EconI/AAAAAAAAACs/PEeP622pkFc/s1600-h/DSCF5364.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_BkQH-GzMXes/R65NQ8EconI/AAAAAAAAACs/PEeP622pkFc/s320/DSCF5364.JPG" alt="" id="BLOGGER_PHOTO_ID_5165150776038564466" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;- Y por fin el resultado final.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BkQH-GzMXes/R65K2sEcokI/AAAAAAAAACU/kTqvXC-cY94/s1600-h/DSCF5367.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_BkQH-GzMXes/R65K2sEcokI/AAAAAAAAACU/kTqvXC-cY94/s320/DSCF5367.JPG" alt="" id="BLOGGER_PHOTO_ID_5165148126043742786" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;La guitarra esta mucho mas chula... pero yo sigo siendo igual de malo en el juego :P&lt;br /&gt;&lt;br /&gt;Para los sacrilegos que no conozcan a los piratas, os dejo un par de links [&lt;a href="http://es.wikipedia.org/wiki/Los_Piratas"&gt;Wikipedia&lt;/a&gt;] [&lt;a href="http://www.lospiratas.org/"&gt;Pagina Oficial&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645810976462506895-5719311637758373010?l=guadonpost.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://guadonpost.blogspot.com/feeds/5719311637758373010/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8645810976462506895&amp;postID=5719311637758373010' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645810976462506895/posts/default/5719311637758373010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645810976462506895/posts/default/5719311637758373010'/><link rel='alternate' type='text/html' href='http://guadonpost.blogspot.com/2008/02/guitarra-les-pauls-homenaje-los-piratas.html' title='Guitarra Les Pauls, homenaje a los piratas'/><author><name>Guadonpost</name><uri>http://www.blogger.com/profile/17069548603650399633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_BkQH-GzMXes/R65Ci8EcogI/AAAAAAAAAB0/V534tMLL83U/s72-c/DSCF5345.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645810976462506895.post-7158535737449291004</id><published>2008-01-30T15:49:00.000-08:00</published><updated>2008-01-30T15:55:48.988-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wii'/><title type='text'>Tocando la bateria con el Wiimote</title><content type='html'>&lt;object id="FiveminPlayer" height="345" width="425"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;param name="movie" value="http://www.5min.com/Embeded/930976/"&gt;&lt;embed src="http://www.5min.com/Embeded/930976/" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" height="345" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;Genial esta nueva aplicación del Wiimote. Al parecer utiliza el software [&lt;a href="http://carl.kenner.googlepages.com/glovepie"&gt;GlovePie&lt;/a&gt;] para mapear los movimientos del mando con las teclas de su programa para música preferido (que aun no se cual es).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645810976462506895-7158535737449291004?l=guadonpost.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://guadonpost.blogspot.com/feeds/7158535737449291004/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8645810976462506895&amp;postID=7158535737449291004' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645810976462506895/posts/default/7158535737449291004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645810976462506895/posts/default/7158535737449291004'/><link rel='alternate' type='text/html' href='http://guadonpost.blogspot.com/2008/01/tocando-la-bateria-con-el-wiimote.html' title='Tocando la bateria con el Wiimote'/><author><name>Guadonpost</name><uri>http://www.blogger.com/profile/17069548603650399633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645810976462506895.post-7963031653256621282</id><published>2008-01-23T11:57:00.000-08:00</published><updated>2008-12-11T10:01:50.457-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='papiroflexia'/><title type='text'>Avioncitos de papel</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BkQH-GzMXes/R5ecocILzPI/AAAAAAAAABU/gMKGuKVHNnw/s1600-h/monje_imgppal.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BkQH-GzMXes/R5ecocILzPI/AAAAAAAAABU/gMKGuKVHNnw/s400/monje_imgppal.gif" alt="" id="BLOGGER_PHOTO_ID_5158764116735413490" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Acabo de descubrir en esta web [&lt;a href="http://www.avioncitosdepapel.com/"&gt;avioncitosdepapel&lt;/a&gt;] que se puede hacer un avión con forma de tubo. No se como volara, pero yo voy a ponerme "¡manos a la obra!"&lt;br /&gt;&lt;br /&gt;via, el archivo de [&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;a href="http://www.cuartoderecha.com/"&gt;4ºD&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645810976462506895-7963031653256621282?l=guadonpost.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://guadonpost.blogspot.com/feeds/7963031653256621282/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8645810976462506895&amp;postID=7963031653256621282' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645810976462506895/posts/default/7963031653256621282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645810976462506895/posts/default/7963031653256621282'/><link rel='alternate' type='text/html' href='http://guadonpost.blogspot.com/2008/01/avioncitos-de-papel.html' title='Avioncitos de papel'/><author><name>Guadonpost</name><uri>http://www.blogger.com/profile/17069548603650399633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_BkQH-GzMXes/R5ecocILzPI/AAAAAAAAABU/gMKGuKVHNnw/s72-c/monje_imgppal.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645810976462506895.post-6680803322241312704</id><published>2007-08-09T07:50:00.001-07:00</published><updated>2008-12-11T10:01:50.787-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fotografia'/><title type='text'>El Acueducto de Segovia</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BkQH-GzMXes/RrsqOccFMOI/AAAAAAAAAAU/cFZictEh_AM/s1600-h/DSCF3386.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_BkQH-GzMXes/RrsqOccFMOI/AAAAAAAAAAU/cFZictEh_AM/s400/DSCF3386.JPG" alt="" id="BLOGGER_PHOTO_ID_5096713830940356834" border="0" /&gt;&lt;/a&gt;Segovia es una ciudad bulliciosa, como en cualquier otra, coches, niños, y paseantes llenan sus calles de vida y caos. Filas de japoneses cargados con sus cámaras y ropas estrafalarias nos hacen recordar que también somos extraños en aquel lugar. Sus antiguos restaurantes despiden un exquisito olor a carne recién hecha que llama nuestra atención, más tarde tendremos que visitarlos.&lt;br /&gt;&lt;br /&gt;Mientras caminamos, vamos buscamos en el cielo una señal que nos indique donde se encuentra el edificio que estamos buscando. Poco a poco, al recorrer la calle, aparece ante nosotros el enorme acueducto. Una mole piedra cargada de energía que da la sensación de haber sido colocada allí sin tener el cuenta el resto de edificio. Como si fuera un ‘collage’, da la sensación de no encajar con lo que le rodea. Pero transmite al observador una gran fuerza al contemplarlo&lt;br /&gt;&lt;br /&gt;Dice la leyenda que los constructores del acueducto no fueron los romanos, sino la pereza de una joven aguadora, harta de arrastrar el cántaro por las empinadas calles de la ciudad, llegó a un pacto con el diablo: el  se quedaría con el alma de la mujer si, antes de que cantara el gallo, el agua llegaba hasta la puerta de su casa. Cuando cayó la noche, una gran tormenta se cernió sobre la ciudad. Sólo la muchacha sabía que no era una simple tormenta, sino el mismo diablo cumpliendo lo que ella le había pedido. Sin embargo, se arrepintió y rezó hasta la extenuación para evitar el cumplimiento del pacto. De pronto, el &lt;br /&gt;gallo cantó y el Maligno se dio cuenta de que, por una sola piedra sin colocar, había perdido el alma.&lt;br /&gt;&lt;br /&gt;La muchacha confesó su culpa ante los segovianos que, tras rociar con agua bendita los arcos para eliminar el rastro de azufre, aceptaron felices el nuevo perfil de la ciudad. Convencidos de que había sido un milagro que la muchacha escapara de las garras del diablo, se ordenó colocar una imagen de la virgen y de San Esteban en las hornacinas del acueducto.&lt;br /&gt;&lt;br /&gt;Aun así, se dice que en las piedras todavía quedan las marcas de los dedos del maligno como testigo de su obra.&lt;br /&gt;&lt;br /&gt;[Fuente: &lt;a href="http://es.wikipedia.org/wiki/Acueducto_de_Segovia"&gt;Wikipedia&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645810976462506895-6680803322241312704?l=guadonpost.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://guadonpost.blogspot.com/feeds/6680803322241312704/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8645810976462506895&amp;postID=6680803322241312704' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645810976462506895/posts/default/6680803322241312704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645810976462506895/posts/default/6680803322241312704'/><link rel='alternate' type='text/html' href='http://guadonpost.blogspot.com/2007/08/el-acueducto-de-segovia.html' title='El Acueducto de Segovia'/><author><name>Guadonpost</name><uri>http://www.blogger.com/profile/17069548603650399633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_BkQH-GzMXes/RrsqOccFMOI/AAAAAAAAAAU/cFZictEh_AM/s72-c/DSCF3386.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645810976462506895.post-5900154000225298601</id><published>2007-05-18T05:34:00.000-07:00</published><updated>2007-05-18T05:36:02.426-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='programacion'/><category scheme='http://www.blogger.com/atom/ns#' term='trucos'/><title type='text'>Numero de campos con valor null en una tabla</title><content type='html'>Me surgió el problema de que tenia que contar el numero de campos con valores null en una tabla y se me ocurrió este pequeño truco:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;selec&lt;br /&gt; (isnull(cast(campo1 as int) * 0 ,1)) +&lt;br /&gt; (isnull(cast(campo2 as int) * 0 ,1)) +&lt;br /&gt; (isnull(cast(campo3 as int) * 0 ,1)) +&lt;br /&gt; (isnull(cast(campo4 as int) * 0 ,1)) as numeroDeNulls&lt;br /&gt;from miTabla&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Esto se pude hacer si los campos son datetime o numéricos, en el caso de cadenas hay que cambiarlos a:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt; (isnull(len(ltrim(rtrim(campo1)))) *  0 ,1)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Que ademas nos cuenta como nula la cadena vacía ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645810976462506895-5900154000225298601?l=guadonpost.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://guadonpost.blogspot.com/feeds/5900154000225298601/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8645810976462506895&amp;postID=5900154000225298601' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645810976462506895/posts/default/5900154000225298601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645810976462506895/posts/default/5900154000225298601'/><link rel='alternate' type='text/html' href='http://guadonpost.blogspot.com/2007/05/numero-de-campos-con-valor-null-en-una.html' title='Numero de campos con valor null en una tabla'/><author><name>Guadonpost</name><uri>http://www.blogger.com/profile/17069548603650399633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645810976462506895.post-2194218548698494144</id><published>2007-05-08T14:15:00.000-07:00</published><updated>2007-05-28T10:35:18.970-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programacion'/><category scheme='http://www.blogger.com/atom/ns#' term='eternity'/><title type='text'>Eternity II, el juego de los 2M$</title><content type='html'>&lt;p&gt;En el mes de Julio sale a la venta sale un nuevo juego, Eternity II, que puede hacerte ganar mucho dinero o perder el tiempo. &lt;/p&gt;Esta compuesto por un tablero de 16x16 cuadrados de lado y 256 fichas. Cada una de ellas tiene cuadro lados de colores en los que hay dibujada una figura. No se sebe el numero de colores ni de figuras aunque se estima que cada ficha es diferente. Para solucionarlo hay que colocar las 256 fichas en el tablero de manera que las  fichas adyacentes contengan en los lados que quedan pegados la misma figura y color. Las fichas pueden rotarse y solo contienen dibujo por una de sus caras.&lt;br /&gt;&lt;p&gt;  Existen 56 fichas con un lado gris, cuya posición en el tablero esta restringida a los bordes y 4 fichas con 2 lados grises q forman las esquinas.&lt;/p&gt;Al parecer la solución es única (que me permito dudarlo) y habrá un total de 3 pistas, 2 fichas de las que nos indicaran su posición tras resolver los puzzles de 6x6 y 6x12 y una que ya viene dada.&lt;br /&gt;&lt;p&gt;  Podéis encontrar mas información en la pagina web oficial y en algunas otras relacionadas &lt;a href="http://www.eternityii.com/"&gt;[web oficial]&lt;/a&gt;&lt;a href="http://www.microsiervos.com/archivo/puzzles-y-rubik/eternity-ii-puzzle.html"&gt; [noticia en microsiervos]&lt;/a&gt; &lt;a href="http://mathpuzzle.com/eternity.html"&gt;[solucion de eternity I]&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;La aproximación más sencilla para resolver el puzzle parece a simple vista utilizando un ordenador, aunque generar todas las posibles combinaciones de fichas en el tablero podría llevar años con un supercomputador. Así que como primera aproximación al algoritmo de resolución propongo los siguientes pasos:&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Generar los posibles laterales del puzzle utilizando un algoritmo de vuelta atrás (backtracking) cuyo esquema general seria el siguiente: &lt;/p&gt;&lt;br /&gt;&lt;pre&gt;PRODEDURE ResuelveLateral(tablero)&lt;br /&gt; REPEAT&lt;br /&gt;  SeleccionarNuevaFichaGiro&lt;br /&gt;  IF Valida THEN&lt;br /&gt;   AnotarFichaGiro&lt;br /&gt;   IF NOT LateralCompleto THEN&lt;br /&gt;    ResuelveLateral(tablero_siguiente)&lt;br /&gt;    CancelarAnotacion&lt;br /&gt;   ELSE&lt;br /&gt;    AlmacenarSolucion&lt;br /&gt;   END&lt;br /&gt;  END&lt;br /&gt; UNTIL (ultimaFichaGiro)&lt;br /&gt;END resuelveLateral&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Basado en los ejemplos del libro de la asignatura Análisis y Diseño de Algoritmos (una de mis favoritas): "Técnicas de diseño de algoritmos, Rosa Guerequeta García y Antonio Vallecillo Moreno, Universidad de Málaga"&lt;/em&gt;&lt;br /&gt;&lt;p&gt;Una vez generados todos los posibles laterales del puzzle tratar de resolver un cuadrado de pequeñas dimensiones (8x8) formado por la única ficha conocida y todos los posibles laterales, para un cuadrado de 8x8 (que hemos generado previamente).&lt;/p&gt;El algoritmo de resolución de este cuadrado sigue el esquema del anterior pero seria un poco mas complejo.&lt;br /&gt;&lt;p&gt;Una vez calculados todos los posibles cuadrados volveríamos a realizar el algoritmo para el resto de cuadrados (cuadrantes del puzzle), partiendo como base de todas las posibilidades ya generadas.&lt;/p&gt;La división del problema (cuadrado de 16x16) en problemas mas pequeños (cuadrados de 8x8)  nos permitiría una resolución distribuida del problema, pudiendo utilizar varios miles ordenadores para resolver el problema, algo parecido al programa SETI@HOME. Aunque con tanto dinero de por medio, habría mas problemas que soluciones.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645810976462506895-2194218548698494144?l=guadonpost.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://guadonpost.blogspot.com/feeds/2194218548698494144/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8645810976462506895&amp;postID=2194218548698494144' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645810976462506895/posts/default/2194218548698494144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645810976462506895/posts/default/2194218548698494144'/><link rel='alternate' type='text/html' href='http://guadonpost.blogspot.com/2007/05/eternity-ii-el-juego-de-los-2m.html' title='Eternity II, el juego de los 2M$'/><author><name>Guadonpost</name><uri>http://www.blogger.com/profile/17069548603650399633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645810976462506895.post-433145661081743131</id><published>2007-03-19T10:09:00.000-07:00</published><updated>2007-03-19T10:34:50.624-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cakePHP'/><category scheme='http://www.blogger.com/atom/ns#' term='desarrollo Web'/><category scheme='http://www.blogger.com/atom/ns#' term='programacion'/><title type='text'>Paginacion con cakePHP 1.2</title><content type='html'>&lt;p&gt;Aunque salio hace ya algun tiempo, a  principios de febrero, acabo de empezar a probar cakePHP 1.2, la nueva versión  de este framework que por fin incluye algunas de las funcionalidades mas  demandas. Las novedades son:&lt;/p&gt;&lt;br /&gt;&lt;ul type="disc"&gt;&lt;br /&gt;&lt;li&gt;Nuevos validadores &lt;/li&gt;&lt;br /&gt;&lt;li&gt;FormHelper mejorado y extendido &lt;/li&gt;&lt;br /&gt;&lt;li&gt;EmailComponent &lt;/li&gt;&lt;br /&gt;&lt;li&gt;SecurityComponent: Ahora con soporte para HTTP_AUTH a través de la variable $requireLogin.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Nuevo formato CTP que sustituye al thtml&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Paginación &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Extensiones Url &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Model Behaviors &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Datasources &lt;/li&gt;&lt;br /&gt;&lt;li&gt;i18N y l10N: Localizacion e Internacionalización&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;Podéis encontrar una definición un poco  mas detallada en &lt;a href="http://quarkblog.org/2006/12/25/primera-technical-preview-de-cakephp-12/"&gt;quarkblog&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;De todas estas las que mas me han  interesado han sido la paginación (la echaba en falta después de trabajar con  .net) y la   internacionalización. Deseoso de probarlas busque  documentación al respecto y no he encontrado nada, o prácticamente nada en  Español y muy escasos documentos en Ingles.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Asi que aquí dejo un pequeño tutorial sobre paginación en cakePHP. Lo primero de todo es descargar esta versión desde &lt;a href="http://cakeforge.org/frs/?group_id=23&amp;release_id=180"&gt;cakeforge&lt;/a&gt;  y configurar la base de datos. (Supongo que se sabe como instalar y configurar cakePHP, por si acaso:[&lt;a href="http://www.faq-mac.com/bitacoras/mmm/?p=168"&gt;1&lt;/a&gt;] [&lt;a href="http://www.serialblogger.com.ar/2006/06/tutorial-creando-un-blog-con-cakephp/"&gt;2&lt;/a&gt;] [&lt;a href="http://gabinetedeinformatica.net/wp15/2006/08/26/cakephp-instalacion-de-este-framework-para-empezar-a-trastear/"&gt;3&lt;/a&gt;])&lt;/p&gt;&lt;br /&gt;&lt;p&gt;También crearemos una tabla de ejemplo  e insertaremos algunos datos:&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;CREATE TABLE `posts` (&lt;br /&gt;  `id` int(5) NOT NULL  auto_increment,&lt;br /&gt;  `title` varchar(255)  collate latin1_general_ci NOT NULL default '',&lt;br /&gt;  `content` text  collate latin1_general_ci NOT NULL,&lt;br /&gt;  `created` datetime  default NULL,&lt;br /&gt;  `modified` datetime  default NULL,&lt;br /&gt;  PRIMARY KEY  (`id`)&lt;br /&gt;);&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;INSERT INTO `posts` VALUES (1, 'Titulo del post 1 ',  'Contenido del post 1', '2007-03-18 23:07:58', '2007-03-18 23:07:58');&lt;br /&gt;INSERT INTO `posts` VALUES (2, 'Titulo del post 2',  'Contenido del post 2', ' 2007-03-18 23:06:57', '2007-03-18 23:06:57');&lt;br /&gt;INSERT INTO `posts` VALUES (3, 'Titulo del post 3',  'Contenido del post 3',  '2007-03-18  23:08:19', '2007-03-18 23:08:19');&lt;br /&gt;INSERT INTO `posts` VALUES (4, 'Titulo  del post 4 ', 'Contenido del post 4', '2007-03-18 23:07:58', '2007-03-18  23:07:58');&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Creamos el modelo y el controlador,  usando scaffolding para no complicarnos mucho.&lt;/p&gt;&lt;br /&gt;&lt;p style="font-weight: bold;"&gt;/app/models/post.php&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;            class Post  extends AppModel&lt;br /&gt;            {&lt;br /&gt;                        var  $name = 'Post';&lt;br /&gt;            }&lt;/pre&gt;&lt;br /&gt;&lt;p style="font-weight: bold;"&gt;/app/controllers/post_controller.php&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;            class  PostsController extends AppController&lt;br /&gt;            {&lt;br /&gt;                        var  $name = 'Posts';&lt;br /&gt;                        var  $scaffold;&lt;br /&gt;                     &lt;br /&gt;                        var $helpers = array('Html','Paginator'); // estos los  usaremos mas adelante.&lt;br /&gt;            }&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Una vez hecho esto podemos observar en  nuestro equipo que &lt;a href="http://localhost/tutorial/post/"&gt;http://localhost/tutorial/post/&lt;/a&gt; ya incluye la   paginación. Lo único que haremos será reescribir el método  ‘index’ con las mismas funcionalidades para aprender como realizar esta.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Añadimos al fichero  ‘&lt;span style="font-weight: bold;"&gt;post_controller.php&lt;/span&gt;’ las siguientes lineas:&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;            function  index()&lt;br /&gt;            {&lt;br /&gt;                        $this-&amp;gt;set('data',  $this-&amp;gt;paginate());&lt;br /&gt;            }&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;¿Hay una manera mas sencilla de paginar  los registros? $this-&amp;gt;paginate() realiza la misma funcion que findAll() pero  paginando los registros.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Y creamos la vista ‘&lt;span style="font-weight: bold;"&gt;posts/index.ctp&lt;/span&gt;’  que se encargara de mostrar la información.&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;&amp;lt;h2&amp;gt;Listado de Posts&amp;lt;/h2&amp;gt;&lt;br /&gt;&amp;lt;p&amp;gt;&amp;lt;?php  echo $paginator-&amp;gt;counter(array('format' =&amp;gt; 'Pagina %page% de %pages%,  mostrando %current% registros de %count%')); ?&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;&amp;lt;p&amp;gt;&amp;lt;?php  echo 'Ordenado por:'. $paginator-&amp;gt;  sortKey()  . ' ' . $paginator-&amp;gt; sortDir(); ?&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;&amp;lt;table  class="scaffold" cellpadding="0"  cellspacing="0"&amp;gt;&lt;br /&gt;&amp;lt;thead&amp;gt;&lt;br /&gt;      &amp;lt;tr&amp;gt;&lt;br /&gt;            &amp;lt;th&amp;gt;&amp;lt;?php echo  $paginator-&amp;gt;sort('Id','id'); ?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;            &amp;lt;th&amp;gt;&amp;lt;?php echo  $paginator-&amp;gt;sort('Titulo','title'); ?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;            &amp;lt;th&amp;gt;Contenido&amp;lt;/th&amp;gt;&lt;br /&gt;            &amp;lt;th&amp;gt;Acciones&amp;lt;/th&amp;gt;&lt;br /&gt;      &amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;/thead&amp;gt;&lt;br /&gt;&amp;lt;tbody&amp;gt;&lt;br /&gt;&amp;lt;!--&amp;lt;?php  print_r($data); ?&amp;gt;--&amp;gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;      $i = 0;&lt;br /&gt;      if(is_array($data)) {&lt;br /&gt;            foreach ($data as $row) {&lt;br /&gt;               &lt;br /&gt;                  $id = $row['Post']['id'];&lt;br /&gt;                  $title =  $row['Post']['title'];&lt;br /&gt;                  $content =  $row['Post']['content'];&lt;br /&gt;               &lt;br /&gt;                  if($i++ % 2 == 0) {&lt;br /&gt;                        echo '&amp;lt;tr&amp;gt;';&lt;br /&gt;                  } else {&lt;br /&gt;                        echo '&amp;lt;tr  class="altrow"&amp;gt;';&lt;br /&gt;                  }&lt;br /&gt;                  ?&amp;gt;             &lt;br /&gt;                  &amp;lt;td&amp;gt;&lt;br /&gt;                        &amp;lt;?php echo  $html-&amp;gt;link($id, array('action' =&amp;gt; 'view', $id));?&amp;gt;&lt;br /&gt;                  &amp;lt;/td&amp;gt;&lt;br /&gt;                  &amp;lt;td&amp;gt;&lt;br /&gt;                        &amp;lt;?php echo  $html-&amp;gt;link($title, array('action' =&amp;gt; 'view', $id));?&amp;gt;&lt;br /&gt;                  &amp;lt;/td&amp;gt;&lt;br /&gt;                  &amp;lt;td&amp;gt;&lt;br /&gt;                        &amp;lt;?php echo  $html-&amp;gt;link($content, array('action' =&amp;gt; 'view', $id));?&amp;gt;&lt;br /&gt;                  &amp;lt;/td&amp;gt;&lt;br /&gt;                  &amp;lt;td&amp;gt;                 &lt;br /&gt;                        &amp;lt;?php echo  $html-&amp;gt;link('Ver', array('action' =&amp;gt; 'view', $id));?&amp;gt;&lt;br /&gt;                        &amp;lt;?php echo  $html-&amp;gt;link('Editar', array('action' =&amp;gt; 'edit', $id));?&amp;gt;&lt;br /&gt;                        &amp;lt;?php echo  $html-&amp;gt;link('Borrar', array('action' =&amp;gt; 'delete', $id),null,&lt;br /&gt;                        sprintf("¿Estas  seguro de querer borrar el post: '%s'?", $title));?&amp;gt;                     &lt;br /&gt;                  &amp;lt;/td&amp;gt;&lt;br /&gt;            &amp;lt;?php } ?&amp;gt;&lt;br /&gt;            &amp;lt;/tr&amp;gt;&lt;br /&gt;      &amp;lt;?php } ?&amp;gt;&lt;br /&gt;&amp;lt;/tbody&amp;gt;&lt;br /&gt;&amp;lt;/table&amp;gt;&lt;br /&gt;&amp;lt;div  class="paging"&amp;gt;&lt;br /&gt;      &amp;lt;?php echo  $paginator-&amp;gt;prev('&amp;lt;&amp;lt; Anterior', array(), null,  array('class'=&amp;gt;'disabled'));?&amp;gt;&lt;br /&gt; |&lt;br /&gt;      &amp;lt;?php echo  $paginator-&amp;gt;next('Siguiente &amp;gt;&amp;gt;', array(), null,  array('class'=&amp;gt;'disabled'));?&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;div  class="actions"&amp;gt;&lt;br /&gt;      &amp;lt;ul&amp;gt;&lt;br /&gt;            &amp;lt;li&amp;gt;&lt;br /&gt;                  &amp;lt;?php echo  $html-&amp;gt;link('Nuevo Post', array('action' =&amp;gt; 'add')); ?&amp;gt;&lt;br /&gt;            &amp;lt;/li&amp;gt;&lt;br /&gt;      &amp;lt;/ul&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Esta vista esta basada en  cake&lt;span style="font-weight: bold;"&gt;\libs\view\templates\scaffolds\index.thtml &lt;/span&gt;que es la que  usa cakePHP por defecto si definimos la variable $scaffold.&lt;br /&gt;&lt;br /&gt;Lo mas interesante es el uso de las  siguientes funciones:&lt;/p&gt;&lt;br /&gt;&lt;dl&gt;&lt;br /&gt;&lt;dt&gt;&lt;br /&gt;&lt;/dt&gt;&lt;dt&gt;$paginator-&amp;gt;sort(texto_a_mostrar,campo)&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;Crea un enlace gracias al cual podemos  ordenar automaticamente los datos&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;$paginator-&amp;gt;counter(array('format' =&amp;gt; 'Pagina  %page% de %pages%, mostrando %current% registros de %count%'))&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;Permite definir frases mostrando una serie de variables que se detellan a continuacion: &lt;/dd&gt;&lt;br /&gt;&lt;dd&gt;&lt;br /&gt;%page% =&amp;gt; Pagina actual&lt;br /&gt;&lt;br /&gt;%pages% =&amp;gt; Total de paginas&lt;br /&gt;&lt;br /&gt;current% =&amp;gt;  Registros mostrados&lt;br /&gt;&lt;br /&gt;%count% =&amp;gt; Total de  registros&lt;br /&gt;&lt;br /&gt;%start% =&amp;gt; Primer  registro de la pagina&lt;br /&gt;&lt;br /&gt;%end% =&amp;gt; Ultimo registro de la pagina  &lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;$paginator-&amp;gt;prev('&amp;lt;&amp;lt;  Anterior', array(), null, array('class'=&amp;gt;'disabled'))&lt;br /&gt;&lt;br /&gt; $paginator-&amp;gt;next('Siguiente  &amp;gt;&amp;gt;', array(), null, array('class'=&amp;gt;'disabled'))&lt;br /&gt;&lt;/dt&gt;&lt;br /&gt; &lt;dd&gt;Devuelven un enlace a la pagina siguiente y anterior  respectivamente.&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;$paginator-&amp;gt;sortKey()&lt;br /&gt;&lt;br /&gt; $paginator-&amp;gt;sortDir()&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;Devuelven el  campo por el que se esta ordenando y la direccion.&lt;/dd&gt; &lt;br /&gt; &lt;/dl&gt;&lt;br /&gt; Como hemos incluido pocos registros, no  podemos ver nuestra paginación funcionando aunque si la ordenación por columnas.  Vamos a limitar el numero de registros por pagina para poder ver los resultdos  paginados. Para ello incluimos la linea:&lt;br /&gt;&lt;br /&gt; &lt;pre&gt;var $paginate = array('limit' =&amp;gt;  2, 'order' =&amp;gt; array('Post.created' =&amp;gt; 'desc'));&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Con ella definimos el número de  registros por pagina y la ordenación inicial que queremos en nuestros datos.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;¡¡¡Ya podemos ver nuestra paginación  funcionando!!!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645810976462506895-433145661081743131?l=guadonpost.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://guadonpost.blogspot.com/feeds/433145661081743131/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8645810976462506895&amp;postID=433145661081743131' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645810976462506895/posts/default/433145661081743131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645810976462506895/posts/default/433145661081743131'/><link rel='alternate' type='text/html' href='http://guadonpost.blogspot.com/2007/03/paginacion-con-cakephp-12.html' title='Paginacion con cakePHP 1.2'/><author><name>Guadonpost</name><uri>http://www.blogger.com/profile/17069548603650399633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645810976462506895.post-4033674611984801283</id><published>2007-03-02T00:15:00.001-08:00</published><updated>2007-03-19T10:35:14.653-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cakePHP'/><category scheme='http://www.blogger.com/atom/ns#' term='desarrollo Web'/><category scheme='http://www.blogger.com/atom/ns#' term='programacion'/><title type='text'>cakePHP: Aplicaciones 'bipolares' usando "beforeRender()"</title><content type='html'>Hoy me siento orgulloso de mi mismo, por fin tengo algo que escribir aquí.&lt;br /&gt;&lt;br /&gt;Llevo unos días trabajando con PHP para un proyecto de la facultad, y después de trabajar con .net para aplicaciones web volver a un lenguaje de script se me antojaba un poco difícil. Al menos con he encontrado un framework sencillo de utilizar y aunque le faltan muchas características por implementar hay que tener en cuenta que esta todavía en desarrollo. Acaban de sacar la versión 1.2alfa. Este framework es &lt;a href="http://cakephp.org/"&gt;cakePHP&lt;/a&gt;, mas info &lt;a href="http://cakebaker.42dh.com/"&gt;aquí&lt;/a&gt;, &lt;a href="http://www.sputnik.pl/cake-old/"&gt;aquí&lt;/a&gt; y &lt;a href="http://grahambird.co.uk/cake/"&gt;aquí&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Buscando información para documentarme he encontrado este blog &lt;a href="http://www.coderbattery.cl/"&gt;coderbattery&lt;/a&gt; con algunos posts interesantes. No me considero un entendido en cakePHP, mas bien un aprendiz, pero me aventuro a mejorar una de las soluciones que proponen para ‘aplicaciones web bipolares’. El problema esta muy bien explicado en post y por lo tanto os remito a el [&lt;a href="http://www.coderbattery.cl/aplicaciones-bipolares-con-cakephp"&gt;Aplicaciones “bipolares” con CakePHP&lt;/a&gt;].&lt;br /&gt;&lt;br /&gt;La solución propuesta pasa por modificar appController. Incluyendo el siguiente código que modifica el layout por defecto dependiendo del dominio desde el que estamos accediendo:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;class AppController extends Controller {&lt;br /&gt; /* Constructor que determina el dominio&lt;br /&gt; y en base a eso usa el layout correspondiente */&lt;br /&gt; function __construct() {&lt;br /&gt;  parent::__construct();&lt;br /&gt;&lt;br /&gt;  // Determinar layout por defecto&lt;br /&gt;  if(ereg('dominio1',$_SERVER['SERVER_NAME'])) {&lt;br /&gt;   // Estamos en el primer dominio&lt;br /&gt;   $this-&gt;layout = 'dominio1_layout';&lt;br /&gt;  } else {&lt;br /&gt;   // Estamos en el segundo dominio&lt;br /&gt;   $this-&gt;layout = 'dominio2_layout';&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt; ...&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Pero se presenta el problema que en aquellos controladores que no utilicen el layout por defecto hemos de incluir el siguiente código:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;class LoginController extends AppController {&lt;br /&gt; // Constructor para evitar el layout default&lt;br /&gt; function __construct() {&lt;br /&gt;  parent::__construct();&lt;br /&gt;&lt;br /&gt;  if(ereg('dominio1',$_SERVER['SERVER_NAME'])) {&lt;br /&gt;   $this-&gt;layout = 'dominio1_login';&lt;br /&gt;  } else {&lt;br /&gt;   $this-&gt;layout = 'dominio2_login';&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt; ...&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Esto provoca la repetición de código complicando las cosas si decidimos cambiar de dominio o incluir alguno mas pues nos veremos obligados a modificar bastantes ficheros si nuestra aplicación es compleja. Buscando un poco he encontrado la función beforeRender() de la clase Controller que se ejecuta justo antes de aplicar la el layout. Por lo tanto mi propuesta es incluir el siguiente código en el AppController:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;class AppController extends Controller {&lt;br /&gt; /* Determina el dominio y en base a eso usa el layout correspondiente */&lt;br /&gt; function beforeRender(){&lt;br /&gt;  // Determinar layout por defecto&lt;br /&gt;  if(ereg('localhost',$_SERVER['SERVER_NAME'])) {&lt;br /&gt;   // Estamos en el primer dominio&lt;br /&gt;   $this-&gt;layout = 'dominio1_'.$this-&gt;layout;&lt;br /&gt;  } else {&lt;br /&gt;   // Estamos en el segundo dominio&lt;br /&gt;   $this-&gt;layout = 'dominio2_'.$this-&gt;layout;&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt; ...&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Con esto nos ahorramos tener que incluir el código en cada controlador que no utilice el layout por defecto. Por supuesto también tiene inconvenientes y es que tendremos que crear, al menos en mi caso, los layout ‘dominio1_ajax.thtml’ y ‘dominio2_ajax.thtml’ y es probable que también alguno mas.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645810976462506895-4033674611984801283?l=guadonpost.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://guadonpost.blogspot.com/feeds/4033674611984801283/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8645810976462506895&amp;postID=4033674611984801283' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645810976462506895/posts/default/4033674611984801283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645810976462506895/posts/default/4033674611984801283'/><link rel='alternate' type='text/html' href='http://guadonpost.blogspot.com/2007/03/cakephp-aplicaciones-bipolares-usando.html' title='cakePHP: Aplicaciones &apos;bipolares&apos; usando &quot;beforeRender()&quot;'/><author><name>Guadonpost</name><uri>http://www.blogger.com/profile/17069548603650399633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645810976462506895.post-3828239212983331118</id><published>2007-02-26T11:35:00.000-08:00</published><updated>2007-02-26T12:08:30.170-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='citas'/><category scheme='http://www.blogger.com/atom/ns#' term='series'/><category scheme='http://www.blogger.com/atom/ns#' term='frases'/><title type='text'>Supervivencia</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span style="font-style: italic;"&gt;Es lo que nunca entiendo de la gente. Se asombran tanto cuando uno mata a otro, pero esta en nuestra naturaleza. ¿Crees que descendemos de tres tipos en una cueva compartiendo su búfalo? No.  Descendemos del cuarto que tomo un palo y dijo:&lt;br /&gt;&lt;span style="font-size:130%;"&gt; "Si los muelo a palos, tendré mas carne para mi" &lt;/span&gt;&lt;br /&gt;Nuestro ancestro es ese. Eso es supervivencia.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: right;"&gt;Sheriff  Tom Underlay, &lt;a href="http://www.imdb.com/title/tt0460651/"&gt;Invasion&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645810976462506895-3828239212983331118?l=guadonpost.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://guadonpost.blogspot.com/feeds/3828239212983331118/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8645810976462506895&amp;postID=3828239212983331118' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645810976462506895/posts/default/3828239212983331118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645810976462506895/posts/default/3828239212983331118'/><link rel='alternate' type='text/html' href='http://guadonpost.blogspot.com/2007/02/supervivencia.html' title='Supervivencia'/><author><name>Guadonpost</name><uri>http://www.blogger.com/profile/17069548603650399633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645810976462506895.post-5912446500656063663</id><published>2007-02-25T09:58:00.000-08:00</published><updated>2007-02-25T10:37:33.418-08:00</updated><title type='text'>El niño esta dando sus primeros pasos...</title><content type='html'>Bueno algún día tenia que suceder, era inevitable, la tentacion de tener un blog era demasiado grande como para sortearla durante mucho tiempo. Como dijo Oscar Wilde:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-style: italic;"&gt;"&lt;/span&gt;&lt;em style="font-style: italic;"&gt;Puedo resistirlo todo menos la tentación&lt;/em&gt;&lt;span style="font-style: italic;"&gt;    "&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Ahora empiezan los problemas... ¿sobre que escribo?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645810976462506895-5912446500656063663?l=guadonpost.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://guadonpost.blogspot.com/feeds/5912446500656063663/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8645810976462506895&amp;postID=5912446500656063663' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645810976462506895/posts/default/5912446500656063663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645810976462506895/posts/default/5912446500656063663'/><link rel='alternate' type='text/html' href='http://guadonpost.blogspot.com/2007/02/el-nio-esta-dando-sus-primeros-pasos.html' title='El niño esta dando sus primeros pasos...'/><author><name>Guadonpost</name><uri>http://www.blogger.com/profile/17069548603650399633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
