tag:blogger.com,1999:blog-61825626476183958822008-07-17T02:46:02.180+02:00Foto DNGCarlos Longarelahttp://www.blogger.com/profile/08414487385121092377noreply@blogger.comBlogger28125tag:blogger.com,1999:blog-6182562647618395882.post-60987424467858569292008-07-10T12:28:00.001+02:002008-07-10T12:28:40.382+02:00Tira Blow Out Nº 2<p>La tira c&#243;mica <strong><em>Blown Out</em></strong> de <strong>Jon Harsem </strong>del n&#250;mero 23 de Foto DNG.</p> <p>Pod&#233;is ver las tiras originales desde <a href="http://www.fotodojo.org">http://www.fotodojo.org</a></p> <p><a href="http://lh6.ggpht.com/fotodng/SHXkVes_BoI/AAAAAAAAAPQ/-uEfpBzSHsI/s1600-h/tira_02%5B9%5D.jpg" target="_blank"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="143" alt="Blown Out N&#186; 2" src="http://lh5.ggpht.com/fotodng/SHXkV7GAWjI/AAAAAAAAAPU/eoBS-leG9oU/tira_02_thumb%5B7%5D.jpg?imgmax=800" width="420" border="0" /></a> </p> <p><font size="1">* Click sobre la imagen para verla a mayor tama&#241;o.</font></p> Carlos Longarelahttp://www.blogger.com/profile/08414487385121092377noreply@blogger.comtag:blogger.com,1999:blog-6182562647618395882.post-80470509989565302462008-07-09T19:24:00.001+02:002008-07-09T19:25:01.964+02:00Nº 23 de Foto DNG On-line<p>*Haga click sobre la miniatura para ver a gran tama&#241;o. </p> <p>Contenidos (98 p&#225;ginas): </p> <ul> <li>Redacci&#243;n (P&#225;gina 2). </li> <li>Indice (P&#225;gina 3). </li> <li>Novedades (P&#225;gina 4). </li> <li>Guatemala Maya (P&#225;gina 16). </li> <li>Sony a700 (P&#225;gina 32). </li> <li>Fotograf&#237;a de Edgar N&#250;&#241;ez (P&#225;gina 40). </li> <li>Ra&#250;l Jim&#233;nez Ruiz (P&#225;gina 52). </li> <li>Conversi&#243;n a Blanco y negro. M&#233;todos de &quot;Toning&quot; (P&#225;gina 68). </li> <li>Donna Nook (P&#225;gina 72). </li> <li>Noticias Eventos (P&#225;gina 82). </li> <li>Tercer Concurso Fotogr&#225;fico Foto DNG (P&#225;gina 90). </li> </ul> <div><embed style="width: 425px; height: 301px" name="flashticker" align="middle" src="http://static.issuu.com/webembed/viewers/style1/v1/IssuuViewer.swf" type="application/x-shockwave-flash" flashvars="mode=preview&amp;previewLayout=white&amp;username=fotodng&amp;docName=dng23&amp;documentId=080709161255-988266fb17b644768a19f6bfd00bc6c1&amp;autoFlip=true&amp;backgroundColor=ffffff&amp;layout=grey" salign="l" scale="noscale" quality="high" /></div> <div> <div style="width: 425px; text-align: left"></div> </div> <p>Servicio en flash ofrecido por <a title="Issuu" href="http://issuu.com" target="_blank">Issuu</a>. </p> <p>Descarga de la revista en formato pdf desde <a title="Descarga del pdf de la revista" href="http://www.fotodng.com/revista/descarga.php" target="_blank">http://www.fotodng.com/revista/descarga.php</a></p> Carlos Longarelahttp://www.blogger.com/profile/08414487385121092377noreply@blogger.comtag:blogger.com,1999:blog-6182562647618395882.post-6672519626462707442008-06-06T18:34:00.001+02:002008-06-06T18:34:53.468+02:00Tira Blow Out Nº 1<p>Como habr&#233;is podido observar los que echaseis un vistazo al n&#250;mero 22 de la revista Foto DNG, a partir de este n&#250;mero empezamos a publicar la tira c&#243;mica <strong><em>Blown Out</em></strong> del australiano <strong>Jon Harsem</strong>.</p> <p>Pod&#233;is ver las tiras originales desde <a href="http://www.fotodojo.org" target="_blank">http://www.fotodojo.org</a></p> <p>&#160;</p> <p><a href="http://lh5.ggpht.com/fotodng/SElnKAEv_hI/AAAAAAAAAPI/yItlRVrUeJ4/s1600-h/tira_01%5B10%5D.jpg" target="_blank"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="140" alt="Blown Out N&#186; 1" src="http://lh5.ggpht.com/fotodng/SElnLG5rk0I/AAAAAAAAAPM/tuNG1y2TptU/tira_01_thumb%5B8%5D.jpg?imgmax=800" width="410" border="0" /></a> </p> <p><font size="1">* Click sobre la imagen para verla a mayor tama&#241;o.</font></p> Carlos Longarelahttp://www.blogger.com/profile/08414487385121092377noreply@blogger.comtag:blogger.com,1999:blog-6182562647618395882.post-59933671174593080632008-06-06T02:53:00.001+02:002008-06-06T02:53:14.943+02:00Nº 22 de Foto DNG On-line<p>N&#250;mero 22 On-line de la revista Foto DNG (Junio de 2008 A&#241;o III).</p> <p><em>*Haga click sobre la miniatura para ver a gran tama&#241;o.</em></p> <p>Contenidos (106 p&#225;ginas):</p> <ul> <li>Redacci&#243;n (P&#225;gina 5). </li> <li>Novedades (P&#225;gina 6). </li> <li>Desde Santiago de Cuba (P&#225;gina 18). </li> <li>Alberto Conde (P&#225;gina 44). </li> <li>www.tualbum.es. Da vida a tus fotos (P&#225;gina 54). </li> <li>Noche del blues en Corralejo (P&#225;gina 60). </li> <li>Tintes en fotograf&#237;a en blanco y negro (I) (P&#225;gina 64). </li> <li>Fauna en Farne Islands (P&#225;gina 72). </li> <li>Noticias-Eventos (P&#225;gina 84). </li> <li>Tercer Concurso Fotogr&#225;fico Foto DNG (P&#225;gina 96). </li> </ul> <p>&#160;</p> <div align="center"><embed style="width: 323px; height: 230px" name="flashticker" align="middle" src="http://static.issuu.com/webembed/viewers/style1/v1/IssuuViewer.swf" type="application/x-shockwave-flash" flashvars="mode=preview&amp;previewLayout=white&amp;username=fotodng&amp;docName=dng22&amp;documentId=080605224030-47835be0a7464185b2a4be7a1d50d222&amp;autoFlip=true&amp;backgroundColor=ffffff&amp;layout=grey" salign="l" scale="noscale" quality="high" /></div> <div align="center">&#160;</div> <p>Servicio en flash ofrecido por <a href="http://issuu.com">Issuu</a>.</p> <p>Descarga de la revista en formato pdf desde <a href="http://www.fotodng.com/revista/descarga.php">http://www.fotodng.com/revista/descarga.php</a></p> <div> <div style="width: 323px; text-align: left"> <p align="center"></p> </div> </div> Carlos Longarelahttp://www.blogger.com/profile/08414487385121092377noreply@blogger.comtag:blogger.com,1999:blog-6182562647618395882.post-92101518899576211212008-05-30T14:28:00.001+02:002008-05-30T14:28:42.784+02:00Google APP Engine<p>Desde que sali&#243; la primera Beta de Google APP Engine (<a title="http://code.google.com/appengine/" href="http://code.google.com/appengine/">http://code.google.com/appengine/</a>) me he descargado el App Engine SDK y realizado algunas pruebas para Foto DNG.</p> <p>La idea es pasar la web de Foto DNG a los servidores de Google para poder beneficiarse de la escalabilidad de su sistema. Esto significa que no nos tendremos que preocupar de si tenemos 1 vista diaria o si recibimos 5 millones de visitas (Ojal&#225;!), el sistema al estar distribuido entre las diferentes m&#225;quinas de Google se ocupa de su escalabilidad.</p> <p>Las cuotas iniciales y gratuitas ofrecidas por el sistema son insuficientes para las necesidades de nuestra p&#225;gina, ya que 500Mb de espacio no son suficientes ni por asomo para los datos almacenados en la p&#225;gina y 1Mb. de tama&#241;o m&#225;ximo de archivo a todas luces queda muy lejos de nuestros requisitos pues las fotos enviadas al concurso pueden ser de hasta 2Mb. y los zip con la revista est&#225;n cada uno entre 10 y 20Mb.</p> <p>Pero la soluci&#243;n est&#225; en la versi&#243;n de pago, ya que ayer anunciaron los precios que presumiblemente van a aplicar y que son los siguientes:</p> <ul> <li>$0.10 - $0.12 per CPU core-hour </li> <li>$0.15 - $0.18 per GB-month of storage </li> <li>$0.11 - $0.13 per GB outgoing bandwidth </li> <li>$0.09 - $0.11 per GB incoming bandwidth </li> </ul> <p>Dichos precios podemos verlos en su blog en <a title="http://googleappengine.blogspot.com/" href="http://googleappengine.blogspot.com/">http://googleappengine.blogspot.com/</a> junto con los limites impuestos inicialmente en <a title="http://code.google.com/appengine/articles/quotas.html" href="http://code.google.com/appengine/articles/quotas.html">http://code.google.com/appengine/articles/quotas.html</a></p> <p>El problema es que no podemos acogernos a esa versi&#243;n de pago presumiblemente hasta comienzos del a&#241;o que viene, adem&#225;s por ahora el lenguaje soportado es Python.</p> <p>De momento vamos a comenzar con la migraci&#243;n de la p&#225;gina de Foto DNG a Python y llegado el momento valoraremos si damos el paso del actual servidor dedicado (que se nos queda peque&#241;o) al Google App Engine. La inversi&#243;n en tiempo para esta tarea ser&#225; muy grande, aunque vistos los precios que se anuncian, gastaremos algo menos en los servicios de Hosting y ganaremos mucho en estabilidad.</p> <p>Actualmente el ancho de banda consumido por las descargas de la revista var&#237;a desde los 45,95 GB. en el n&#250;mero 12 hasta los 144,73 GB. del n&#250;mero 2. El total de ancho de banda consumido s&#243;lo en las descargas hasta este momento es de 1.706,10 GB. Casi dos Terabytes de revista!.</p> <p>Otro de los problemas (esperemos que temporales) es que no me puedo dar de alta de una nueva aplicaci&#243;n al no recibir el SMS de confirmaci&#243;n necesario para dicha alta, pero a la espera de la soluci&#243;n, podemos ir desarrollando en local con el APP Engine SDK.</p> Carlos Longarelahttp://www.blogger.com/profile/08414487385121092377noreply@blogger.comtag:blogger.com,1999:blog-6182562647618395882.post-33472845640961040982008-05-16T19:09:00.001+02:002008-05-16T19:10:49.133+02:00Búsquedas en Foto DNG<p>Acabamos de implantar en la p&#225;gina de Foto DNG nuestro sistema de B&#250;squedas con la tecnolog&#237;a de Google &#8482; para ofrecer un nuevo servicio que busca tanto en la p&#225;gina principal de la revista <a href="http://www.fotodng.com">http://www.fotodng.com</a> como en este Blog <a href="http://blog.fotodng.com">http://blog.fotodng.com</a> como en los foros <a href="http://foros.fotodng.com">http://foros.fotodng.com</a></p> <p>Esperamos que esta nueva secci&#243;n os pueda ser de utilidad, mientras seguimos con la b&#250;squeda de nuevas opciones que mejoren su experiencia con Foto DNG.</p> <p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="480" alt="B&#250;squeda en Foto DNG" src="http://lh4.ggpht.com/fotodng/SC3AGDtWq7I/AAAAAAAAAOo/hnKMs14urLo/busqueda%5B5%5D.jpg?imgmax=800" width="330" border="0" /></p> Carlos Longarelahttp://www.blogger.com/profile/08414487385121092377noreply@blogger.comtag:blogger.com,1999:blog-6182562647618395882.post-42997047035096916502008-05-15T19:40:00.001+02:002008-05-15T19:40:11.608+02:00Tercer concurso fotográfico Foto DNG<p>Ya est&#225; disponible el tercer concurso fotogr&#225;fico Foto DNG (<a title="http://www.fotodng.com/concurso_08/" href="http://www.fotodng.com/concurso_08/">http://www.fotodng.com/concurso_08/</a>) en esta ocasi&#243;n contamos con los premios de nuestro patrocinador del concurso Robisa y que son los siguientes:</p> <p>&#160;</p> <p><strong><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="100" alt="Ganador" src="http://lh3.ggpht.com/fotodng/SCx1cDtWq3I/AAAAAAAAAOI/J_HHtvIzM-E/robisa_1%5B6%5D.jpg?imgmax=800" width="179" align="left" border="0" /> Ganador:</strong> Objetivo TAMRON AF70-300mm F/4-5.6 Di LD MACRO 1:2 dedicado para la marca, cortes&#237;a de Rodolfo Biber <a href="http://www.robisa.es/">http://www.robisa.es/</a></p> <p>&#160;</p> <p>&#160;</p> <p>&#160;</p> <p><strong></strong></p> <p><strong></strong></p> <p><strong><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 5px 5px 0px; border-right-width: 0px" height="112" alt="Pimer Finalista" src="http://lh4.ggpht.com/fotodng/SCx1dTtWq4I/AAAAAAAAAOQ/i7bY6BirzuI/robisa_2%5B5%5D.jpg?imgmax=800" width="100" align="left" border="0" />&#160;</strong><strong>Primer Finalista:</strong> Metz mecablitz 36 AF-4 dedicado para la marca, cortes&#237;a de Rodolfo Biber <a href="http://www.robisa.es/">http://www.robisa.es/</a></p> <p>&#160;</p> <p>&#160;</p> <p>&#160;</p> <p>&#160;</p> <p><strong></strong></p> <p><strong></strong></p> <p><strong></strong></p> <p><strong><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 5px 5px 0px; border-right-width: 0px" height="100" alt="Segundo Finalista" src="http://lh3.ggpht.com/fotodng/SCx1eDtWq5I/AAAAAAAAAOY/7pgTtYo2zCc/robisa_3%5B5%5D.jpg?imgmax=800" width="131" align="left" border="0" /> Segundo Finalista:</strong> Kit de limpieza de sensores GREEN CLEAN SC-4200 para sensores APS-C, cortes&#237;a de Rodolfo Biber <a href="http://www.robisa.es/">http://www.robisa.es/</a></p> <p>&#160;</p> <p>&#160;</p> <p>&#160;</p> <p>&#160;</p> <p><strong></strong></p> <p><strong></strong></p> <p><strong><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 5px 5px 0px; border-right-width: 0px" height="240" alt="Tercer Finalista" src="http://lh5.ggpht.com/fotodng/SCx1ejtWq6I/AAAAAAAAAOg/6eGUrJam39E/robisa_4%5B5%5D.jpg?imgmax=800" width="144" align="left" border="0" /> Tercer Finalista:</strong> Tarjeta de memoria takeMS SD o CF de 4Gb., cortes&#237;a de Rodolfo Biber <a href="http://www.robisa.es/">http://www.robisa.es/</a></p> <p>&#160;</p> <p>&#160;</p> <p>&#160;</p> <p>&#160;</p> <p>&#160;</p> <p>&#160;</p> <p>&#160;</p> <p>&#160;</p> <p>Esperamos que la participaci&#243;n de este a&#241;o, al menos iguale la de la edici&#243;n anterior en la que recibimos 1.958 fotos.</p> <p>Animaros a participar y no os olvid&#233;is de leer previamente las Bases que pod&#233;is encontrar en <a title="http://www.fotodng.com/concurso_08/bases.php" href="http://www.fotodng.com/concurso_08/bases.php">http://www.fotodng.com/concurso_08/bases.php</a></p> Carlos Longarelahttp://www.blogger.com/profile/08414487385121092377noreply@blogger.comtag:blogger.com,1999:blog-6182562647618395882.post-91109904289085263662008-05-08T19:32:00.002+02:002008-05-08T19:34:24.615+02:00Avisos al móvil de fallos del servidor (III)<p>Finalizo esta serie después de contaros la idea, los pasos a seguir en Google Calendar y mostraros el script, ahora sólo queda modificarlo con vuestro parámetros y programarlo para que se ejecute cada quince minutos (o modificar el tiempo de ejecución y su correspondiente parámetro).</p> <p>Cuidado con poner bien las direcciones, no vaya a ser que pongáis una dirección errónea y se os llene el móvil de mensajes.</p> <p>Para cualquier duda, podéis comentar la noticia y os responderé adecuadamente.</p> <p>Espero que esta pequeña idea os pueda ser de utilidaz a webmasters.</p>Carlos Longarelahttp://www.blogger.com/profile/08414487385121092377noreply@blogger.comtag:blogger.com,1999:blog-6182562647618395882.post-72727515749100801902008-05-08T19:03:00.001+02:002008-05-08T19:33:37.856+02:00Avisos al móvil de fallos del servidor (II)<p>Aqu&#237; os pongo el c&#243;digo php del script comentado en el post anterior (<a title="http://blog.fotodng.com/2008/05/avisos-al-mvil-de-fallos-del-servidor-i.html" href="http://blog.fotodng.com/2008/05/avisos-al-mvil-de-fallos-del-servidor-i.html">http://blog.fotodng.com/2008/05/avisos-al-mvil-de-fallos-del-servidor-i.html</a>), en el siguiente post finalizaremos este ejemplo.</p> <p></p> <span style="font-size: 90%; color: #cccccc">1</span><code><span style="color: #000000"> <span style="color: #0000bb">&lt;? </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">2</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">3</span><code><span style="color: #000000"> <span style="color: #0000bb"></span><span style="color: #ff8000">// (c) Carlos Longarela Abril 2008 </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">4</span><code><span style="color: #000000"> <span style="color: #0000bb"></span><span style="color: #ff8000">// http://www.fotodng.com </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">5</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">6</span><code><span style="color: #000000"> <span style="color: #0000bb"></span><span style="color: #007700">function </span><span style="color: #0000bb">creaEventoCal </span><span style="color: #007700">(</span><span style="color: #0000bb">$cliente</span><span style="color: #007700">, </span><span style="color: #0000bb">$titulo </span><span style="color: #007700">= </span><span style="color: #dd0000">'Evento por defecto'</span><span style="color: #007700">,&#160; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">7</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $descrip</span><span style="color: #007700">=</span><span style="color: #dd0000">'Evento por defecto de la funcion creaEventoCal'</span><span style="color: #007700">, </span><span style="color: #0000bb">$donde </span><span style="color: #007700">= </span><span style="color: #dd0000">'Madrid'</span><span style="color: #007700">,&#160; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">8</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $FechaIni </span><span style="color: #007700">= </span><span style="color: #0000bb">null</span><span style="color: #007700">, </span><span style="color: #0000bb">$HoraIni </span><span style="color: #007700">= </span><span style="color: #0000bb">null</span><span style="color: #007700">,&#160; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">9</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $FechaFin </span><span style="color: #007700">= </span><span style="color: #0000bb">null</span><span style="color: #007700">, </span><span style="color: #0000bb">$HoraFin </span><span style="color: #007700">= </span><span style="color: #0000bb">null</span><span style="color: #007700">, </span><span style="color: #0000bb">$tzOffset </span><span style="color: #007700">= </span><span style="color: #dd0000">'+02'</span><span style="color: #007700">, </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">10</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $metodo_recordatorio </span><span style="color: #007700">= </span><span style="color: #dd0000">'sms'</span><span style="color: #007700">,&#160; </span><span style="color: #0000bb">$tiempo_recordatorio</span><span style="color: #007700">=</span><span style="color: #0000bb">5</span><span style="color: #007700">){ </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">11</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">12</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; </span><span style="color: #007700">if (empty(</span><span style="color: #0000bb">$FechaIni</span><span style="color: #007700">)){ </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">13</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160; $FechaIni</span><span style="color: #007700">=</span><span style="color: #0000bb">date</span><span style="color: #007700">(</span><span style="color: #dd0000">'Y-m-d'</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">14</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; </span><span style="color: #007700">} </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">15</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">16</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; </span><span style="color: #007700">if (empty(</span><span style="color: #0000bb">$FechaFin</span><span style="color: #007700">)){ </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">17</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160; $FechaFin</span><span style="color: #007700">=</span><span style="color: #0000bb">date</span><span style="color: #007700">(</span><span style="color: #dd0000">'Y-m-d'</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">18</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; </span><span style="color: #007700">}&#160;&#160;&#160;&#160; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">19</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">20</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; </span><span style="color: #007700">if (empty(</span><span style="color: #0000bb">$HoraIni</span><span style="color: #007700">)){ </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">21</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160; $HoraIni</span><span style="color: #007700">=</span><span style="color: #0000bb">date</span><span style="color: #007700">(</span><span style="color: #dd0000">'H'</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">22</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160; $minutos</span><span style="color: #007700">=</span><span style="color: #0000bb">date</span><span style="color: #007700">(</span><span style="color: #dd0000">'i'</span><span style="color: #007700">)+</span><span style="color: #0000bb">7</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">23</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160; $minutos</span><span style="color: #007700">=</span><span style="color: #0000bb">str_pad</span><span style="color: #007700">(</span><span style="color: #0000bb">$minutos</span><span style="color: #007700">, </span><span style="color: #0000bb">2</span><span style="color: #007700">, </span><span style="color: #dd0000">'0'</span><span style="color: #007700">, </span><span style="color: #0000bb">STR_PAD_LEFT</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">24</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160; $HoraIni</span><span style="color: #007700">.=</span><span style="color: #dd0000">':'</span><span style="color: #007700">.</span><span style="color: #0000bb">$minutos</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">25</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; </span><span style="color: #007700">}&#160;&#160;&#160;&#160;&#160;&#160; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">26</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">27</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; </span><span style="color: #007700">if (empty(</span><span style="color: #0000bb">$HoraFin</span><span style="color: #007700">)){ </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">28</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160; $HoraFin</span><span style="color: #007700">=</span><span style="color: #0000bb">$HoraIni</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">29</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; </span><span style="color: #007700">}&#160;&#160;&#160;&#160; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">30</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">31</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $gc </span><span style="color: #007700">= new </span><span style="color: #0000bb">Zend_Gdata_Calendar</span><span style="color: #007700">(</span><span style="color: #0000bb">$cliente</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">32</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $nuevaEntrada </span><span style="color: #007700">= </span><span style="color: #0000bb">$gc</span><span style="color: #007700">-&gt;</span><span style="color: #0000bb">newEventEntry</span><span style="color: #007700">(); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">33</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $nuevaEntrada</span><span style="color: #007700">-&gt;</span><span style="color: #0000bb">title </span><span style="color: #007700">= </span><span style="color: #0000bb">$gc</span><span style="color: #007700">-&gt;</span><span style="color: #0000bb">newTitle</span><span style="color: #007700">(</span><span style="color: #0000bb">trim</span><span style="color: #007700">(</span><span style="color: #0000bb">$titulo</span><span style="color: #007700">)); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">34</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $nuevaEntrada</span><span style="color: #007700">-&gt;</span><span style="color: #0000bb">where&#160; </span><span style="color: #007700">= array(</span><span style="color: #0000bb">$gc</span><span style="color: #007700">-&gt;</span><span style="color: #0000bb">newWhere</span><span style="color: #007700">(</span><span style="color: #0000bb">$donde</span><span style="color: #007700">)); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">35</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">36</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $nuevaEntrada</span><span style="color: #007700">-&gt;</span><span style="color: #0000bb">content </span><span style="color: #007700">= </span><span style="color: #0000bb">$gc</span><span style="color: #007700">-&gt;</span><span style="color: #0000bb">newContent</span><span style="color: #007700">(</span><span style="color: #0000bb">$descrip</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">37</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $nuevaEntrada</span><span style="color: #007700">-&gt;</span><span style="color: #0000bb">content</span><span style="color: #007700">-&gt;</span><span style="color: #0000bb">type </span><span style="color: #007700">= </span><span style="color: #dd0000">'text'</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">38</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">39</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $cuando </span><span style="color: #007700">= </span><span style="color: #0000bb">$gc</span><span style="color: #007700">-&gt;</span><span style="color: #0000bb">newWhen</span><span style="color: #007700">(); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">40</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $cuando</span><span style="color: #007700">-&gt;</span><span style="color: #0000bb">startTime </span><span style="color: #007700">= </span><span style="color: #dd0000">&quot;{$FechaIni}T{$HoraIni}:00.000{$tzOffset}:00&quot;</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">41</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $cuando</span><span style="color: #007700">-&gt;</span><span style="color: #0000bb">endTime </span><span style="color: #007700">= </span><span style="color: #dd0000">&quot;{$FechaFin}T{$HoraFin}:00.000{$tzOffset}:00&quot;</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">42</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $nuevaEntrada</span><span style="color: #007700">-&gt;</span><span style="color: #0000bb">when </span><span style="color: #007700">= array(</span><span style="color: #0000bb">$cuando</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">43</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">44</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; </span><span style="color: #ff8000">//Creamos un nuevo evento de recordatorio </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">45</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $recordatorio </span><span style="color: #007700">= </span><span style="color: #0000bb">$gc</span><span style="color: #007700">-&gt;</span><span style="color: #0000bb">newReminder</span><span style="color: #007700">(); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">46</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $recordatorio</span><span style="color: #007700">-&gt;</span><span style="color: #0000bb">method </span><span style="color: #007700">= </span><span style="color: #0000bb">$metodo_recordatorio</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">47</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $recordatorio</span><span style="color: #007700">-&gt;</span><span style="color: #0000bb">minutes </span><span style="color: #007700">= </span><span style="color: #0000bb">$tiempo_recordatorio</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">48</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">49</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; </span><span style="color: #ff8000">//Aplicamos el recordatorio a un evento cuando </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">50</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $cuando</span><span style="color: #007700">-&gt;</span><span style="color: #0000bb">reminders </span><span style="color: #007700">= array(</span><span style="color: #0000bb">$recordatorio</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">51</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">52</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $EntradaCreada </span><span style="color: #007700">= </span><span style="color: #0000bb">$gc</span><span style="color: #007700">-&gt;</span><span style="color: #0000bb">insertEvent</span><span style="color: #007700">(</span><span style="color: #0000bb">$nuevaEntrada</span><span style="color: #007700">,</span><span style="color: #0000bb">CALENDARIO_SERVERS</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">53</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">54</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; </span><span style="color: #007700">return </span><span style="color: #0000bb">$EntradaCreada</span><span style="color: #007700">-&gt;</span><span style="color: #0000bb">id</span><span style="color: #007700">-&gt;</span><span style="color: #0000bb">text</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">55</span><code><span style="color: #000000"> <span style="color: #0000bb"></span><span style="color: #007700">} </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">56</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">57</span><code><span style="color: #000000"> <span style="color: #0000bb"></span><span style="color: #007700">function </span><span style="color: #0000bb">conecta_socket</span><span style="color: #007700">(</span><span style="color: #0000bb">$ip</span><span style="color: #007700">, </span><span style="color: #0000bb">$puerto</span><span style="color: #007700">){ </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">58</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $texto</span><span style="color: #007700">=</span><span style="color: #0000bb">null</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">59</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; </span><span style="color: #007700">if ((</span><span style="color: #0000bb">$socket </span><span style="color: #007700">= @</span><span style="color: #0000bb">socket_create</span><span style="color: #007700">(</span><span style="color: #0000bb">AF_INET</span><span style="color: #007700">, </span><span style="color: #0000bb">SOCK_STREAM</span><span style="color: #007700">, </span><span style="color: #0000bb">SOL_TCP</span><span style="color: #007700">)) === </span><span style="color: #0000bb">false</span><span style="color: #007700">) { </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">60</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160; $texto</span><span style="color: #007700">=</span><span style="color: #dd0000">'FALLO en socket_create(); Causa: '</span><span style="color: #007700">.</span><span style="color: #0000bb">socket_strerror</span><span style="color: #007700">(</span><span style="color: #0000bb">socket_last_error</span><span style="color: #007700">()).</span><span style="color: #dd0000">&quot;\n&quot;</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">61</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160; $GLOBALS</span><span style="color: #007700">[</span><span style="color: #dd0000">'error'</span><span style="color: #007700">]=</span><span style="color: #0000bb">true</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">62</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: #007700">return </span><span style="color: #0000bb">$texto</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">63</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; </span><span style="color: #007700">}else{ </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">64</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: #ff8000">//Conexion a la IP en el puerto dado </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">65</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160; $texto</span><span style="color: #007700">=</span><span style="color: #dd0000">&quot;Conectando a [$ip:$puerto]=&gt;&quot;</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">66</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160; $res </span><span style="color: #007700">= @</span><span style="color: #0000bb">socket_connect</span><span style="color: #007700">(</span><span style="color: #0000bb">$socket</span><span style="color: #007700">, </span><span style="color: #0000bb">$ip</span><span style="color: #007700">, </span><span style="color: #0000bb">$puerto</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">67</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: #007700">if (</span><span style="color: #0000bb">$res </span><span style="color: #007700">=== </span><span style="color: #0000bb">false</span><span style="color: #007700">) { </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">68</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; $texto</span><span style="color: #007700">.=</span><span style="color: #dd0000">'FALLO en socket_connect(); Causa: '</span><span style="color: #007700">.</span><span style="color: #0000bb">socket_strerror</span><span style="color: #007700">(</span><span style="color: #0000bb">socket_last_error</span><span style="color: #007700">(</span><span style="color: #0000bb">$socket</span><span style="color: #007700">)).</span><span style="color: #dd0000">&quot;\n&quot;</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">69</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; $GLOBALS</span><span style="color: #007700">[</span><span style="color: #dd0000">'error'</span><span style="color: #007700">]=</span><span style="color: #0000bb">true</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">70</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: #007700">return </span><span style="color: #0000bb">$texto</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">71</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: #007700">} else { </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">72</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; $texto</span><span style="color: #007700">.=</span><span style="color: #dd0000">&quot;OK.\n&quot;</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">73</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: #007700">return </span><span style="color: #0000bb">$texto</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">74</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: #007700">} </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">75</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160; socket_close</span><span style="color: #007700">(</span><span style="color: #0000bb">$socket</span><span style="color: #007700">);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">76</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; </span><span style="color: #007700">} </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">77</span><code><span style="color: #000000"> <span style="color: #0000bb"></span><span style="color: #007700">} </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">78</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">79</span><code><span style="color: #000000"> <span style="color: #0000bb"></span><span style="color: #007700">function </span><span style="color: #0000bb">conecta_db</span><span style="color: #007700">(</span><span style="color: #0000bb">$server_bd</span><span style="color: #007700">,</span><span style="color: #0000bb">$usuario_db</span><span style="color: #007700">,</span><span style="color: #0000bb">$clave_db</span><span style="color: #007700">,</span><span style="color: #0000bb">$db</span><span style="color: #007700">){ </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">80</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $texto</span><span style="color: #007700">=</span><span style="color: #0000bb">null</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">81</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $texto</span><span style="color: #007700">= </span><span style="color: #dd0000">&quot;Conectando a [$server_bd -&gt; $db]=&gt;&quot;</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">82</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; </span><span style="color: #007700">if (@</span><span style="color: #0000bb">mysql_connect</span><span style="color: #007700">(</span><span style="color: #0000bb">$server_bd</span><span style="color: #007700">,</span><span style="color: #0000bb">$usuario_db</span><span style="color: #007700">,</span><span style="color: #0000bb">$clave_db</span><span style="color: #007700">)) { </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">83</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: #007700">if (@</span><span style="color: #0000bb">mysql_select_db</span><span style="color: #007700">(</span><span style="color: #0000bb">$db</span><span style="color: #007700">)) { </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">84</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; $texto</span><span style="color: #007700">.=</span><span style="color: #dd0000">&quot;OK.\n&quot;</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">85</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; mysql_close</span><span style="color: #007700">(); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">86</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: #007700">return </span><span style="color: #0000bb">$texto</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">87</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: #007700">}else{ </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">88</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; $texto</span><span style="color: #007700">.=</span><span style="color: #0000bb">mysql_errno</span><span style="color: #007700">().</span><span style="color: #dd0000">&quot;: &quot;</span><span style="color: #007700">.</span><span style="color: #0000bb">mysql_error</span><span style="color: #007700">(); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">89</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; $GLOBALS</span><span style="color: #007700">[</span><span style="color: #dd0000">'error'</span><span style="color: #007700">]=</span><span style="color: #0000bb">true</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">90</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; mysql_close</span><span style="color: #007700">(); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">91</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: #007700">return </span><span style="color: #0000bb">$texto</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">92</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: #007700">} </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">93</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; </span><span style="color: #007700">}else{ </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">94</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160; $texto</span><span style="color: #007700">.=</span><span style="color: #0000bb">mysql_errno</span><span style="color: #007700">().</span><span style="color: #dd0000">&quot;: &quot;</span><span style="color: #007700">.</span><span style="color: #0000bb">mysql_error</span><span style="color: #007700">(); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">95</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160; $GLOBALS</span><span style="color: #007700">[</span><span style="color: #dd0000">'error'</span><span style="color: #007700">]=</span><span style="color: #0000bb">true</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">96</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: #007700">return </span><span style="color: #0000bb">$texto</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">97</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; </span><span style="color: #007700">}&#160;&#160;&#160;&#160; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">98</span><code><span style="color: #000000"> <span style="color: #0000bb"></span><span style="color: #007700">} </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">99</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">100</span><code><span style="color: #000000"> <span style="color: #0000bb"></span><span style="color: #ff8000">//Permitir al script ejecutarse durante 2 minutos para esperar por las conexiones </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">101</span><code><span style="color: #000000"> <span style="color: #0000bb">set_time_limit</span><span style="color: #007700">(</span><span style="color: #0000bb">120</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">102</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">103</span><code><span style="color: #000000"> <span style="color: #0000bb"></span><span style="color: #ff8000">//Volcar la salida al navegador para ir viendo los resultados </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">104</span><code><span style="color: #000000"> <span style="color: #0000bb">ob_implicit_flush</span><span style="color: #007700">(); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">105</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">106</span><code><span style="color: #000000"> <span style="color: #0000bb"></span><span style="color: #ff8000">//Incluimos el path de la liberia Zend Gdata </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">107</span><code><span style="color: #000000"> <span style="color: #0000bb">set_include_path</span><span style="color: #007700">(</span><span style="color: #dd0000">'/ruta/liberia/gdata/library'</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">108</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">109</span><code><span style="color: #000000"> <span style="color: #0000bb"></span><span style="color: #007700">require_once </span><span style="color: #dd0000">'Zend/Loader.php'</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">110</span><code><span style="color: #000000"> <span style="color: #0000bb">Zend_Loader</span><span style="color: #007700">::</span><span style="color: #0000bb">loadClass</span><span style="color: #007700">(</span><span style="color: #dd0000">'Zend_Gdata'</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">111</span><code><span style="color: #000000"> <span style="color: #0000bb">Zend_Loader</span><span style="color: #007700">::</span><span style="color: #0000bb">loadClass</span><span style="color: #007700">(</span><span style="color: #dd0000">'Zend_Gdata_ClientLogin'</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">112</span><code><span style="color: #000000"> <span style="color: #0000bb">Zend_Loader</span><span style="color: #007700">::</span><span style="color: #0000bb">loadClass</span><span style="color: #007700">(</span><span style="color: #dd0000">'Zend_Gdata_Calendar'</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">113</span><code><span style="color: #000000"> <span style="color: #0000bb">Zend_Loader</span><span style="color: #007700">::</span><span style="color: #0000bb">loadClass</span><span style="color: #007700">(</span><span style="color: #dd0000">'Zend_Http_Client'</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">114</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">115</span><code><span style="color: #000000"> <span style="color: #0000bb"></span><span style="color: #ff8000">//Parametros de servidores </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">116</span><code><span style="color: #000000"> <span style="color: #0000bb">$ip </span><span style="color: #007700">= </span><span style="color: #dd0000">'11.11.11.11'</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">117</span><code><span style="color: #000000"> <span style="color: #0000bb">$ip_blog </span><span style="color: #007700">= </span><span style="color: #0000bb">gethostbyname</span><span style="color: #007700">(</span><span style="color: #dd0000">'nombre.web.com'</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">118</span><code><span style="color: #000000"> <span style="color: #0000bb">$ip_site2 </span><span style="color: #007700">= </span><span style="color: #0000bb">gethostbyname</span><span style="color: #007700">(</span><span style="color: #dd0000">'nombre2.web.com'</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">119</span><code><span style="color: #000000"> <span style="color: #0000bb">$puerto_web </span><span style="color: #007700">= </span><span style="color: #0000bb">80</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">120</span><code><span style="color: #000000"> <span style="color: #0000bb">$puerto_mysql </span><span style="color: #007700">= </span><span style="color: #0000bb">3306</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">121</span><code><span style="color: #000000"> <span style="color: #0000bb">$puerto_ssh </span><span style="color: #007700">= </span><span style="color: #0000bb">22</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">122</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">123</span><code><span style="color: #000000"> <span style="color: #0000bb">$server_bd</span><span style="color: #007700">=</span><span style="color: #0000bb">$ip</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">124</span><code><span style="color: #000000"> <span style="color: #0000bb">$usuario_db</span><span style="color: #007700">=</span><span style="color: #dd0000">'usuariobd'</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">125</span><code><span style="color: #000000"> <span style="color: #0000bb">$clave_db</span><span style="color: #007700">=</span><span style="color: #dd0000">'clavebd'</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">126</span><code><span style="color: #000000"> <span style="color: #0000bb">$db</span><span style="color: #007700">=</span><span style="color: #dd0000">'bd'</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">127</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">128</span><code><span style="color: #000000"> <span style="color: #0000bb">$texto</span><span style="color: #007700">=</span><span style="color: #0000bb">null</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">129</span><code><span style="color: #000000"> <span style="color: #0000bb">$error</span><span style="color: #007700">=</span><span style="color: #0000bb">false</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">130</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">131</span><code><span style="color: #000000"> <span style="color: #0000bb"></span><span style="color: #ff8000">//Parametros de la hora </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">132</span><code><span style="color: #000000"> <span style="color: #0000bb">date_default_timezone_set</span><span style="color: #007700">(</span><span style="color: #dd0000">'Europe/Madrid'</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">133</span><code><span style="color: #000000"> <span style="color: #0000bb">$zona_horaria</span><span style="color: #007700">=</span><span style="color: #0000bb">date_default_timezone_get</span><span style="color: #007700">(); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">134</span><code><span style="color: #000000"> <span style="color: #0000bb">$dia</span><span style="color: #007700">=</span><span style="color: #0000bb">date</span><span style="color: #007700">(</span><span style="color: #dd0000">'d'</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">135</span><code><span style="color: #000000"> <span style="color: #0000bb">$mes</span><span style="color: #007700">=</span><span style="color: #0000bb">date</span><span style="color: #007700">(</span><span style="color: #dd0000">'m'</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">136</span><code><span style="color: #000000"> <span style="color: #0000bb">$anhio</span><span style="color: #007700">=</span><span style="color: #0000bb">date</span><span style="color: #007700">(</span><span style="color: #dd0000">'Y'</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">137</span><code><span style="color: #000000"> <span style="color: #0000bb">$hora</span><span style="color: #007700">=</span><span style="color: #0000bb">date</span><span style="color: #007700">(</span><span style="color: #dd0000">'H'</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">138</span><code><span style="color: #000000"> <span style="color: #0000bb">$minutos</span><span style="color: #007700">=</span><span style="color: #0000bb">date</span><span style="color: #007700">(</span><span style="color: #dd0000">'i'</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">139</span><code><span style="color: #000000"> <span style="color: #0000bb">$fecha</span><span style="color: #007700">=</span><span style="color: #0000bb">$dia</span><span style="color: #007700">.</span><span style="color: #dd0000">'/'</span><span style="color: #007700">.</span><span style="color: #0000bb">$mes</span><span style="color: #007700">.</span><span style="color: #dd0000">'/'</span><span style="color: #007700">.</span><span style="color: #0000bb">$anhio</span><span style="color: #007700">.</span><span style="color: #dd0000">' '</span><span style="color: #007700">.</span><span style="color: #0000bb">$hora</span><span style="color: #007700">.</span><span style="color: #dd0000">':'</span><span style="color: #007700">.</span><span style="color: #0000bb">$minutos</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">140</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">141</span><code><span style="color: #000000"> <span style="color: #0000bb"></span><span style="color: #ff8000">// Parametros para la autentificacion del cliente al calendario </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">142</span><code><span style="color: #000000"> <span style="color: #0000bb">$servicio </span><span style="color: #007700">= </span><span style="color: #0000bb">Zend_Gdata_Calendar</span><span style="color: #007700">::</span><span style="color: #0000bb">AUTH_SERVICE_NAME</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">143</span><code><span style="color: #000000"> <span style="color: #0000bb">$usuario </span><span style="color: #007700">= </span><span style="color: #dd0000">&quot;usuario.gmail.calendario@gmail.com&quot;</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">144</span><code><span style="color: #000000"> <span style="color: #0000bb">$clave </span><span style="color: #007700">= </span><span style="color: #dd0000">&quot;clave_usuario_gmail&quot;</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">145</span><code><span style="color: #000000"> <span style="color: #0000bb">$id_calenadrio_servers</span><span style="color: #007700">=</span><span style="color: #dd0000">'idcalendario@group.calendar.google.com'</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">146</span><code><span style="color: #000000"> <span style="color: #0000bb">$calenadrio_servers</span><span style="color: #007700">=</span><span style="color: #dd0000">'http://www.google.com/calendar/feeds/'</span><span style="color: #007700">.</span><span style="color: #0000bb">$id_calenadrio_servers</span><span style="color: #007700">.</span><span style="color: #dd0000">'/private/full'</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">147</span><code><span style="color: #000000"> <span style="color: #0000bb">define</span><span style="color: #007700">(</span><span style="color: #dd0000">'CALENDARIO_SERVERS'</span><span style="color: #007700">, </span><span style="color: #0000bb">$calenadrio_servers</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">148</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">149</span><code><span style="color: #000000"> <span style="color: #0000bb">header</span><span style="color: #007700">(</span><span style="color: #dd0000">'Content-Type: text/plain; charset=utf-8'</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">150</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">151</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">152</span><code><span style="color: #000000"> <span style="color: #0000bb"></span><span style="color: #ff8000">// Creamos un cliente de autentificacion HTTP </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">153</span><code><span style="color: #000000"> <span style="color: #0000bb"></span><span style="color: #007700">try { </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">154</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $cliente </span><span style="color: #007700">= </span><span style="color: #0000bb">Zend_Gdata_ClientLogin</span><span style="color: #007700">::</span><span style="color: #0000bb">getHttpClient</span><span style="color: #007700">(</span><span style="color: #0000bb">$usuario</span><span style="color: #007700">, </span><span style="color: #0000bb">$clave</span><span style="color: #007700">, </span><span style="color: #0000bb">$servicio</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">155</span><code><span style="color: #000000"> <span style="color: #0000bb"></span><span style="color: #007700">} catch (</span><span style="color: #0000bb">Zend_Gdata_App_AuthException $e</span><span style="color: #007700">) { </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">156</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $texto</span><span style="color: #007700">=</span><span style="color: #dd0000">'Error de autentificacion del usuario '</span><span style="color: #007700">.</span><span style="color: #0000bb">$usuario</span><span style="color: #007700">.</span><span style="color: #dd0000">&quot; en los servicios de Google.\n&quot;</span><span style="color: #007700">;&#160; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">157</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; </span><span style="color: #007700">die ((</span><span style="color: #0000bb">texto</span><span style="color: #007700">)); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">158</span><code><span style="color: #000000"> <span style="color: #0000bb"></span><span style="color: #007700">} </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">159</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">160</span><code><span style="color: #000000"> <span style="color: #0000bb"></span><span style="color: #ff8000">// Creamos una nueva instancia del servicio de Calendario </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">161</span><code><span style="color: #000000"> <span style="color: #0000bb">$servicio </span><span style="color: #007700">= new </span><span style="color: #0000bb">Zend_Gdata_Calendar</span><span style="color: #007700">(</span><span style="color: #0000bb">$cliente</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">162</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">163</span><code><span style="color: #000000"> <span style="color: #0000bb"></span><span style="color: #ff8000">//Intentamos las diferentes conexiones </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">164</span><code><span style="color: #000000"> <span style="color: #0000bb">$texto</span><span style="color: #007700">.=</span><span style="color: #0000bb">$fecha</span><span style="color: #007700">.</span><span style="color: #dd0000">' ('</span><span style="color: #007700">.</span><span style="color: #0000bb">$zona_horaria</span><span style="color: #007700">.</span><span style="color: #dd0000">&quot;)\n&quot;</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">165</span><code><span style="color: #000000"> <span style="color: #0000bb"></span><span style="color: #ff8000">//$texto.=conecta_socket($ip,$puerto_ssh); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">166</span><code><span style="color: #000000"> <span style="color: #0000bb">$texto</span><span style="color: #007700">.=</span><span style="color: #0000bb">conecta_socket</span><span style="color: #007700">(</span><span style="color: #0000bb">$ip</span><span style="color: #007700">,</span><span style="color: #0000bb">$puerto_web</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">167</span><code><span style="color: #000000"> <span style="color: #0000bb">$texto</span><span style="color: #007700">.=</span><span style="color: #0000bb">conecta_socket</span><span style="color: #007700">(</span><span style="color: #0000bb">$ip_blog</span><span style="color: #007700">,</span><span style="color: #0000bb">$puerto_web</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">168</span><code><span style="color: #000000"> <span style="color: #0000bb">$texto</span><span style="color: #007700">.=</span><span style="color: #0000bb">conecta_socket</span><span style="color: #007700">(</span><span style="color: #0000bb">$ip_site2</span><span style="color: #007700">,</span><span style="color: #0000bb">$puerto_web</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">169</span><code><span style="color: #000000"> <span style="color: #0000bb">$texto</span><span style="color: #007700">.=</span><span style="color: #0000bb">conecta_socket</span><span style="color: #007700">(</span><span style="color: #0000bb">$ip</span><span style="color: #007700">,</span><span style="color: #0000bb">$puerto_mysql</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">170</span><code><span style="color: #000000"> <span style="color: #0000bb">$texto</span><span style="color: #007700">.=</span><span style="color: #0000bb">conecta_socket</span><span style="color: #007700">(</span><span style="color: #0000bb">$ip_site2</span><span style="color: #007700">,</span><span style="color: #0000bb">$puerto_mysql</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">171</span><code><span style="color: #000000"> <span style="color: #0000bb">$texto</span><span style="color: #007700">.=</span><span style="color: #0000bb">conecta_db</span><span style="color: #007700">(</span><span style="color: #0000bb">$server_bd</span><span style="color: #007700">,</span><span style="color: #0000bb">$usuario_db</span><span style="color: #007700">,</span><span style="color: #0000bb">$clave_db</span><span style="color: #007700">,</span><span style="color: #0000bb">$db</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">172</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">173</span><code><span style="color: #000000"> <span style="color: #0000bb"></span><span style="color: #007700">echo </span><span style="color: #0000bb">$texto</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">174</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">175</span><code><span style="color: #000000"> <span style="color: #0000bb"></span><span style="color: #007700">if (</span><span style="color: #0000bb">$error</span><span style="color: #007700">===</span><span style="color: #0000bb">true</span><span style="color: #007700">){</span><span style="color: #ff8000">//Ha habido algun fallo </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">176</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $titulo_evento</span><span style="color: #007700">=</span><span style="color: #dd0000">'Fallo en el servidor '</span><span style="color: #007700">.</span><span style="color: #0000bb">$hora</span><span style="color: #007700">.</span><span style="color: #dd0000">':'</span><span style="color: #007700">.</span><span style="color: #0000bb">$minutos</span><span style="color: #007700">;&#160;&#160;&#160;&#160; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">177</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $recordatorio</span><span style="color: #007700">=</span><span style="color: #dd0000">'sms'</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">178</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $envio_mail</span><span style="color: #007700">=</span><span style="color: #0000bb">true</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">179</span><code><span style="color: #000000"> <span style="color: #0000bb"></span><span style="color: #007700">}else{</span><span style="color: #ff8000">//Todo correcto </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">180</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $titulo_evento</span><span style="color: #007700">=</span><span style="color: #dd0000">'Servidor OK '</span><span style="color: #007700">.</span><span style="color: #0000bb">$hora</span><span style="color: #007700">.</span><span style="color: #dd0000">':'</span><span style="color: #007700">.</span><span style="color: #0000bb">$minutos</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">181</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $recordatorio</span><span style="color: #007700">=</span><span style="color: #dd0000">'none'</span><span style="color: #007700">; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">182</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $envio_mail</span><span style="color: #007700">=</span><span style="color: #0000bb">false</span><span style="color: #007700">;&#160;&#160;&#160;&#160; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">183</span><code><span style="color: #000000"> <span style="color: #0000bb"></span><span style="color: #007700">} </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">184</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">185</span><code><span style="color: #000000"> <span style="color: #0000bb">creaEventoCal </span><span style="color: #007700">(</span><span style="color: #0000bb">$cliente</span><span style="color: #007700">, </span><span style="color: #0000bb">$titulo </span><span style="color: #007700">= </span><span style="color: #0000bb">$titulo_evento</span><span style="color: #007700">,&#160; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">186</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $descrip</span><span style="color: #007700">=</span><span style="color: #0000bb">$texto</span><span style="color: #007700">, </span><span style="color: #0000bb">$donde </span><span style="color: #007700">= </span><span style="color: #0000bb">null</span><span style="color: #007700">,&#160; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">187</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $FechaIni </span><span style="color: #007700">= </span><span style="color: #0000bb">null</span><span style="color: #007700">, </span><span style="color: #0000bb">$HoraIni </span><span style="color: #007700">= </span><span style="color: #0000bb">null</span><span style="color: #007700">,&#160; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">188</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $FechaFin </span><span style="color: #007700">= </span><span style="color: #0000bb">null</span><span style="color: #007700">, </span><span style="color: #0000bb">$HoraFin </span><span style="color: #007700">= </span><span style="color: #0000bb">null</span><span style="color: #007700">, </span><span style="color: #0000bb">$tzOffset </span><span style="color: #007700">= </span><span style="color: #dd0000">'+02'</span><span style="color: #007700">, </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">189</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; $metodo_recordatorio </span><span style="color: #007700">= </span><span style="color: #0000bb">$recordatorio</span><span style="color: #007700">,&#160; </span><span style="color: #0000bb">$tiempo_recordatorio</span><span style="color: #007700">=</span><span style="color: #0000bb">5</span><span style="color: #007700">); </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">190</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">191</span><code><span style="color: #000000"> <span style="color: #0000bb"></span><span style="color: #007700">if (</span><span style="color: #0000bb">$envio_mail</span><span style="color: #007700">){ </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">192</span><code><span style="color: #000000"> <span style="color: #0000bb">&#160;&#160;&#160; mail</span><span style="color: #007700">(</span><span style="color: #0000bb">$usuario</span><span style="color: #007700">, </span><span style="color: #0000bb">$titulo_evento</span><span style="color: #007700">, </span><span style="color: #0000bb">$texto</span><span style="color: #007700">);&#160;&#160;&#160;&#160; </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">193</span><code><span style="color: #000000"> <span style="color: #0000bb"></span><span style="color: #007700">} </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">194</span><code><span style="color: #000000"> <span style="color: #0000bb"></span></span></code> <br /><span style="font-size: 90%; color: #cccccc">195</span><code><span style="color: #000000"> <span style="color: #0000bb">?&gt;</span> </span></code> Carlos Longarelahttp://www.blogger.com/profile/08414487385121092377noreply@blogger.comtag:blogger.com,1999:blog-6182562647618395882.post-89351349632278652562008-05-08T17:10:00.001+02:002008-05-08T19:33:37.857+02:00Avisos al móvil de fallos del servidor (I)<p>Hac&#237;a unas semanas que ven&#237;a pensando en un modo de estar al corriente de si alguno de los servidores estaba ca&#237;do. </p> <p>Pens&#233; que desde uno de los servidores o desde un ordenador local podr&#237;a ejecutar un script peri&#243;dicamente mediante un cron o programador de tareas en windows (al final me decid&#237; por un cron en uno de los servidores cada 15 minutos).</p> <p>La idea de dicho script (que he realizado en php) es que comprobase determinadas IP's y puertos y si fallasen enviasen un mail avisando del problema.</p> <p>Pero la cuesti&#243;n, es que si no tengo acceso al mail en ese momento, no lo he mirado, etc. puedo tardar bastante tiempo en saber que ha ocurrido un fallo y la idea siguiente era que me avisase al m&#243;vil.</p> <p>Todas las opciones pasaban por pasarelas de pago y no me convenc&#237;an, pero me he dado cuenta que uno de los servicios que utilizo, el Google Calendar (<a title="https://www.google.com/calendar/" href="https://www.google.com/calendar/">https://www.google.com/calendar/</a>) me permit&#237;a el aviso a mi m&#243;vil de los eventos que as&#237; marcase.</p> <p>Manos a la obra, ahora s&#243;lo me quedaba poder acceder al calendario de Google desde mi script y poner una entrada del estado del servidor cada vez que se ejecutase el script, para tener un hist&#243;rico de su <em>uptime</em> y en caso de fallo poner un aviso a dicha entrada, marc&#225;ndole un recordatorio por mail y por sms (le pongo recordatorio 5 minutos antes y marco la hora del evento 7 minutos despu&#233;s), por lo que antes de que pasen 2 minutos del fallo, tengo un aviso del fallo en el m&#243;vil.</p> <p>Este es el aspecto de mi calendario del estado del servidor con las entradas cada 15 minutos:</p> <p><img height="125" alt="Calendario de Estado del Servidor" src="http://lh5.ggpht.com/fotodng/SCMXt4uu8pI/AAAAAAAAANA/M6gMnyR3_lQ/calendario_server%5B15%5D.jpg?imgmax=800" width="400" /> </p> <p>Despu&#233;s de varias semanas probando el sistema, los resultados son excelentes, as&#237; que paso a compartir con vosotros el m&#233;todo que podr&#237;a perfeccionarse mucho m&#225;s, pero por ahora por falta de tiempo y porque es funcional lo voy a dejar tal como est&#225;.</p> <p>Lo primero es configurar el m&#243;vil en el calendario, si no le hemos hecho antes, por lo que debemos ir a <em>Configuraci&#243;n</em> y ah&#237; seleccionar la pesta&#241;a <em>Configuraci&#243;n para m&#243;viles</em>:</p> <p><font size="1">(Haz click sobre la imagen para verla a mayor tama&#241;o).</font></p> <p><a href="http://lh4.ggpht.com/fotodng/SCMXuouu8qI/AAAAAAAAANI/h_M79_yAC6w/s1600-h/config_movil%5B6%5D.jpg" target="_blank"><img height="129" alt="Configuraci&#243;n para m&#243;viles del calendario" src="http://lh3.ggpht.com/fotodng/SCMXvYuu8rI/AAAAAAAAANQ/L8dvn5We-F0/config_movil_thumb%5B4%5D.jpg?imgmax=800" width="400" /></a> </p> <p>Ah&#237; deberemos seleccionar nuestro <em>pa&#237;s</em>, poner nuestro <em>n&#250;mero de tel&#233;fono</em> y pulsar en el bot&#243;n <em>Enviar c&#243;digo de verificaci&#243;n</em>, una vez recibido este en nuestro m&#243;vil, rellenaremos la casilla <em>C&#243;digo de verificaci&#243;n</em> y pulsaremos <em>Finalizar configuraci&#243;n</em>.</p> <p>El siguiente paso ser&#225; crear un calendario para guardar nuestros avisos (podemos utilizar uno de nuestros calendarios existentes), para lo que iremos a <em>Configuraci&#243;n</em> y seleccionamos la pesta&#241;a <em>Calendarios</em>, una vez en ella pulsamos el bot&#243;n <em>Crear un calendario nuevo:</em></p> <p><font size="1">(Haz click sobre las im&#225;genes para verlas a mayor tama&#241;o).</font></p> <p><a href="http://lh6.ggpht.com/fotodng/SCMXwIuu8sI/AAAAAAAAANY/1H10L34FzaA/s1600-h/crear_calendario%5B6%5D.jpg" target="_blank"><img height="120" alt="Crear Calendario" src="http://lh5.ggpht.com/fotodng/SCMXw4uu8tI/AAAAAAAAANg/OQ77nbOB6Uw/crear_calendario_thumb%5B4%5D.jpg?imgmax=800" width="400" /></a> </p> <p><a href="http://lh4.ggpht.com/fotodng/SCMXxouu8uI/AAAAAAAAANo/vqTaEGrxZCE/s1600-h/crear_calendario2%5B6%5D.jpg" target="_blank"><img height="242" alt="Crear Calendario" src="http://lh3.ggpht.com/fotodng/SCMXyYuu8vI/AAAAAAAAANw/latGfIREWLQ/crear_calendario2_thumb%5B4%5D.jpg?imgmax=800" width="400" /></a> </p> <p>Una vez que ya tenemos configurado nuestro m&#243;vil y hemos creado el nuevo calendario, deberemos ver el ID de nuestro calendario, para lo que iremos a <em>Configuraci&#243;n</em>, pesta&#241;a <em>Calendarios</em> y haremos clic sobre el enlace del calendario que deseemos ver, llev&#225;ndonos a <em>Detalles del calendario</em> donde podremos ver su ID en <em>Direcci&#243;n del calendario</em>:</p> <p><font size="1">(Haz click sobre la imagen para verla a mayor tama&#241;o).</font></p> <p><a href="http://lh4.ggpht.com/fotodng/SCMXzouu8wI/AAAAAAAAAN4/2Eb5n48UCQ4/s1600-h/id_calendario%5B5%5D.jpg" target="_blank"><img height="320" alt="ID del Calendario" src="http://lh3.ggpht.com/fotodng/SCMX0Yuu8xI/AAAAAAAAAOA/BKcfYGuF00Q/id_calendario_thumb%5B3%5D.jpg?imgmax=800" width="400" /></a> </p> <p>El siguiente paso es descargarnos las librer&#237;as de acceso al API de Google Calendar, que en el caso de optar por php como ha sido mi caso, est&#225;n disponibles desde la p&#225;gina de Zend en <a title="http://framework.zend.com/download/gdata" href="http://framework.zend.com/download/gdata">http://framework.zend.com/download/gdata</a> (Zend Gdata Downloads). Descargamos las librer&#237;as Zend Gdata y las descomprimimos en un directorio que despu&#233;s indicaremos en nuestro script.</p> <p>Nos queda el &#250;ltimo paso que es la creaci&#243;n del script encargado de comprobar los servidores y escribir las entradas en el calendario, pero esa parte la dejamos para una segunda entrega que escribir&#233; en breve.</p> Carlos Longarelahttp://www.blogger.com/profile/08414487385121092377noreply@blogger.comtag:blogger.com,1999:blog-6182562647618395882.post-53051829247337600042008-05-05T18:58:00.001+02:002008-05-05T18:58:24.274+02:00Nº 21 de Foto DNG On-line<p>N&#250;mero 21 On-line de la revista Foto DNG (Mayo de 2008 A&#241;o III).</p> <p><em><font size="1">*Haga click sobre la miniatura para verlo a gran tama&#241;o.</font></em></p> <p>Contenidos (102 p&#225;ginas):</p> <table cellspacing="0" cellpadding="2" width="400" border="0"><tbody> <tr> <td valign="top" width="374">Redacci&#243;n</td> <td valign="top" width="24">&#160; 5</td> </tr> <tr> <td valign="top" width="374">Novedades</td> <td valign="top" width="24">&#160; 6</td> </tr> <tr> <td valign="top" width="374">De T&#237;bet a Nepal, lugares lejanos, lugares intensos (Parte II)</td> <td valign="top" width="24">14</td> </tr> <tr> <td valign="top" width="374">Viaje a Estocolmo</td> <td valign="top" width="24">32</td> </tr> <tr> <td valign="top" width="374">Fotograf&#237;a de Ignacio Pulido</td> <td valign="top" width="24">46</td> </tr> <tr> <td valign="top" width="374">Fotograf&#237;a de Peter Baran</td> <td valign="top" width="24">60</td> </tr> <tr> <td valign="top" width="374">Es Ilegal Publicar Im&#225;genes de Otros?</td> <td valign="top" width="24">72</td> </tr> <tr> <td valign="top" width="374">Hechos y curiosidades en la historia de la fotograf&#237;a (I)</td> <td valign="top" width="24">74</td> </tr> <tr> <td valign="top" width="374">Pantanal: duro, inh&#243;spito pero paradisiaco (Parte II)</td> <td valign="top" width="24">78</td> </tr> <tr> <td valign="top" width="374">Noticias-Eventos</td> <td valign="top" width="24">94</td> </tr> </tbody></table> <p>&#160;</p> <div align="center"><embed style="width: 323px; height: 230px" name="flashticker" align="middle" src="http://static.issuu.com/webembed/viewers/style1/v1/IssuuViewer.swf" type="application/x-shockwave-flash" flashvars="mode=preview&amp;previewLayout=white&amp;username=fotodng&amp;docName=dng21&amp;documentId=080505005255-774c2264e3df40afa2e1b0d191afc187&amp;autoFlip=true&amp;backgroundColor=ffffff&amp;layout=grey" salign="l" scale="noscale" quality="high" /></div> <div align="center"> <div style="width: 323px; text-align: left"><a href="http://issuu.com" target="_blank"><img src="http://static.issuu.com/webembed/previewers/style1/v1/m1.gif" border="0" /></a><a href="http://issuu.com/fotodng/docs/dng21?mode=embed&amp;documentId=080505005255-774c2264e3df40afa2e1b0d191afc187&amp;layout=grey" target="_blank"><img src="http://static.issuu.com/webembed/previewers/style1/v1/m2.gif" border="0" /></a><a href="http://issuu.com/embed/guide?documentId=080505005255-774c2264e3df40afa2e1b0d191afc187&amp;width=425&amp;height=301" target="_blank"><img src="http://static.issuu.com/webembed/previewers/style1/v1/m3.gif" border="0" /></a></div> </div> <p> <br /></p> <p>Servicio en flash ofrecido por <a href="http://issuu.com">Issuu</a>.</p> <p>Descarga de la revista en formato pdf desde <a title="http://www.fotodng.com/revista/descarga.php" href="http://www.fotodng.com/revista/descarga.php">http://www.fotodng.com/revista/descarga.php</a></p> Carlos Longarelahttp://www.blogger.com/profile/08414487385121092377noreply@blogger.comtag:blogger.com,1999:blog-6182562647618395882.post-88081894790562973202008-04-30T17:37:00.001+02:002008-04-30T17:37:32.769+02:00Nuevo diseño de la web Foto DNG<p>Hoy por fin despu&#233;s de numerosas pruebas, acabamos de subir la nueva apariencia de la web de Foto DNG, manteniendo un poco m&#225;s los colores corporativos de nuestro logo y jugando con la gama de rojos y negros.</p> <p>Pod&#233;is ver que se ha a&#241;adido alguna nueva secci&#243;n como la de enlaces o la de noticias web con los rss de algunas webs y que esperamos ir completando poco a poco.</p> <p>Adem&#225;s, por fin enlazamos este blog, que aunque est&#225; on-line desde diciembre del a&#241;o pasado, a&#250;n no lo hab&#237;amos enlazado ni hecho referencia al mismo.</p> <p>Esperamos que si encontr&#225;is alg&#250;n fallo o ten&#233;is sugerencias, nos las hag&#225;is llegar desde aqu&#237; en forma de comentarios, desde la secci&#243;n contacto de la web, en el foro de la revista (<a href="http://foros.fotodng.com">http://foros.fotodng.com</a>) o directamente al mail <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="23" alt="mail_dng" src="http://lh3.ggpht.com/fotodng/SBiSOy3z7yI/AAAAAAAAAM4/Eq3nC5Xude8/mail_dng%5B4%5D.gif?imgmax=800" width="162" border="0" /> </p> <p>Esperamos que la nueva web sea de vuestro agrado, un saludo.</p> Carlos Longarelahttp://www.blogger.com/profile/08414487385121092377noreply@blogger.comtag:blogger.com,1999:blog-6182562647618395882.post-80182716519903230372008-04-29T19:37:00.001+02:002008-04-29T19:37:22.659+02:00Nº 20 de Foto DNG On-line<p>N&#250;mero 20 On-line de la revista Foto DNG (Abril de 2008 A&#241;o III).</p> <p>&#160;</p> <div align="center"><embed style="width: 323px; height: 230px" name="flashticker" align="middle" src="http://static.issuu.com/webembed/viewers/style1/v1/IssuuViewer.swf" type="application/x-shockwave-flash" flashvars="mode=preview&amp;previewLayout=white&amp;username=fotodng&amp;docName=dng20&amp;documentId=080415120912-48eeac44a2e9435fb066f2e0d02f13e5&amp;autoFlip=true&amp;backgroundColor=ffffff&amp;layout=grey" salign="l" scale="noscale" quality="high" /></div> <div align="center"> <div style="width: 323px; text-align: left"><a href="http://issuu.com" target="_blank"><img src="http://static.issuu.com/webembed/previewers/style1/v1/m1.gif" border="0" /></a><a href="http://issuu.com/fotodng/docs/dng20?mode=embed&amp;documentId=080415120912-48eeac44a2e9435fb066f2e0d02f13e5&amp;layout=grey" target="_blank"><img src="http://static.issuu.com/webembed/previewers/style1/v1/m2.gif" border="0" /></a><a href="http://issuu.com/embed/guide?documentId=080415120912-48eeac44a2e9435fb066f2e0d02f13e5&amp;width=425&amp;height=301" target="_blank"><img src="http://static.issuu.com/webembed/previewers/style1/v1/m3.gif" border="0" /></a></div> </div> <p>&#160;</p> <p>Servicio ofrecido por <a href="http://issuu.com">Issuu</a>.</p> Carlos Longarelahttp://www.blogger.com/profile/08414487385121092377