Archivo de la categoría: Programación

¿Como saber cuando cae el domingo de pascua de un año en particular con PHP? – Funciones curiosas de PHP

Hace poco que ha pasado la Semana Santa y las fechas en las que cae es algo que nos preguntamos cada año, es muy típica la conversación – ¿Oye el año que viene cuando cae Semana Santa?, puff ni idea.

Hagamos un poco de historia:

La fecha del Domingo de Pascua fue definida por el Concilio de Nicea en el año 325 D.C. como el domingo después de la primera luna llena que cae en o después del Equinocio de Primavera. El equinoccio se asume que cae en el 21 de marzo, por lo que el cálculo se reduce a determinar la fecha de la luna llena y la fecha del siguiente domingo.

Para poder calcular cuando cae ese Domingo en un año en particular, podemos usar 2 funciones con PHP, easter_days() y easter_date().

easter_date

Obtener la fecha Unix para la medianoche de Pascua de un año dado


<span class="type">int</span> <span class="methodname">easter_date</span> ([ <span class="methodparam"><span class="type">int</span> <code class="parameter">$year</code><span class="initializer"> = date("Y")</span></span> ] )

Si no le pasamos ningún parámetro nos devuelve la fecha Unix del domingo de pascua del año actual. Esta función tiene un problema, y es nos devolverá un error si en año no esta en el rango de 1970 y 2037, lo cual es lógico si nos devuelve la fecha Unix. Para calcular cuando cae el domingo de Pascua en años anteriores o posteriores a ese rango utilizaremos easter_days.

easter_days

Obtener el número de días despúes del 21 de marzo en el cuál cae Pascua para un año dado


<span class="type">int</span> <span class="methodname">easter_days</span> ([ <span class="methodparam"><span class="type">int</span> <code class="parameter">$year</code><span class="initializer"> = date("Y")</span></span> [, <span class="methodparam"><span class="type">int</span> <code class="parameter">$method</code><span class="initializer"> = CAL_EASTER_DEFAULT</span></span> ]] )

+ información: http://php.net/manual/es/function.easter-date.php http://php.net/manual/es/function.easter-days.php

Agregar mas de un destinatario al enviar Mails con Zend_Mail – Zend Framework

Supongamos el siguiente ejemplo de Zend_Mail


$mail = new Zend_Mail()

$mail->setBodyText('This is the text of the mail.');

$mail->setFrom('somebody@example.com', 'Some Sender');

$mail->addTo('somebody_else@example.com', 'Some Recipient');

$mail->addCc('somebody_else@example.com', 'Some Recipient');

$mail->addBcc('somebody_else@example.com', 'Some Recipient');

$mail->setSubject('TestSubject');

$mail->send();

Si queremos agregar mas de un destinatario al addTo(), addCc() y al addBcc() lo podemos hacer por medio de un array de direcciones de correo. En el caso del addTo() y el addCc(), estas arrays pueden ser asociativas, y en estas la key es el nombre del destinatario. Es decir:


$toRecipients = array('Some Recipient' => 'somebody_else@example.com', 'Other' => 'other@example.com');

$hideRecipients = array('one@example.com', 'two@example.com');

$mail->addTo($toRecipients);

$mail->addCc($toRecipients);

$mail->addBcc($hideRecipients);

+ Información: http://framework.zend.com/manual/1.12/en/zend.mail.adding-recipients.html

Los números de 2014

Los duendes de las estadísticas de WordPress.com prepararon un informe sobre el año 2014 de este blog.

Aquí hay un extracto:

El Museo del Louvre tiene 8.5 millones de visitantes por año. Este blog fue visto cerca de 99.000 veces en 2014. Si fuese una exposición en el Museo del Louvre, se precisarían alrededor de 4 días para que toda esa gente la visitase.

Haz click para ver el reporte completo.

Required en radio o checkbox multiple

A veces cuando diseñamos un formulario tenemos que incluir en este elementos radio o checkbox, y queremos que estos sean obligatorios, en el resto de elementos lo podemos tener claro le ponemos el atributo «required» y ya, pero estos elementos sueles dar multiples opciones, entonces que hacemos, lo ponemos en todos el atributo «required», pues si, esa es una de las soluciones, pero hay otra mas sencilla, que es ponerlo solo en el ultimo.


<input type='checkbox' name='opcion' value='si' required>

<input type='checkbox' name='opcion' value='no' required>


<input type='checkbox' name='opcion' value='si'>

<input type='checkbox' name='opcion' value='no' required>

Ejemplo: http://www.sacredheartprimary.co.uk/macss-js/webforms2/testsuite/021.html

Instalar Zend Server 7 en Linux Mint

Seguramente a muchos no les gusta el Zend Server, unos dirán que es muy pesado, que consume muchos recursos, que es muy lento, que mejor montar un Apache puro con php, etc …, pero a la hora de desarrollar, es muy completo y nos ofrece un montón de ayudas, una de ellas es el Z-Ray que aparece en esta versión, con el que desde el propio navegador web podemos acceder a los procesos y a las consultas que realiza a la base de datos sin tener que habilitar el depurador, simplemente genial.

En fin, si os descargais la versión de Linux y usais Centos, Red Hat, Debian o Ubuntu, no tendréis problema a la hora de instalarlo, pero si usais otra distro como Linux Mint, os dara un error diciendo que no lo podeis instalar, la solución a este problema es sencilla, editamos el fichero que lanzamos para la instalación install_zs.sh y en la linea 17 donde pone:


SUPPORTED_OS='CentOS|Red Hat Enterprise Linux Server|Enterprise Linux Enterprise Linux Server|SUSE|Debian GNU/Linux|Ubuntu|Oracle Linux Server'

Agregamos al final Linux Mint o el nombre del sistema que estamos usando


SUPPORTED_OS='CentOS|Red Hat Enterprise Linux Server|Enterprise Linux Enterprise Linux Server|SUSE|Debian GNU/Linux|Ubuntu|Oracle Linux Server|Linux Mint'

Una vez modificado volvemos a lanzar la instalación y se instala correctamente

Windows Tip – Maximize a Window from the Keyboard

Crea libros de programación y ejercicios con GitBook

Este es un proyecto con el cual podemos crear nuestros libros de cursos de programación o webs con ejercicios. Os recomiendo que veais el ejemplo de curso de Javascript

Función para eliminar los espacios no deseados dentro de un texto

Alguna vez nos podemos encontrar con que a la hora de que el usuario introduzca texto en nuestra aplicación, este de una manera «no voluntaria» nos ponga espacios en blanco extra. Esto lo podemos solucionar de una manera simple con un trim() o ltrim() o rtrim(), ¿pero que pasa si los espacios extras estan dentro del texto? Para esto he creado una función la cual nos deja solo un espacio entre palabras.

<?php
function quitaEspacios($texto)
{
$partes = explode(' ', $texto);
$textoLimpio = "";
foreach ($partes as $parte) {
if (strlen($parte) > 0 || $parte != "") {
$nombreLimpio .= $parte." ";
}
}
return trim($nombreLimpio);
}

Generador de botones CSS

Buscando por internet he encontrado esta pagina en la cual podemos crear nuestros botones personalizados y generar el código para usarlos en nuestra web.

sublime ToggleQuotes – plugin para cambiar las comillas en Sublime Text

Cuando programamos puede ser que a veces usemos comillas dobles » o comillas simples ‘ depende de lo que estemos haciendo,  incluso puede ser que nuestro editor este configurado para ponernos las comillas, ya sean unas u otras automáticamente de una manera determinada. Si queremos tener las comillas que he hemos usado en ese elemento, a veces puede resultar un poco tedioso, pues bien, con el plugin para Sublime Text ToggleQuotes, podemos cambiar de una manera sencilla las comillas usadas en un elemento en particular tanto de simple a dobles como de dobles a simple.

https://github.com/spadgos/sublime-ToggleQuotes