Javascript: Cómo sumarle días a una fecha

jquery-calendar

A continuación les muestro un ejemplo donde utilizo dos datepickers de jquery para demostrar cómo sumarle días a una fecha. Cuando selecciono una fecha en el primer date picker, el segundo se actualiza con una fecha siete días después de la fecha en que se ha seleccionado el primero. Los detalles de cómo se hace los dejo comentado en el código. Mira el demo en este enlace.

<!DOCTYPE html>
<html>
<head>
 <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
 <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>

 <script>
 $(document).ready(function() {
 $("#datepicker").datepicker({
 onSelect: function(dateText, inst){
 //604800000 Es el equivalente en milisegundos a 7 días. Se obtiene multiplicando 24 horas por 60 minutos
 //por 60 segundos por 1000 milisegundos por la cantidad de días deseada
 var p = new Date(Date.parse(dateText) + 604800000);
 //p cotiene la nueva fecha. Ahora la desbaratamos en un valor string en formato mm/dd/aaaa
 var curr_date = p.getDate();
 var curr_month = p.getMonth();
 //Date.getMonth() me devuelve los meses del 0 al 11, así que hay que aumentarle 1 para obtener el mes real
 curr_month++;
 var curr_year = p.getFullYear();
 //armamos nuestro nuevo string para ajustar el valor del segundo datepicker
 var newdate = curr_month + "/" + curr_date + "/" + curr_year;
 $("#datepicker2").datepicker("setDate", newdate);
 }
 });

 $("#datepicker2").datepicker();
 });
 </script>
</head>
<body style="font-size:62.5%;">
<div type="text" id="datepicker"></div>
<div type="text" id="datepicker2"></div>
</body>
</html>

Cómo guardar las conversaciones del Chat de Facebook

Facebook-Chat-History-Manager-640x236

Como habrán notado todos los que utilizan Facebook, el Chat es muy básico y carece funcionalidades muy básicas, como por ejemplo, la de guardar las conversaciones para verlas luego. Esto se puede resolver mediante una extensión para Firefox y Google Chrome llamada Facebook Chat History Manager.

Con Facebook Chat History Manager puedes guardar tus conversaciones de Facebook, para verlas en cualquier momento. No necesitas conexión de Internet para ver tus conversaciones, ya que éstas se guardan en tu computadora. Los mensajes son almacenados de manera segura, ya que se necesita contraseña para poder verlos.

Luego que instalaste la extensión, puedes ver el historial presionando Control+Alt+F. También puedes eliminarlo o exportarlo .

Descarga Facebook Chat History Manager para Firefox o para Google Chrome

Fuente

Obtener la altura del documento (cross-browser) IE, FF, Chrome, etc

document-height

La siguiente función retorna la altura de cualquier documento sin importar el navegador. Ha sido probada en IE6/7/8, FF2/3, Safari (Windows), Google Chrome y Opera 9.5:

function getDocHeight() {
    var D = document;
    return Math.max(
        Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
        Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
        Math.max(D.body.clientHeight, D.documentElement.clientHeight)
    );
}

Convertir Arrays a variables rápidamente en PHP

php-logo
Hay dos formas de convertir una cadena separada por comas a variables, una larga y una corta, y les muestro cóm0 a continuación:

La forma larga:

$miCadena = 'Un nombre,una direccion,otra direccion,un telefono,un codigo postal';
$miArreglo = explode(",", $miCadena);
$nombre = $miArreglo[0];
$direccion1 = $miArreglo[1];
$direccion2 = $miArreglo[2];
$telefono = $miArreglo[3];
$codigoPostal = $miArreglo[4];

echo "<strong>Nombre: </strong>" . $nombre . '<br />';
echo "<strong>Direccion 1: </strong>" . $direccion1 . '<br />';
echo "<strong>Direccion 2: </strong>" . $direccion2 . '<br />';
echo "<strong>Telefono: </strong>" . $telefono . '<br />';
echo "<strong>Codigo postal: </strong>" . $codigoPostal;

La forma corta:

$miCadena = 'Un nombre,una direccion,otra direccion,un telefono,un codigo postal';
list($nombre, $direccion1, $direccion2, $telefono, $codigoPostal) = explode(",", $miCadena);

echo "<strong>Nombre: </strong>" . $nombre . '<br />';
echo "<strong>Direccion 1: </strong>" . $direccion1 . '<br />';
echo "<strong>Direccion 2: </strong>" . $direccion2 . '<br />';
echo "<strong>Telefono: </strong>" . $telefono . '<br />';
echo "<strong>Codigo postal: </strong>" . $codigoPostal;

¿Quieres algún otro tip?. Déjame un comentario.

Video: Globo terráqueo que levita y flota (inclinado)

levitating-rotating-globe_the-globe

Existen muchos globos levitantes en venta, pero todos giran sobre un eje vertical. Alexey Sha quizo darle un toque más realista a uno de estos globos y decidió hacerlo girar sobre un eje inclinado, así como nuestro planeta gira sobre su eje inclinado.

Para esto se utilizó un motor alimentado inalámbiramente dentro del globo flotante, un generador de frecuencia a base de microcontrolador, que envía una onda cuadrada un MOSFET que maneja el devanado primario (10 vueltas) del circuito de salida. El devanado secundario forma un circuito LC (20 vueltas y 25 nF) y sirve como antena transmisora. El generator de frecuencia puede ser ajustado manualmente para controlar la frecuencia de rotación.

La bobina del receptor es un circuito paralelo LC (~2.5 nF y ~60 vueltas). Está conectado a un rectificador puente. El motor DC (hecho de un micro servo, modificado para rotar continuamente) está alimentado por un acoplamiento inductivo resonante. La bobina receptora,los componentes eléctricos, y el motor inclinado están fijados en la base flotante. Sus ubicaciones son ajustadas para mantener el centro de gravedad. La cubierta externa del globo está conectada directamente al eje del motor.

Vía: Levitating Rotating Globe (Hacked Gadgets)

Convertir un arreglo (array) de PHP a JavaScript

php-logo

En el día de ayer me sucedió que estaba utilizando un plugin de WordPress para detectar el país de procedencia de los visitantes de una página y tomar esa información para redireccionar automáticamente al idioma de esa persona. No lo quise hacer utilizando el User Agent del navegador, porque una persona en Francia podría estar utilizando Firefox en inglés. Para mí es más preciso utilizar WP GeoLocation, con el cual puedo saber la ubicación de una persona basado en la dirección ip.
El caso es que formé en PHP un arreglo de los códigos de los países con sus códigos de idiomas pero no me había percatado de que WP GeoLocation me daba la información en JavaScript. Como mi recién formado arreglo de PHP era muy grande, tuve que buscar una forma automatizada para convertir ese arreglo de PHP a JavaScript y esta fue la solución:

<?php
$arreglo = array(
'clave 1' => 'valor 1',
'clave 2' => 'valor 2',
'clave x' => 'valor x',
);
?>

<script language="javascript">
var arr = {

<?php
foreach($arreglo as $key => $values){
$arr .= "'" . $key . "'" .   " : " . "'" . $values . "'" . ",";
}
$arr =  substr_replace($arr, '', -1);
echo $arr;
?>

};
</script>

Como pudimos apreciar en el código anterior, utilizamos un loop foreach para formar el arreglo al estilo javascript y lo almacenamos en una variable. Cuando termine el loop, nos va a sobrar una coma al final del arreglo, la cual eliminamos con el código de la línea 16. Finalmente imprimimos el arreglo en el navegador y salimos de PHP y en javascript cerramos con la llave y el punto y coma y todo listo. Puedes verificar si todo está bien desde JavaScript con alert(arr[clave]);

Remover el texto Copyright de Google Maps

google-mapAl insertar un mapa de Google pequeño en un sitio web el texto copyright es tan grande para el mapa que hace que se vea feo. Estaba buscando la forma de cambiar el tamaño de las letras del texto del cpoyright y me encontré con esto:

map.getContainer().lastChild.style.fontSize = "8px";

Desafortunadamente parece que Google se dio cuenta que muchos estaban modificando el texto Copyright a través de este método y actualmente no tenemos acceso a esta variable, por lo que ya no podemos modificar ni el tamaño ni el color. Pero con la ayuda de un colega he dado con la siguiente solución, que remueve el texto Copyright:

map.getContainer().lastChild.style.zIndex = "-1";

Pero recuerden que según los términos de Google el texto Copyright debe permanecer intacto, así que no les recomiendo utilizar esta práctica, sólo la estoy publicando como información general.

Insertar mapas de Bing en WordPress

Hay un plugin de WordPress llamadoBing Maps for WordPress cuya función es crear mapa para insertar en posts de tu blog de WordPress con el shortcode [bingMap]. Los mapas insertados son dinámicos, permiten a los usuarios hacer zoom. También existe la opción de insertar mapas estáticos sin tales características. Entre los mapas que puedes insertar están los de carretera, vistas aéreas, vistas aéreas con caminos marcados en ellos, y hasta una vista 3D de ojo de pájaro. A continuación les presento un ejemplo para el siguiente shortcode:

[bingMap location="Buenos Aires, Argentina" zoom="13"]

BHCWc

Para utilizar los mapas de Bing se necesita una clave API de desarrollador que puedes obtener en Bing Maps Portal, donde inicias sesión con tu cuenta de Windows Live ID (Hotmail)

Para intalar Bing Maps for WordPress simplemente ve a la sección de plugins del panel de administración y haz clic en “agregar nuevo”, escribe “Bing Maps for WordPress” en el cuadro de búsqueda  y haz clic en “Instalar”. Si deseas instalarlo manualmente, descárgalo en este enlace.

Resolver código de error 81000494 en Windows Live Messenger

81000494

No se ha podido iniciar sesión en Windows Live Messenger Beta ya que el servicio no está disponible tempralmente. Inténtalo de nuevo más tarde.

Código de error: 81000494

A continuación se listan posibles causas y soliciones (La 4 fue la que me funcionó cuando me pasó):

  1. Verifica tu conexión de Internet. Obvio que si estás leyendo este artículo tienes internet, así que no es lógico que tenga problemas con tu conexión de Internet.
  2. Refresca tu configuración de IP. En Windows Vista o 7 haz clic en el menú inicio, escribe cmd en el cuadro de búsqueda, presiona enter, escribe ipconfig /release y presiona Enter, luego escribe ipconfig /renew y vuelve a presionar Enter. Escribe Exit y presiona Enter y vuelve a intentar a conectarte.
  3. En Windows Vista o 7 haz clic en el menú inicio, escribe cmd en el cuadro de búsqueda, presiona enter, escribe ipconfig /flushdns y presiona Enter. Escribe Exit y presiona Enter y vuelve a intentar a conectarte.
  4. Asegúrate que Msnmsgr.exe y Wlcomm.exe están completamente cerrados. Abre el administrador de tareas (Presionando CTRL + ALT + DELETE en Windows XP y clic derecho encima del reloj y seleccionar “Iniciar Administrador de tareas en Windows 7/Vista”). Ir a la pestaña Procesos y busca msnmsgr.exe y wlcomm.exe. Si esos procesos se están ejecutando, haz clic derecho sobre cada uno y selecciona “Finalizar proceso”. Vuelve a intentar a conectarte.
  5. Si todavía nada de lo anterior funciona, configura tu firewall para que funciona con Windows Live Messenger (aquí no voy a explicar cómo hacerlo).
  6. Si decidiste saltar el paso anterior o nada todavía funciona, intenta el clásico truco de reiniciar la máquina.
  7. Si nada te ha valido, ni siquiera reiniciar la máquina, desinstala y vuelte a instalar Messenger.

Fuente