Instrucciones iterativas en PHP: bucles For

php

Estructuras de control de flujo en PHP

Valencia, 02/10/2012
El lenguaje PHP dispone también de un tipo instrucciones llamadas iterativas o de repetición ‘heredadas’  del lenguaje C. Son los conocidos ‘bucles‘, instrucciones que realizan una determinada acción un número determinado de veces que se especifica a través de un contador. Es como si diéramos cuerda a una instrucción para que se realice hasta que finalice el contador que hemos especificado, el ‘paso’, por llamarlo de algún modo. Se llaman bucles porque se repiten hasta que la condición deja de cumplirse, o lo que es lo mismo, se evalúa como falsa (FALSE).

Las instrucciones iterativas o bucles en PHP son las siguientes:

    • for
    • foreach
    • while
    • do… while

Veamos la primera de ellas, las  instrucciones o bucles for. Su sintaxis es la siguiente:

for ([Inicialización de la variable] ; [Condición] ; [Incremento o decremento de la variable])
{
[Instrucciones];
}

O como lo explica el portal oficial PHP.net:

for (expr1; expr2; expr3) sentencia

Veamos algunos ejemplos prácticos para entenderlo mejor:

<?php
/* ejemplo sencillo de bucle for en PHP */
for ($n = 1; $n <= 10; $n++)
{ 
echo "$n <br />";
//añadimos un salto de línea en HTML (<br />)
}
?>

 Lo muestro también con otro formato de visualización: 

<?php
/* ejemplo sencillo de bucle for en PHP */
for ($n = 1; $n <= 10; $n++) {
    echo “$n <br />”; //añadimos un salto de línea en HTML (<br />)
}
?>
Ejecutar ejemplo

EXPLICACIÓN del ejemplo: En primer lugar hemos inicializado la variable $n y le hemos dado el valor 1.Esto sólo se realizará la primera vez.  En segundo lugar, hemos establecido la condición, que la variable $n sea menor de 15 para que se realice la instrucción o sentencia que veremos al final . En  tercer lugar, hemos establecido el ‘paso’ -incremento o decremento- de la variable cada vez que ‘dé una vuelta’, es decir, cada vez que acabe y vuelva a la condición para evaluarla ($n <= 10;). En nuestro ejemplo, ha sido con un incremento de +1 a través del operador de incremento ($n++). Por último, y entre brackets, hemos especificado cuál es la instrucción que debe realizar e bucle for (echo $n;) mientras se cumpla la condición -sea verdadera o TRUE) ($n <= 10;) y con qué incremento ($n++),  $n+1 en nuestro caso. La instrucción for finaliza en cuanto la condición se evalúa como falsa (FALSE): en nuestro primer  ejemplo, en cuanto la variable $n alcanza el valor de 10.


NOTA:
Os debo unos cuantos ejemplos más.  En breve, prometido…

Lecturas recomendadas:
Definición de iteración
Estructura for
Estructuras control PHP

Retirada de más productos de Google en breve

“More Spring Cleaning” es como titula  Google en su blog oficial al cierre de productos
Retirada de más productos de Google en breve

Valencia,  30/09/2012, G.B.
Acabo de leer en el blog oficial de Google que este otoño, ‘la pequeña’ empresa de Mountain View va a cerrar unos cuantos productos y servicios más, aunque no dejará a los usuarios en ‘el aire’, sino que los fusionará con otros ya existentes y que han tenido mejor respuesta y beneficios, supongo. Google ha titulado el artículo o post que anuncia estos ‘recortes’ como “More Spring Cleaning” (no, no voy a comentar…).

Los productos y servicios que “sufren este recorte“, es decir, que desaparecerán a partir de este otoño, son los siguientes:

  • AdSense for Feeds
  • Classic Plus
  • Google Storage, que pasa a Picasa y Google Drive
  • Spreadsheet Gadgets
  • Google News Badges
  • Insights for Search, que pasa al rediseñado Google Trends
  • Places Directory for Android, ahora en Google Play
  • +1 Reports in Webmaster Tools, que pasa a Social reports en Google Analytics

Tenéis toda la información detallada en el blog oficial de Google, en el post More Spring Cleaning

Para ser que esto de los recortes está muy de moda últimamente, aunque sean por motivos y naturalezas distintas… 


Enlace relacionado:
Google’s retiring of products and services continues

Estructuras de control en PHP IV: el operador ternario

[Control de flujo o estructuras de control en PHP VI] Operador Ternario

Valencia, 28/09/2012, G.B.
Como os comenté en el anterior post, para finalizar con las instrucciones condicionales en PHP, vamos a conocer ahora el denominado  operador ternario. En realidad, no es una nueva clase de instrucción condicinal, sino una forma distinta de representar las instrucciones condicionales if/else, pero utilizando menos  líneas de código, por decirlo de algún modo.

Toma el nombre de ternario porque utiliza 3 argumentos; tiene tres partes definidas: (PARTE1) ? (PARTE2) : (PARTE3);

    • La primera parte es la condición o expresión que incluye la variable
    • La segunda el resultado de esa condición o expresión si el valor de la variable es verdadero (TRUE), cuando la condición se cumple
    • La tercera parte es el valor o expresión si el resultado es falso (FALSE), cuando no se cumple la condición

Sintaxis del operador ternario:

$NombreVariable = (condición) ? sentencia1-cuando-se-cumple : sentencia2-cuando-no-se-cumple;
Si utilizamos alguna instrucción o expresión como por ejemplo echo, la sintaxis sería:
echo ($NombreVariable = (condición)) ? sentencia1-cuando-se-cumple : sentencia2-cuando-no-se-cumple;

Otra forma de representarlo sería como lo hace la Wikipedia (añadiendo el punto y coma final de la expresión):

expresión boleana ? valor si cierto : valor si falso;
ó
variable = condición ? valor si es cierto : valor si es falso;

 Como podemos observar se constituye de (PARTE1) ? (PARTE2) : (PARTE3); que significa (CONDICIÓN) ? (RESULTADO1) : (RESULTADO2); También podemos representarlo así:
INSTRUCCIÓN (CONDICIÓN) ? (RESULTADO-SI-SE-CUMPLE) : (RESULTADO-SI-NO-SE-CUMPLE);

Vamos a verlo con un ejemplo. Primero escribiremos la instrucción condicional utilizando la estructura if/else que ya conocemos. En segundo lugar, la reescribiremos utilizando la sintaxis del operador ternario. El ejemplo, muy sencillo, nos mostrará el mensaje “Son las 7 y cuarto de la mañana, hora de levantarse!!“, si son las 7:15 horas de la mañana (TRUE) y el mensaje “Estoy aprendiendo PHP, poco a poco.” , si lo ejecutamos a cualquier otra hora del día, es decir, si la condición es falsa ya que el valor de la variable  es distinto (FALSE):

Primero, la instrucción if/else que ya conocemos:

<?php $hora = date ('H:i');
// formato de hora y minutos en PHP
if ($hora == ('7:15'))
{
echo 'Son las 7 y cuarto de la mañana, hora de levantarse!!';
}
else
{
echo
'Estoy aprendiendo PHP, poco a poco!';
}
?>

Ejecutar ejemplo

Y ahora lo mismo utilizando el operador ternario:

<?php
$hora = date ('H:i');
echo ($hora == ('7:15')) ? 'Son las 7 y cuarto de la mañana, hora de levantarse!!' : 'Estoy aprendiendo PHP, poco a poco!';
?>

Ejecutar ejemplo

El resultado será exactamente el mismo. Tened en cuenta que echo no necesita paréntesis, ya que no es una función, sino una sentencia del lenguaje.

Con esto finalizamos las instrucciones condicionales o de control de flujo en PHP. Lo siguiente que veremos serán las instrucciones de iteracción o bucles. De todas formas, las seguiremos utilizando en los próximos ejemplos.

Lecturas recomendadas:
El operador ternario en PHP (webtaller.com)
Operador terciario (Wikipedia)
Operadores de comparación en PHP

Estructuras de control en PHP V: instrucción switch

php

[Control de flujo o estructuras de control en PHP V] Instrucciones Switch

Valencia, 27/09/2012, G.B.
Tras haber conocido ya las estructuras condicionales en PHP con if, if/else y if/elseif/else, pasamos ya a la última: la estructura switchYa sabemos que las sentencias o estructuras condicionales se utilizan para realizar distintas acciones basadas en diferentes condiciones. Switch actúa de la misma manera que lo hace la estructura if/elseif/else, pero permite simplificar el código cuando las condiciones o posibilidades son muchas.

La expresión o variable que va después de la palabra reservada switch se evalúa utilizando la palabra case (caso en inglés) seguida de dos puntos. Si hay un equivalente, una coincidencia, se ejecutará la sentencia tras ‘case‘. En caso contrario, se sale de la instrucción utilizando la palabra reservada break y se pasa al siguiente ‘caso’ o case, en donde se evaluará la siguiente sentencia,  y así hasta llegar a un case en el que se cumpla.  En el caso de que no se cumple ninguna de las equivalencias presentadas tras cada uno de los ‘case’, es decir, en el caso de que no haya ninguna equivalencia, se puede utilizar una instrucción por defecto representada por la palabra default, también  seguida de dos puntos. La estructura condicional switch está ‘encerrada’ entre brackets { }.

Pero mejor veamos una representación de la sintaxis de switch:

switch ($nombreVariable) {
case valor1:
      (sentencia1);
      break; // salida que se utiliza opcionalmente
case valor2:
      (sentencia2);
      break;
case valor3:
      (sentencia3);
      break;
case valor4:
      (sentencia4);
      break;
case valor5:
      (sentencia5);
      break;
defaulf:
      (sentencia o instrucción predeterminada); // esta se ejecutará en caso de que ninguna de las equivalencias anteriores se cumpla
}

Resumiéndolo:

switch (variable) {
   case: sentencia1;
   break; 
case: sentencia2;
   break; 
default: sentencia predeterminada;

Para entenderlo mejor, vamos a adaptar el ejemplo del post anterior a la estructura switch, aumentando con esa instrucción las posibilidades:

<?php
$hora = date ('H');
switch ($hora) {
   case 7:
   echo 'Es hora de levantarse, campeón';
   break; // salida que se utiliza opcionalmente
case 8:
   echo '¿Estás despierto ya?';
   break;
case 10:
   echo '¿Un cafetito?';
   break;
case 13:
   echo 'Falta menos para comer. ¿Tienes hambre ya?';
   break;
case 14:
   echo 'A comer!';
   break;
case 16:
   echo '¿Te apetece otro café?';
   break;
case 19:
   echo 'Descansa un poco: apaga el ordenador.';
   break;
case 20:
   echo 'Queda menos para cenar. ¿Tienes hambre?';
   break;
case 23:
   echo 'El día ya casi ha pasado. Debes estar cansado';
   break;
case 24:
   echo '¿Por qué no te vas a dormir?';
   break;
default:
   echo '<h2>Bienvenido a Aprendiendo PHP</h2>'; /* Esta es la frase por defecto que aparecerá en formato Título 2 en el caso de que no se cumpla ninguna de las equivalencias presentadas */
   break; 
}
?>

Ejecutar ejemplo

Ya sólo nos queda  ver -respecto a las estructuras condicionales en PHP- otro tipo de operador condicional que equivale a la estructura if/else denominado operador ternario. En el próximo post…


Lecturas recomendadas:
Switch
PHP Instrucción Switch
PHP Switch Statement

Estructuras condicionales en PHP IV: If… elseif… else

Abril 2016: Post recuperado de Aprendiendo PHP (web ya inactiva)
[Control de flujo o estructuras de control en PHP IV] Instrucciones IF/Elseif/Else

Valencia, 24/09/2012, G.B.
Tras las estructuras condicionales o de control de flujo if y if… else, ahora toca el turno a la siguiente: if… elseif… else. Con elseif añadimos más posibilidades, más alternativas.

Elseif (también escrito else if, aunque menos frecuentemente) es una combinación de if y else y una ampliación de if. Si la condición contenida en el if es falsa (FALSE, que no se cumple), entonces el control de flujo saltará al primer elseif. Si éste tampoco se cumple, pasaría al siguiente, hasta llegar a un elseif en que la condición sí se cumpliera, que fuera verdadera (TRUE). En el caso de que no se cumpliera ninguno de los elseif, pasaríamos por último al else para ejecutar las sentencias contenidas en el mismo.

Como observamos, las estructuras elseif pueden anidarse, es decir, ir abriendo distintas posibilidades si no se cumplen las anteriores. La sintaxis es la siguiente:

if (condición1) {
sentencia1; // Si esto no se cumple, saltamos al primer elseif
}

elseif (condición2) {
sentencia2;
}
 // Tras esta línea pueden ir anidados más elseif
else {
sentencia3; // Si ninguno de los elseif se han cumplido, se ejecutará estas sentencias
}

En caso de que la primera condición, la del if, no se cumpla, pasamos al primer elseif. Si este tampoco se cumple, pasaríamos al siguiente, hasta llegar al else, en caso de que no se cumpliera ninguno de ellos. Veamos un pequeño ejemplo:
<?php
$numero1 = '2';
$numero2 = '3';
$numero3 = '4';
$numero4 = '2';
if ($numero1 == $numero2) {
print "El $numero1 es igual al $numero2.";
}
elseif ($numero2 == $numero3) {
print "El $numero2 es igual al $numero3";
}
elseif ($nunero3 == $nunero4) {
print "El $numero3 es igual al $numero3";
}
else {
print "El $numero1 es igual al $numero4.
¿Lógico, no?";
}
?>


Ejecutar ejemplo

Otro ejemplo tonto, lo sé, pero espero que  explicativo.  También podemos ampliar el ejemplo que hemos utilizado en los anteriores posts sobre las estructuras condicionales, especificando franjas horarias más pequeñas:

<?php
$hora = date (“H”);
if ($hora == ('7') or $hora < ('8')){
echo 'Es hora de levantarse, campeón';
}
elseif ($hora == ('14')){
echo '¿Qué vas a comer hoy?';
}
elseif ($hora <= ('16')){
echo '¿Demasiado tarde para comer, ¿no crees?';
}
elseif ($hora <= ('20')){
echo 'No, todavía no es hora de cenar';
}
elseif ($hora == ('21') or $hora <= ('22')){
echo 'Ve pensando en lo que vas a cenar, si tienes hambre, claro';
elseif ($hora == ('23')){
echo 'Demasiado tarde para cenar, ¿no crees?'; /
}
elseif ($hora == ('1') or $hora <= ('2')){
echo 'Si no te has ido a dormir todavía, deberías hacerlo!';
}
else
echo 'Bienvenido';
?>

Ejecutar ejemplo 2

Por último, comentaros que puede ser realmente engorroso tener que contemplar todas las posibilidades y así estar ‘obligados’ a utilizar un montón de elseif anidados. Este último ejemplo se puede hacer de una forma mucho mejor  y más cómoda (sin tener en cuenta los posibles fallos de cálculo entre las franjas horarias que yo haya podido cometer al hacerlo…). Para ello, disponemos de la estructura switch, la cual es más sencilla de escribir (ahorramos líneas de código y conseguimos el mismo resultado que con if/elseif/else) y que veremos en el siguiente post. Hasta pronto!


Lecturas recomendadas:

elseif (PHP.net)
Elseif (gratismil.com)

Estructuras condicionales en PHP III: if…else

 Abril 2016: Post recuperado de Aprendiendo PHP (web ya inactiva)
[Control de flujo o estructuras de control en PHP III] Instrucciones IF/Else

Valencia, 23/09/2012, G.B.
Como hemos visto en el anterior post sobre instrucciones If sencillas, esta estructura condicional puede que no nos sea suficiente para lograr nuestro objetivo. Así, en el ejemplo anterior, se muestra un mensaje si abrimos la página después de las 07:00 a.m. (después de las siete de la mañana). ¿Y si queremos ajustar más el margen y mostrar mensajes distintos en franjas horarias distintas,  más ‘pequeñas’? Pues que entonces tendremos que utilizar alguna de las tres construcciones o estructuras condicionales siguientes: if/else; if/elseif/else; switch. Vamos a ver ahora las estructuras condicionales if…else en PHP.

El bloque if/else es una decisión en dos direcciones. Si la expresión o condición if es verdadera (TRUE), se ejecutará el bloque se sentencias o expresiones. Si la expresión o condición es falsa (FALSE), se ejecutará en su lugar las sentencias o expresiones del bloque else. La sintaxis es la siguiente:

if (expresión)
{

   sentencias1;
}
   else {
   sentencias2;
}

Recordad que cada bloque debe ir siempre encerrado entre brackets, apertura y cierre { }. Veámoslo con este sencillo (y naive) ejemplo:

<?php
$hora = date (“H”);
if ($hora == (‘7’))
{
echo ‘<h2>Es hora de levantarse, campeón</h2>’; // Si son las 7 de la mañana, se mostrará este mensaje en Título2 (H2)
}
else {
echo ‘<b>Aún no son las 7, aprovecha!</b>’; // Si todavía no son las 7 de la mañana, se mostrará este otro mensaje en negrita
}
?>

Ver el ejemplo

Bien, pero todavía podemos afinar mucho más para que este código sea útil ¿verdad? Lo veremos con las sentencias if/elseif/else y switch. Cuando  hallamos visto todas las estructuras condicionales, utilizaremos ejemplos más interesantes, más útiles. Hasta muy pronto!

Lecturas recomendadas:else (PHP.net)
Estructura if-else en PHP (documentoweb.com)
Sentencia if y else en PHP (codigoprogramacion.com)

entre muchas más…

Estructuras condicionales en PHP II: instrucciones If sencillas

php
 Abril 2016: Post recuperado de Aprendiendo PHP (web ya inactiva)
[Control de flujo o estructuras de control en PHP II] Instrucciones IF
Valencia, 22/09/2012, G.B.
Como os comentaba en el anterior post, la primera parte de Control de flujo o estructuras de control en PHP, vamos a explicar ya la primera clase de ellas, las estructuras o instrucciones condicionales en PHP. Como bien indica su nombre, las instrucciones condicionales permiten determinar las acciones a realizar en función de una condición o condiciones.  Son las siguientes:
La más sencilla de ellas es la instrucción If  (‘si’ condicional en inglés) y se representa de las siguientes formas:
if (condición)
acción;

o lo que es lo mismo:
if (expresión)    {     (sentencias);    }

Donde vemos condición podemos llamarlo expresión y donde leemos acción, podemos llamarlo sentencias, ¿de acuerdo? 


Es muy recomendable utilizar los brackets {  } para separar el flujo de acciones, como ya veremos. También podemos dejar los brackets  en la misma línea,  o el primero de ellos después de la expresión o condición encerrada entre paréntesis, quedando de cualquiera de las siguientes formas:
if (expresión){ (sentencias); }
if (expresión) {    (sentencias);
}
if (expresión)
{    (sentencias);
}

El motor de PHP evalúa la condición o expresión, que siempre debe ir entre paréntesis, y si el resultado de la evaluación es verdadero (TRUE), se realizará la acción de la siguiente línea de código. En caso contrario, es decir, si la condición no es verdadera (devuelve FALSE), no se realizará ninguna acción.

Un ejemplo sencillo, del que ya hablamos en el anterior post, sería almacenar la hora en una variable para el valor que nos da con uno concreto, utilizando los operadores de PHP que ya conocemos. Vamos a ello:

<?php
$hora = date ("H");
if ($hora >= ('7'))
{
    echo 'Es hora de levantarte, campeón';
}
?>

Ejecutar ejemplo

Este fragmento de código evalúa la fecha del sistema y si se ejecuta a partir de las 07:00 horas de la mañana, imprimirá en pantalla, en la página web en donde está la instrucción condicional, el mensaje de texto Es hora de levantarse, campeón!. En caso contrario, simplemente no mostrará nada. 

Como vemos, y reiterando, el operador básico if evalúa una expresión encerrada entre paréntesis ( ) y si la condición se cumple, es decir, es verdadera, se ejecuta el bloque encerrado entre brackets { } que sigue a la expresión condicional, las sentencias. Otro ejemplo:

<?php
if ($numero1 === $numero2)
   { print "el $numero1 es idéntico al $numero2" ; }
?>
En esta condicional simple, se evalúa si la variable $nunero1 es idéntica (=== ) a la variable $numero2. Si es así, se imprimirá en pantalla la frase el $numero1 es idéntico al $numero2.

Si, ya sé, esto todavía no es muy útil.  En el siguiente post veremos cómo podemos sacarle mucho más partido a las sentencias condicionales con if /else, on if /elseif y con switch.  Esperad sólo un poquito, que ya he vuelto a retomar este blog…

Algunas lecturas recomendadas: Constructor if

Intento de phishing a clientes del BBVA

Intento de phising a clientes del BBVAValencia, 20/09/2012, G.B.
Acabo de recibir un correo electrónico (captura de pantalla que se muestra en la imagen) supuestamente enviado por la entidad bancaria BBVA (Banco Bilbao Vizcaya Argentaria). Se trata de un intento de phishing a clientes del BBVA– Por desgracia ya estamos muy acostumbrados a las estafas de phising y solemos recibirlas bastante frecuentemente  en nuestros buzones de correo electrónico ¿verdad?

He contactado con el departamento de clientes del BBVA y me han confirmado que efectivamente se trataba de un phising y que existe una dirección de correo electrónico para avisar en estos casos: seguridadinternet@grupobbva.com. Recordaros que ninguna entidad bancaria envía correos electrónicos solicitándonos nuestras claves, por nada del mundo.

Para el que todavía no lo sepa -pocos serán ya- os dejo la definición de la Wikipedia del Phising Phishing: “El phishing es una estafa cibernética que se comete mediante el uso de un tipo de ingeniería social caracterizado por intentar adquirir información confidencial de forma fraudulenta (como puede ser una contraseña o información detallada sobre tarjetas de crédito u otra información bancaria). El estafador, conocido como phisher, se hace pasar por una persona o empresa de confianza en una aparente comunicación oficial electrónica, por lo común un correo electrónico, o algún sistema de mensajería instantánea1 o incluso utilizando también llamadas telefónicas“. Fuente: http://es.wikipedia.org/wiki/Phishing

En este caso, el mensaje de correo que he recibido y la falsa web están bastante bien imitados, bueno, la web perfectamente imitada salvo la IP que es totalmente distinta. El mensaje, como siempre ocurre, o no está bien redactado o la codificación de caracteres no es correcta, como es en el caso del correo recibido.  Os adjunto captura de pantalla de la falsa web -perfectamente imitada, como veréis- y la original con sus respectivas IPs :

Falsa web URL o IPhttp://222.73.123.187/particular.php

Web falsa que imita a la del BBVA
Web falsa que imita a la del BBVA

 Web original URL: https://www.bbva.es

BBVA, sitio web original
BBVA, sitio web original

 Espero que este post sirva de algo y nadie caiga en esta estafa.

P.D. Había escrito ‘phising‘ en vez de phishing. Ya está corregido, perdonad el desliz…

El inmenso poder de las pequeñas cosas

Otra e-reflexión, tras unos días bajos…

El inmenso poder de las pequeñas cosasValencia, 19/09/2012, G.B.
¿Hacia dónde vamos? ¿Y en qué manos se supone está nuestro destino social? ¿Debe ser siempre así, como ha sido, aunque “endulzado” por la “sociedad del bienestar”? ¿Por qué los que verdaderamente podrían crear la diferencia ni siquiera aparecen, “no se contemplan”? ¿Estamos inmersos en el final de un ciclo y el inicio de uno nuevo,  o  tal vez de un nuevo más-de-lo-mismo?

 

Preguntas y más preguntas -que no me atrevo a formular en voz alta- y que seguro muchos, muchos nos hacemos, tanto en petit comité como en público. Pero, ¿quién las responde?,  ¿quienes hacen verdaderamente algo para iniciar la -primero de todo- recuperación moral de esta sociedad global castigada por su vanidad, su egoísmo, su extrema superficialidad? Realmente tampoco lo sé. Quizá todo un poco, pero sin atrevernos demasiado a asumir los cambios desde los núcleos de la cansada y cansina realidad social que estamos viviendo muchas personas. ¿Por sensación de derrota, por miedo?¿Tal vez por  miedo al miedo? ¿Por desidia, pereza, victimismo y pánico intestino al cambio?  ¿Es hora ya de romper moldes viciados? ¿Querrán romperlos los que tienen los modelos y viven de ellos y nos los ofrecen a cambio de nuestro futuro? Más y más preguntas…

 

Mientras pensamos, meditamos, nos quejamos, actuamos o esperamos, el inmenso poder de las pequeñas cosas, de la fuerza escondida en un  pequeño granito de arena, la promesa de  la gota de agua que acaba erosionando la dura roca, puede convertirse en un oasis invisible al que puede acudir nuestro ánimo,  a beber de fuentes frescas, a apagar la sed de desesperanza que atenaza tantas gargantas y seca tantos ojos. A pesar de todo -y como hoy una amiga me ha comentado- la dignidad, el respeto propio,  no debemos nunca perderlo, aunque tengamos momentos bajos, subterráneos. Creo que eso podemos guardarlo como un pequeño tesoro y una fuente a la que recurrir cuando intenten quitarnos todo lo demás.

Por todo ello, voto por el poder de las pequeñas cosas, de vivir el presente con nuevos ojos, de ser consciente de que no vivimos solos en este mundo y de que mucho de lo que nos han intentado enseñar -muchas veces con absoluto éxito- es un vano espejismo que nos aleja de las fuentes de agua fresca que ayudan a apagar nuestra eterna sed… Brindo por las pequeñas cosas,  porque sumadas conforman el verdadero sentido, la verdadera vida.

Fin de la e-reflexión. Buenas noches.

Mapea el mundo con Google Map Maker

Google Map Maker te ofrece la oportunidad de mejorar el mapa de los sitios que son importantes para ti. Actualiza el mapa que ven millones de usuarios de Google Maps. Fuente: Google

Google Map MakerValencia, 11/09/2012, G.B.
Google dispone de una excelente herramienta online para crear mapas personalizados, para ‘mapear’ el mundo. Se denomina Google Map Maker y para poder utilizarlo, debes darte de alta en una cuenta de Google, cosa bien sencilla y gratuita, como ya sabéis. Con Google Map Maker podrás crear mapas completamente personalizados con tus sitios favoritos o puntos de venta, por ejemplo, pudiendo editar cada uno de ellos. Muy interesante. Creo que voy a utilizarlo en breve…

Os dejo un vídeo sobre el creador de mapas de Google:

Este es el canal de Youtube de Google Map Maker: www.youtube.com/googlemapmaker

Concurso fotográfico de la Wikipedia: Wiki Loves Monuments 2012

Wiki Loves Monuments 2012 es un concurso fotográfico de monumentos abierto a todo el mundo. Está organizado por los capítulos de Wikimedia y grupos de voluntarios en distintos países. La Fundación Wikimedia es la entidad que da soporte a Wikipedia, la enciclopedia libre, entre otros proyectos. ¡Participando en Wiki Loves Monuments 2012 ayudarás a mejorar los contenidos de Wikipedia! Fuente: Wikipedia

Valencia, 07/09/2012, G.B.
La Wikipedia ha lanzado un concurso mundial de fotografía de monumentos denominado Wiki Loves Monuments 2012, el cual se organizó por primera vez en 2010. Esta edición está abierta hasta el 30 de septiembre de 2012.

Las imágenes que subas se alojaran en Wiki Commons y podrán ser utilizadas libremente.

Para participar, sólo tienes que registrarte y seguir los pasos que nos indica la página web con las reglas del concurso para subir fotografías de monumentos realizadas por ti en cualquier momento. Consulta la lista de monumentosEsta es la captura de pantalla:Wiki Loves Monuments 2012  Concurso fotográfico de la Wikipedia

Esta es la página desde la que podrás subir tus fotografías por ubicación:

Y este es el enlace con las fotos subidas a Wiki Loves Monuments 2012 in Spain. ¿Te animas? Yo ya lo he hecho y creo que subiré unas cuantas más. Recuerda, la Wikipedia somos todos y todos nos beneficiamos de ella ¿verdad?

Para acceder a tu cuenta, en caso de que ya te hayas registrado,  o crearte una nueva, visita este enlace: loguearse en Wiki Commons.

El canal de televisión de WordPress: WordPress.tv

¿He comentado alguna vez que es mi CMS favorito? Je, je, je…

Valencia, 05/09/2012, G.B.
Hace unos minutos he descubierto el canal de televisión de WordPressWordPress.tv. Creo recordar que había visto algún enlace al respecto, pero nunca había visitado el sitio hasta hoy mismo. Y debo decir que me ha encantado. Comentaros también que los vídeos están en inglés -al menos hasta lo que yo he visto- y no están subtitulados.

Os dejo embebido uno de los vídeos denominado State of the World 2012 de Matt Mullenweg, uno de los cofundadores de WordPress. que trata sobre el fenómeno de WordPress, su éxito, su evolución, sus avances, siempre  con un tono muy cordial, con mucho sentido del humor y realmente explicativo, bajo mi humilde punto de vista.

El vídeo, que dura cerca de 50 minutos,  se grabó durante el evento WordCamp San Francisco 2012.

Aquí va el vídeo State of the Word 2012