Cómo crear un respaldo (o Backup) de MySQL desde la consola

Si, los respaldos (o backups) automáticos son importantes, pero a veces quieres hacer un respaldo justo antes de hacer un cambio importante en el servidor.

El concepto es que puedas hacer un respaldo completo de la base de datos y guardarla fuera del servidor para poder restablecerla en caso de emergencia.

Aunque parezca complicado, la verdad es que es bastante sencillo.

Crear un respaldo (o Backup)

El comando mysqldump se usa para crear unos “dumps” de la base de datos que maneja MySQL. Esto solo son archivos que tienen toda la lista de comandos necesarios para recrear la base de datos desde cero.

Para respaldar una sola base de datos, puedes hacer un “dump” y tener un archivo con la información así:

mysqldump database_name > nombre_base_de_datos.sql

Puedes respaldar varias bases de dato al mismo tiempo así:

mysqldump --databases basededatos_uno basededatos_dos > dos_basesdedatos.sql

 

Y también es muy sencillo hacer un respaldo de toda la base de datos del servidor:

mysqldump --all-databases > toda_la_basededatos.sql

Restaurando un respaldo

Como los archivos dump son comandos SQL, puedes restaurar la base de datos diciéndole a MySQL que corra los comandos de estos archivos y que ponga la data en las bases de datos correspondientes.

mysql nombre_basededatos < nombre_basededatos.sql

Si restauras una sola base de datos desde un dump de todas las bases de datos, puedes decirle a MySQL así:

mysql --one-database database_name < all_databases.sql

Para finalizar puedes descargar el archivo que necesitas a tu computadora via SSH. En una ventana nueva de tu terminal o consola.

scp <usuario>@<tu-sitio.com>:all_databases.sql /tu/directorio/local

 

Alinear verticalmente centrado divs con jQuery

Este pequeño plugin de jQuery sirve para alinear verticalmente casi cualquier elemento cuando no quieres determinar la altura exacta del contenedor.

(function ($) {
// VERTICALLY ALIGN FUNCTION
$.fn.vAlign = function() {
    return this.each(function(i){
    var ah = $(this).height();
    var ph = $(this).parent().height();
    var mh = Math.ceil((ph-ah) / 2);
    $(this).css('margin-top', mh);
    });
};
})(jQuery);

Para usar el código solo tienes que agregar la clase o identificador como: $('.classname').vAlign(); o $('#image').vAlign(); – Esto tiene que suceder una vez que el documento haya cargado así que tiene que estar dentro de $(document).ready(function(){})

Gracias a ATOMIKU.COM que lo escribió en ingles: Simple jQuery plugin for vertically centering

¿Cómo configurar MySQL para que se encienda luego de un boot del servidor?

Mi servidor de DigitalOcean.com ha estado funcionando bien, pero cada cierto tiempo había tenido que reiniciar MySQL que parecía que no lo hacía automáticamente.

Luego de mucho buscar, encontré que la solución está en la configuración de una recuperación de sistema.

Para resolverlo

Pasos:
1) entras por consola a tu servidor
2) descargas el instalador para manejar procesos visuales apt-get install sysv-rc-conf
3) corres sysv-rc-conf
4) seleccionas los numeros del 2 al 5numeros-mysql
5) listo

Mac OSX 10.10 Yosemite pagina de forbidden en instalación local

Cambiando la configuración local de virtual hosts para el Mac OSX 10.10 me topé con un 403 forbidden que parece de permisos, pero resulta que es una configuración del Apache.

Tienes que editar este archivo /etc/apache2/httpd.conf

Y buscas el Require all que es lo que no permite acceso a los directorios

# 
# Deny access to the entirety of your server's filesystem. You must
# explicitly permit access to web content directories in other
# <Directory> blocks below.
# 
<Directory />
    AllowOverride none
    Require all denied
</Directory>

Solo tienes que comentarlo (quizas en un futuro no quieras ver tus propios archivos)

# 
# Deny access to the entirety of your server's filesystem. You must
# explicitly permit access to web content directories in other
# <Directory> blocks below.
# 
<Directory />
    AllowOverride none
    #Require all denied
</Directory>

Y resetear apache.

sudo apachectl graceful

Presto!

Resuelto: Safari no muestra el poster del video html5

Safari (y al parecer los móviles también) no muestran el poster del video que sirve como referencia de los videos.
Usando css podemos usar la misma imagen del poster para que se muestre detrás del video y lograr el mismo efecto.

<div class="contenido">
	<div class="contenedor_video">
		<video poster="poster-del-video.jpg" controls>
				<source src="el-video.mp4" type="video/mp4">
				Tu explorador no soporta la etiqueta de video.
		</video>	
	</div>
</div>
.contenedor {
	position: relative;
}

.contenedor_video video {
	width: 650px;
	height: 365px;
	position: relative;
	top:0;
	left:0;
	z-index: 2;
}

.contenedor_video::before {
	background: transparent url('poster-del-video.jpg') no-repeat top left;
	width: 650px;
	height: 365px;
	content: "";
	display: block;
	position: absolute;
	z-index: 1;
	top: 6px;
	left: 8px;
}

Puedes verlo en codepen.io

Como hacer una redirección de página con JavaScript

Hay dos formas generales de hacer esta redirección:

// Comportamiento similar a una redirección HTTP (HTTP redirect)
window.location.replace("http://corchoweb.com");

// Comportamiento similar a un click en un vínculo
window.location.href = "http://corchoweb.com";

La estructura completa del documento puede ser así:

<!doctype html>
<html lang="en">
<head>
	<script type="text/javascript">
	<!--
	window.location.replace("http://corchoweb.com");
	//-->
	</script>
</head>
<body>
<!-- solo para tener estructura html5 -->
</body>
</html>

Como desaparecer los < hr />

Hace aprendi que semanticamente hablando es buena idea separar los contenidos mas grandes de un documento con Reglas Horizontales o <hr />.

Es buena idea, por que separa cada seccion conceptualmente hablando y ademas lei que es una forma muy comoda de limpiar los float por completo. Entonces me quedo con un codigo parecido a este

<div id="cabeza"> ...</div>
<hr />
<div id="contenido"> ...</div>
<hr />
<div id="pie"> ...</div>

Y los estilos
hr {
display:block;
clear:both;
margin:-1px 0;
}

En principio esto funciona para la mayoria de los exploradores, PEEROO adivinen quien no lo rendea bien? IE6, que tiene la maravillosa costumbre de hacer que nuestro trabajo sea mas interesante llenandonos de misterio y aventura en la busqueda de soluciones para que el vea bien las cosas.

Entonces es necesario “desaparecer” la regla para que explorer no la muestre por ahi colada. Para eso agregamos un par de reglas que no rompen el modelo del documento y que nos garantizan que ninguno de los exploradores lo muestre.

hr {
display:block;
clear:both;
margin:-1px 0;
position:relative;
left:-9999px;

}

Ahora el ultimo pequeñisimo detalle es que queda un pequeño margen extra que tenemos que quitar y listo ¿que es un hack mas para IE?

*+html hr { margin: 0em 0 -7px 0; /*IE 7 bugfix*/ }
* html hr { margin: 0em 0 -7px 0; /*IE 6 bugfix*/ }

Final feliz para el destino del resto del contenido que no tendra que verselas con unas reglas horizontales fantasmas que aparecen despues de muertas.
Hasta ahora funciona en
Windows: IE 6, IE 7, Netscape, Opera, FF
Mac: Safari, FF, IE 5.5, Opera, Camino, Netscape