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ómica <strong><em>Blown Out</em></strong> de <strong>Jon Harsem </strong>del número 23 de Foto DNG.</p> <p>Podé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º 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ñ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ño. </p> <p>Contenidos (98 páginas): </p> <ul> <li>Redacción (Página 2). </li> <li>Indice (Página 3). </li> <li>Novedades (Página 4). </li> <li>Guatemala Maya (Página 16). </li> <li>Sony a700 (Página 32). </li> <li>Fotografía de Edgar Núñez (Página 40). </li> <li>Raúl Jiménez Ruiz (Página 52). </li> <li>Conversión a Blanco y negro. Métodos de "Toning" (Página 68). </li> <li>Donna Nook (Página 72). </li> <li>Noticias Eventos (Página 82). </li> <li>Tercer Concurso Fotográfico Foto DNG (Pá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&previewLayout=white&username=fotodng&docName=dng23&documentId=080709161255-988266fb17b644768a19f6bfd00bc6c1&autoFlip=true&backgroundColor=ffffff&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éis podido observar los que echaseis un vistazo al número 22 de la revista Foto DNG, a partir de este número empezamos a publicar la tira cómica <strong><em>Blown Out</em></strong> del australiano <strong>Jon Harsem</strong>.</p> <p>Podéis ver las tiras originales desde <a href="http://www.fotodojo.org" target="_blank">http://www.fotodojo.org</a></p> <p> </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º 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ñ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úmero 22 On-line de la revista Foto DNG (Junio de 2008 Año III).</p> <p><em>*Haga click sobre la miniatura para ver a gran tamaño.</em></p> <p>Contenidos (106 páginas):</p> <ul> <li>Redacción (Página 5). </li> <li>Novedades (Página 6). </li> <li>Desde Santiago de Cuba (Página 18). </li> <li>Alberto Conde (Página 44). </li> <li>www.tualbum.es. Da vida a tus fotos (Página 54). </li> <li>Noche del blues en Corralejo (Página 60). </li> <li>Tintes en fotografía en blanco y negro (I) (Página 64). </li> <li>Fauna en Farne Islands (Página 72). </li> <li>Noticias-Eventos (Página 84). </li> <li>Tercer Concurso Fotográfico Foto DNG (Página 96). </li> </ul> <p> </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&previewLayout=white&username=fotodng&docName=dng22&documentId=080605224030-47835be0a7464185b2a4be7a1d50d222&autoFlip=true&backgroundColor=ffffff&layout=grey" salign="l" scale="noscale" quality="high" /></div> <div align="center"> </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ó 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á!), el sistema al estar distribuido entre las diferentes má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ágina, ya que 500Mb de espacio no son suficientes ni por asomo para los datos almacenados en la página y 1Mb. de tamaño má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án cada uno entre 10 y 20Mb.</p> <p>Pero la solución está en la versió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ón de pago presumiblemente hasta comienzos del año que viene, además por ahora el lenguaje soportado es Python.</p> <p>De momento vamos a comenzar con la migración de la página de Foto DNG a Python y llegado el momento valoraremos si damos el paso del actual servidor dedicado (que se nos queda pequeño) al Google App Engine. La inversión en tiempo para esta tarea será 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ía desde los 45,95 GB. en el número 12 hasta los 144,73 GB. del número 2. El total de ancho de banda consumido só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ón al no recibir el SMS de confirmación necesario para dicha alta, pero a la espera de la solució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ágina de Foto DNG nuestro sistema de Búsquedas con la tecnología de Google ™ para ofrecer un nuevo servicio que busca tanto en la pá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ón os pueda ser de utilidad, mientras seguimos con la bú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ú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á disponible el tercer concurso fotográ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ón contamos con los premios de nuestro patrocinador del concurso Robisa y que son los siguientes:</p> <p> </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ía de Rodolfo Biber <a href="http://www.robisa.es/">http://www.robisa.es/</a></p> <p> </p> <p> </p> <p> </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" /> </strong><strong>Primer Finalista:</strong> Metz mecablitz 36 AF-4 dedicado para la marca, cortesía de Rodolfo Biber <a href="http://www.robisa.es/">http://www.robisa.es/</a></p> <p> </p> <p> </p> <p> </p> <p> </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ía de Rodolfo Biber <a href="http://www.robisa.es/">http://www.robisa.es/</a></p> <p> </p> <p> </p> <p> </p> <p> </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ía de Rodolfo Biber <a href="http://www.robisa.es/">http://www.robisa.es/</a></p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p>Esperamos que la participación de este año, al menos iguale la de la edición anterior en la que recibimos 1.958 fotos.</p> <p>Animaros a participar y no os olvidéis de leer previamente las Bases que podé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í os pongo el có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"><? </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">,  </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">7</span><code><span style="color: #000000"> <span style="color: #0000bb">    $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">,  </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">8</span><code><span style="color: #000000"> <span style="color: #0000bb">    $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">,  </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">9</span><code><span style="color: #000000"> <span style="color: #0000bb">    $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">    $metodo_recordatorio </span><span style="color: #007700">= </span><span style="color: #dd0000">'sms'</span><span style="color: #007700">,  </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">    </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">        $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">    </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">    </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">        $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">    </span><span style="color: #007700">}     </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">    </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">        $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">        $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">        $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">        $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">    </span><span style="color: #007700">}       </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">    </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">        $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">    </span><span style="color: #007700">}     </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">30</span><code><span style="color: #000000"> <span style="color: #0000bb">         </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">31</span><code><span style="color: #000000"> <span style="color: #0000bb">    $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">    $nuevaEntrada </span><span style="color: #007700">= </span><span style="color: #0000bb">$gc</span><span style="color: #007700">-></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">    $nuevaEntrada</span><span style="color: #007700">-></span><span style="color: #0000bb">title </span><span style="color: #007700">= </span><span style="color: #0000bb">$gc</span><span style="color: #007700">-></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">    $nuevaEntrada</span><span style="color: #007700">-></span><span style="color: #0000bb">where  </span><span style="color: #007700">= array(</span><span style="color: #0000bb">$gc</span><span style="color: #007700">-></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">    $nuevaEntrada</span><span style="color: #007700">-></span><span style="color: #0000bb">content </span><span style="color: #007700">= </span><span style="color: #0000bb">$gc</span><span style="color: #007700">-></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">    $nuevaEntrada</span><span style="color: #007700">-></span><span style="color: #0000bb">content</span><span style="color: #007700">-></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">    $cuando </span><span style="color: #007700">= </span><span style="color: #0000bb">$gc</span><span style="color: #007700">-></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">    $cuando</span><span style="color: #007700">-></span><span style="color: #0000bb">startTime </span><span style="color: #007700">= </span><span style="color: #dd0000">"{$FechaIni}T{$HoraIni}:00.000{$tzOffset}:00"</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">    $cuando</span><span style="color: #007700">-></span><span style="color: #0000bb">endTime </span><span style="color: #007700">= </span><span style="color: #dd0000">"{$FechaFin}T{$HoraFin}:00.000{$tzOffset}:00"</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">    $nuevaEntrada</span><span style="color: #007700">-></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">    </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">    $recordatorio </span><span style="color: #007700">= </span><span style="color: #0000bb">$gc</span><span style="color: #007700">-></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">    $recordatorio</span><span style="color: #007700">-></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">    $recordatorio</span><span style="color: #007700">-></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">    </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">    $cuando</span><span style="color: #007700">-></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">    $EntradaCreada </span><span style="color: #007700">= </span><span style="color: #0000bb">$gc</span><span style="color: #007700">-></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">    </span><span style="color: #007700">return </span><span style="color: #0000bb">$EntradaCreada</span><span style="color: #007700">-></span><span style="color: #0000bb">id</span><span style="color: #007700">-></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">    $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">    </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">        $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">"\n"</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">        $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">        </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">    </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">        </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">        $texto</span><span style="color: #007700">=</span><span style="color: #dd0000">"Conectando a [$ip:$puerto]=>"</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">        $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">        </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">            $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">"\n"</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">            $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">            </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">        </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">            $texto</span><span style="color: #007700">.=</span><span style="color: #dd0000">"OK.\n"</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">            </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">        </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">        socket_close</span><span style="color: #007700">(</span><span style="color: #0000bb">$socket</span><span style="color: #007700">);         </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">76</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">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">    $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">    $texto</span><span style="color: #007700">= </span><span style="color: #dd0000">"Conectando a [$server_bd -> $db]=>"</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">    </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">        </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">            $texto</span><span style="color: #007700">.=</span><span style="color: #dd0000">"OK.\n"</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">            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">            </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">        </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">            $texto</span><span style="color: #007700">.=</span><span style="color: #0000bb">mysql_errno</span><span style="color: #007700">().</span><span style="color: #dd0000">": "</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">            $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">            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">            </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">        </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">    </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">        $texto</span><span style="color: #007700">.=</span><span style="color: #0000bb">mysql_errno</span><span style="color: #007700">().</span><span style="color: #dd0000">": "</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">        $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">        </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">    </span><span style="color: #007700">}     </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">"usuario.gmail.calendario@gmail.com"</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">"clave_usuario_gmail"</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">    $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">    $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">" en los servicios de Google.\n"</span><span style="color: #007700">;  </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">157</span><code><span style="color: #000000"> <span style="color: #0000bb">    </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">")\n"</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">    $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">;     </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">177</span><code><span style="color: #000000"> <span style="color: #0000bb">    $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">    $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">    $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">    $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">    $envio_mail</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">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">,  </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">186</span><code><span style="color: #000000"> <span style="color: #0000bb">    $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">,  </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">187</span><code><span style="color: #000000"> <span style="color: #0000bb">    $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">,  </span></span></code> <br /><span style="font-size: 90%; color: #cccccc">188</span><code><span style="color: #000000"> <span style="color: #0000bb">    $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">    $metodo_recordatorio </span><span style="color: #007700">= </span><span style="color: #0000bb">$recordatorio</span><span style="color: #007700">,  </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">    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">);     </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">?></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ía unas semanas que venía pensando en un modo de estar al corriente de si alguno de los servidores estaba caído. </p> <p>Pensé que desde uno de los servidores o desde un ordenador local podría ejecutar un script periódicamente mediante un cron o programador de tareas en windows (al final me decidí 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ó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óvil.</p> <p>Todas las opciones pasaban por pasarelas de pago y no me convencí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ía el aviso a mi móvil de los eventos que así marcase.</p> <p>Manos a la obra, ahora só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órico de su <em>uptime</em> y en caso de fallo poner un aviso a dicha entrada, marcándole un recordatorio por mail y por sms (le pongo recordatorio 5 minutos antes y marco la hora del evento 7 minutos después), por lo que antes de que pasen 2 minutos del fallo, tengo un aviso del fallo en el mó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és de varias semanas probando el sistema, los resultados son excelentes, así que paso a compartir con vosotros el método que podría perfeccionarse mucho más, pero por ahora por falta de tiempo y porque es funcional lo voy a dejar tal como está.</p> <p>Lo primero es configurar el móvil en el calendario, si no le hemos hecho antes, por lo que debemos ir a <em>Configuración</em> y ahí seleccionar la pestaña <em>Configuración para móviles</em>:</p> <p><font size="1">(Haz click sobre la imagen para verla a mayor tamañ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ón para mó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í deberemos seleccionar nuestro <em>país</em>, poner nuestro <em>número de teléfono</em> y pulsar en el botón <em>Enviar código de verificación</em>, una vez recibido este en nuestro móvil, rellenaremos la casilla <em>Código de verificación</em> y pulsaremos <em>Finalizar configuración</em>.</p> <p>El siguiente paso será crear un calendario para guardar nuestros avisos (podemos utilizar uno de nuestros calendarios existentes), para lo que iremos a <em>Configuración</em> y seleccionamos la pestaña <em>Calendarios</em>, una vez en ella pulsamos el botón <em>Crear un calendario nuevo:</em></p> <p><font size="1">(Haz click sobre las imágenes para verlas a mayor tamañ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óvil y hemos creado el nuevo calendario, deberemos ver el ID de nuestro calendario, para lo que iremos a <em>Configuración</em>, pestaña <em>Calendarios</em> y haremos clic sobre el enlace del calendario que deseemos ver, llevándonos a <em>Detalles del calendario</em> donde podremos ver su ID en <em>Dirección del calendario</em>:</p> <p><font size="1">(Haz click sobre la imagen para verla a mayor tamañ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ías de acceso al API de Google Calendar, que en el caso de optar por php como ha sido mi caso, están disponibles desde la pá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ías Zend Gdata y las descomprimimos en un directorio que después indicaremos en nuestro script.</p> <p>Nos queda el último paso que es la creació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é 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úmero 21 On-line de la revista Foto DNG (Mayo de 2008 Año III).</p> <p><em><font size="1">*Haga click sobre la miniatura para verlo a gran tamaño.</font></em></p> <p>Contenidos (102 páginas):</p> <table cellspacing="0" cellpadding="2" width="400" border="0"><tbody> <tr> <td valign="top" width="374">Redacción</td> <td valign="top" width="24">  5</td> </tr> <tr> <td valign="top" width="374">Novedades</td> <td valign="top" width="24">  6</td> </tr> <tr> <td valign="top" width="374">De Tí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ía de Ignacio Pulido</td> <td valign="top" width="24">46</td> </tr> <tr> <td valign="top" width="374">Fotografía de Peter Baran</td> <td valign="top" width="24">60</td> </tr> <tr> <td valign="top" width="374">Es Ilegal Publicar Imá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ía (I)</td> <td valign="top" width="24">74</td> </tr> <tr> <td valign="top" width="374">Pantanal: duro, inhó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> </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&previewLayout=white&username=fotodng&docName=dng21&documentId=080505005255-774c2264e3df40afa2e1b0d191afc187&autoFlip=true&backgroundColor=ffffff&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&documentId=080505005255-774c2264e3df40afa2e1b0d191afc187&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&width=425&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és de numerosas pruebas, acabamos de subir la nueva apariencia de la web de Foto DNG, manteniendo un poco más los colores corporativos de nuestro logo y jugando con la gama de rojos y negros.</p> <p>Podéis ver que se ha añadido alguna nueva secció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ás, por fin enlazamos este blog, que aunque está on-line desde diciembre del año pasado, aún no lo habíamos enlazado ni hecho referencia al mismo.</p> <p>Esperamos que si encontráis algún fallo o tenéis sugerencias, nos las hagáis llegar desde aquí en forma de comentarios, desde la secció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úmero 20 On-line de la revista Foto DNG (Abril de 2008 Año III).</p> <p> </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&previewLayout=white&username=fotodng&docName=dng20&documentId=080415120912-48eeac44a2e9435fb066f2e0d02f13e5&autoFlip=true&backgroundColor=ffffff&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&documentId=080415120912-48eeac44a2e9435fb066f2e0d02f13e5&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&width=425&height=301" target="_blank"><img src="http://static.issuu.com/webembed/previewers/style1/v1/m3.gif" border="0" /></a></div> </div> <p> </p> <p>Servicio ofrecido por <a href="http://issuu.com">Issuu</a>.</p> Carlos Longarelahttp://www.blogger.com/profile/08414487385121092377