Este es un tutorial muy corto de  como cambiar la imagen de fondo aleatoriamente de un div o cualquier elemento con JQuery.

Suponiendo que tenemos una estructura de directorio como esta:

-misitio
  --imagenes
      imagen1.jpg
      imagen2.jpg
      ...
  estilos.css
  index.html

Y que nuestro index.html es algo como:

<html>
<body>
<div id="fondo"></fondo>
</body>
</html>

Y queremos cambiar aleatoriamente la imagen del div con id fondo seguimos los siguientes pasos.

En estilos.css deberíamos una propiedad como esta con la imagen que queramos en caso de que JQuery falle por alguna razón:

#fondo {
   background: url('imagenes/imagen1.jpg');
}

El código de jQuery para hacer el cambio aleatorio es el siguiente:

<script type="text/javascript">
$(function() {
  var imagenes = ['imagen1.jpg', 'imagen2.jpg', 'imagen3.jpg', 'imagen4.jpg', 'imagen5.jpg'];
  $('#fondo').css({'background-image': 'url(imagenes/' + imagenes[Math.floor(Math.random() * imagenes.length)] + ')'});
});
</script>

Vamos a explicar estas dos líneas de código:

1. En la primera línea tenemos un arreglo (array) con los nombres de las imágenes que queremos ir rotando.

2. En la segunda línea cambiamos la propiedad de background-image de #fondo a una de las imágenes que tenemos en el arreglo. Usamos dos funciones matemáticas de JavaScript Math.floor que redondea un número flotante hacia abajo al entero más cercano, por ejemplo 4.3 lo redondea a 4, y Math.random que nos da un número aleatorio, lo multiplicamos por la longitud de imagenes para que nos dé un número que esté dentro de ese arreglo.

Listo eso es todo con esto irá cambiando la imágen de fondo cada vez que regarguemos la página.

Espero que les sirva este tutorial, cualquier duda o sugerencia por favor dejen un comentario.

Aunque la mayoría de las veces prefiero el terminal para manejar mis servidores, a la hora de manejar base de datos y realizar Querys prefiero utilizar MySQL Workbench, no siempre funciona de lo mejor pero la mayoría de las veces hace un gran trabajo.

Aquí vamos a ver como conectarnos con nuestra base de datos RDS de Amazon a través de MySQL Workbench con un tunel SSH. Esto nos ahorrará una gran cantidad de trabajo.

Los pasos son:

1. Abrir MySQL Workbench y crear una nueva Conexión

Hay dos formas o haces click en el botón de + al lado de MySQL Conections o vas al menú de Database>Manage Connections y seleccionas new abajo a la derecha a la izquierda tendrás varias pestañas selecciona Connection. Verás una ventana como esta y en el Connection Method seleccionamos Standard TCP/IP over SSH

Connection Name: Colocamos como queremos que se llame la conexión para indentificarla en MySQL Workbench.

Nueva Conexión MySQL Workbench

2. Crear la conexión con la Base de Datos

Cómo nos vamos a conectar a través de nuestra instancia de EC2 debemos colocar en SSH Hostname el Public DNS de la instancia de EC2.

Para encontrar este Public DNS debemos ir a la consola de Amazon  https://console.aws.amazon.com/ abrir el menú de instancias EC2 y seleccionar la instancia con la que nos conectamos normalmente vía SSH abajo veremos un campo de Public DNS parecido a este:

Public DNS EC2 Amazon

Copiamos el Public DNS y lo colocamos en SSH Hostname.

SSH Username: colocamos el nombre del usuario que utilizamos para conectarnos a la instancia de EC2, si por ejemplo es una instancia Ubuntu el usuario por defecto es ubuntu.

SSH Key File: Vamos  utilizar el archivo PEM que usamos como Key para conectarnos a EC2, en SSH Key File hacemos click en … para buscar el archivo y seleccionamos el archivo PEM (nuestra llave privada) que descargamos a la hora de crear la instancia de EC2.

MySQL Hostname: Aquí debemos colocar el Endpoint, que sería la instancia de base de datos creada en Amazon RDS. Para encontrar este Hostname debemos ir a la consola de Amazon  https://console.aws.amazon.com/ abrir el menú de instancias de RDS y seleccionar la instancia con la que nos queremos conectar veremos algo como esto:

Endpoint RDS Amazon

Copiamos toda esa dirección sin los :3306

MySQL Server Port: El puerto por defecto es 3306. Si lo cambiaste en tu configuración debes poner el nuevo puerto aquí.

Username: Es el nombre del usuario Master de la base de datos cuando creaste la instancia de RDS. Aparece en el Username de la consola de Amazon en la instancia de RDS por si lo olvidaste.

Password: Es la clave del usuario Master de la base de datos cuando creaste la instancia de RDS Amazon.

Una vez que llenemos todos los datos presionamos el botón de Test Connection y deberíamos ver un mensaje como el siguiente:

Untitled window_013

Luego presionamos OK y estamos listos para empezar a utilizar nuestra conexión.

3. Manejar la instancia con MySQL Workbench (Opcional)

Si queremos ser capaces de detener, iniciar y ver los logs de la instancia desde Workbench debemos hacer un paso adicional.

Vamos al menú de Database>Manage Connections, seleccionamos la conexión que acabamos de crear y vamos a la pestaña de Remote Managment y ya debería estar casi lleno comprobamos que:

Hostname: es el Public DNS de nuestra instancia EC2.

Username: El usuario que utilizamos para conectarnos vía SSH a nuestra instancia EC2.

Marcamos la opción de Authenticate Using SSH Key y buscamos el archivo .pem de clave privada de nuestra instancia EC2.

Manage Server Connections_017

Cuando este listo hacemos click en Close y ahora podemos ver habilitadas las opciones de nuestra instancia RDS:

Selection_018

Ten cuidado con estas opciones ya que si detienes la instancia puedes hacer que deje de funcionar tu aplicación Web.

Eso es todo, espero que les sirva, cualquier duda o sugerencia por favor deja un comentario.

 

 

Este es otro mini tutorial de git, en este caso cómo podemos “descargar” o hacer pull de una rama remota. Supongamos que queremos descargar una rama que se llama rama_nueva para esto se necesita sólo una línea:

git checkout -b rama_nueva origin/rama_nueva

Con esto ya se descargará nuestra rama_nueva y ya estaremos listo para editarla localmente.

Si da un error de este estilo:

fatal: git checkout: updating paths is incompatible with switching branches/forcing
Did you intend to checkout ‘origin/‘ which can not be resolved as commit?’

Entonces es que necesitas ejecutar primero:

git pull

Y luego la línea de arriba.

Eso es todo espero que les sirva, cualquier duda deja un comentario.

Es muy sencillo eliminar una rama en git con una simple línea de comandos:

Eliminar Rama Local

git branch -D nombre_rama

Por supuesto sustituyendo nombre_rama por la rama a eliminar. La opción -D elimina la rama sin importar el estatus en que se encuentre el merge, así que utilizalo con cuidado.

Eliminar Rama Remota

git push origin --delete nombre_rama

Se eliminará la rama en nuestro repositorio remoto. Eso es todo, cualquier duda pueden escribir un comentario.

Errar es de humanos, y nada nos hace más humanos que estar a las 2 de la mañana programando y equivocarnos en algún commit en git que no queríamos hacer o que simplemente nos faltó algo.

Pero gracias a la flexibilidad que tiene git y a que está pensado por programadores es muy fácil deshacer un commit.

Tenemos 3 escenarios vamos viendo uno a uno:

Para estos ejemplos vamos a suponer que tenemos tres commit A-B-C siendo C el último commit.

1. Queremos deshacer el último commit para modificar algo o agregar alguna línea que nos faltó, el equivalente al Ctrl+Z (o Cmd+Z) de git. Para esto simplemente ejecutamos el siguiente comando:

git reset --soft HEAD^1

En el caso que utilices MS Windows tienes que ejecutar git reset –soft HEAD~1 (nota el cambio de ^ por ~)

Después de ejecutar este comando quedaría A-B y los archivos con los cambios.

Con esto eliminamos el commit pero permanecen los cambios que habías realizado, luego de que termines de editar lo que te había faltado vuelves a hacer el commit como siempre lo haces. Algo como:

git add .
git commit -m "Mensaje explicativo del commit"

2. En el último commit que hiciste no merece existir más y quieres eliminarlo de la faz de la tierra y que nadie se entere de lo que hiciste jamás, no quieres guardar ningún cambio de este último commit. Entonces para esto ejecutas:

git log
git reset --hard HEAD^1

En el caso que utilices MS Windows tienes que ejecutar git reset –hard HEAD~1 (nota el cambio de ^ por ~)

En este caso quedaría A-B y C ni los últimos cambios existen.

Con esto se eliminará el último commit por completo y es como si nunca hubiera existido, por qué el git log? es una medida de seguridad si por casualidad te arrepientes de haberlo eliminado porque justo en ese último commit estaba la línea que hacía que todo funcionara puedes recuperarlo ejecutando:

git checkout -b nombre_nueva_rama sha_del_commit_que_destruiste

El sha_del_commit_que_destruiste es el número que aparece al lado de la palabra commit cuando ejecutas git log por ejemplo commit 345f7115ce3e1e611f41cd7492ed0e69945e858d. Estamos creando una nueva rama después que termines de hacer los cambios puedes hacer un merge con la ramas que estás trabajando.

3. Ya el commit está en el repositorio público, para esto la mejor práctica no es eliminar el commit sino crear un nuevo commit revirtiendo los cambios del último. Ejecutamos:

git revert HEAD

Ahora los cambios ya han sido deshechos y están listo para que hagas commit:

git commit -m "Revirtiendo últimos cambios"
git push

Eso es todo realmente muy fácil de corregir esos errores que nos pasan a todos, si tienen alguna pregunta, duda o recomendación por favor déjenla en los comentarios y con gusto les responderé.

Sublime Text 3

Sublime Text es uno de los mejores editores de código que hay actualmente y yo personalmente lo utilizo todos los días. Si quieres instalar Sublime Text 3 en Ubuntu a través de PPA para que se mantenga actualizado automáticamente lo puedes hacer ejecutando los siguientes comandos en la terminal:

sudo add-apt-repository ppa:webupd8team/sublime-text-3
sudo apt-get update
sudo apt-get install sublime-text-installer

Gracias a los de http://www.webupd8.org/ ya tenemos Sublime Text 3 instalado y listo para usar.

Si no quieres utilizar ppa o no utilizar Ubuntu, simplemente puedes ir a la página de descarga de Sublime Text y bajar la versión que quieras, http://www.sublimetext.com/3 hay versiones para MS Windows, OS X y Ubuntu y otras distribuciones de Linux.

Si a media noche te equivocas en el mensaje de commit de git o simplemente cometiste algún error ortográfico o descriptivo y te das cuenta ante de hacer push al repositorio es muy fácil reparar el error

Simplemente ejecuta:

git commit --amend -m "Nuevo mensaje de commit"

Eso es todo después pudes hacer push y todo como nuevo.

Qué pasa si ya hiciste push y te equivocaste en el mensaje de commit?, Hay formas de cambiarlo pero si es un repositorio compartido no es para nada recomendado y escapa del alcance de este pequeño tip.

Puedes ver una respuesta relacionada a esto en StackOverflow:

http://stackoverflow.com/questions/179123/how-do-i-edit-an-incorrect-commit-message-in-git

Este es un pequeño tutorial de como instalar PHPUnit que es un framework para realizar pruebas de nuestro código PHP.

Cómo prerequisito tenemos que tener instalado PEAR, viene preinstalado en muchas de las distribuciones de Linux y es fácil de instalar en MS Windows y MAC OS.

En Ubuntu para instalar PEAR ejecutamos

sudo apt-get install pear

Y luego lo actualizamos ejecutando:

sudo pear upgrade pear

Instalar PHPUnit

Primero instalamos el paquete de phpunit de Ubuntu ejecutando:

sudo apt-get install phpunit

Luego ejecutamos las siguientes líneas en el terminal para agregar los canales de dependencia de PHPUnit:

sudo pear channel-discover pear.phpunit.de
sudo pear channel-discover components.ez.no
sudo pear channel-discover pear.symfony.com

Por último instalamos PHPUnit ejecutando:

sudo pear install --alldeps phpunit/PHPunit

Para comprobar que PHPUnit está instalado correctamente podemos ejecutar:

phpunit –version

phpunit --version
PHPUnit 3.7.19 by Sebastian Bergmann.

Les debería aparecer algo como la última línea la versión podría variar.

Con esto ya tenemos instalado PHPUnit y podemos comenzar a probar.

Cualquier duda o sugerencia por favor dejen un comentario.

Logo Composer PHPComposer es un manejador de dependencias para PHP, este proyecto inspirado en npm y Bundler y sirve para administrar librerías de terceros o propias en nuestros proyectos de PHP.

Composer es capaz de de instalar las librerías que requieres para tu proyecto con las versiones que necesites y si esas librerías dependen de otras también es capaz de resolver las dependencias y descargar todo lo que necesites para que funcione, quitándonos el dolor de tener que hacer esto manualmente y mantenerlo todo actualizado.

Instalar Composer

Composer está formado por dos partes, la primera es una aplicación de línea de comandos que permite encontrar, descargar, actualizar y compartir los paquetes o librerías y el otro es el repositorio donde se guardan dichos paquetes o librerías.

Para instalar Composer solo debes ejecutar en el terminal:

cd /ruta_a_tu_proyecto_php
curl -s https://getcomposer.org/installer | php

Si NO tienes curl instalado puedes ejecutar:

php -r "eval('?>'.file_get_contents('https://getcomposer.org/installer'));"

Lo que hace este instalador es chequear que tu php.ini esté configurado con lo necesario y de lo contrario te arrojará un error.

[alert_yellow textalign=”left”] Composer es un archivo ejecutable Phar por lo que debes tener habilitado phar dentro del php.ini, si no lo tienes simplemente descomenta extension=phar.so. [/alert_yellow]

Luego para comprobar que se instaló correctamente puedes ejecutar

php composer.phar

Si todo salió bien debe desplegar una lista de las opciones del comando.

Si quieres ejecutar Composer globalmente ejecutamos este comando adicional:

sudo mv composer.phar /usr/local/bin/composer

Con esto podremos ejecutar directamente el comando desde cualquier sitio o proyecto, por ejemplo:

composer about

Utilizando Composer

Como mencionamos anteriormente Composer está basado en Bundler y npm por lo que su uso es muy parecido a estas herramientas.

Para indicar las dependencias de tu proyecto debes crear un archivo llamado composer.json que en su forma más básica debe verse así:

{
    "require": {
        "monolog/monolog": "1.0.*"
    }
}

Veamos sus partes:

  • require: esta palabra simplemente le dice a Composer que necesitamos la libreria que le indicamos dentro de los corchetes {}
  • Nombre del paquete o libreria: está separado en dos partes vendedor/proyecto, normalmente estos dos son iguales como en este caso o pueden ser distintos por ejemplo “illuminate/foundation”.
  • Versiones del paquete: después de los dos puntos ( : ) indicamos la versión que queremos de este paquete. Tenemos varias opciones:
    • Versión exacta: podemos decirle a Composer que queremos una versión específica como por ejemplo 1.0.1.
    • Rango: Podemos definir rangos de versiones con los operadores >, >=, <, <=, !=. Por ejemplo si queremos una versión mayor a la 2 colocariamos >2. También podemos definir entre dos versiones separando con comas, por ejemplo >=1.0, <2.0.
    • Comodín: podemos usar el comodín ( o wildcard ) * para definir versiones, como ejemplo 1.0.* esto quiere decir cualquier versión dentro de 1.0 ( 1.0.1, 1.0.2 … 1.0.8 etc.)
    • Por último tenemos el operador ~, es un poco dificil de explicar así que usaremos un ejemplo: tenemos una librería que tiene la versión 1.x y 2.x pero no son compatibles entre ellas y queremos la última de 1.x y no la de 2.x entonces utilizaríamos el operador de esta forma ~1.2 que es equivalente a >=1.2, <2.0, mientras si vamos a algo más específico como ~1.3.1 es equivalente a >=1.3.1, <1.4.

Como vemos podemos ser tan libres o específicos como queramos, y me falto mencionarles que si no nos importa la versión simplemente podemos colocar “*”.

Instalando las Dependencias

Una vez que tengas configurado tu archivo composer.json con todos los paquetes que requiere tu proyecto es hora de que Composer haga su trabajo y lo instale para esto ejecutamos:

php composer.phar install

O si seguiste mi consejo e instalaste Composer como un comando global (ver arriba) puedes ejecutar:

composer install

Una vez que termina de descargar los paquetes los coloca dentro de una carpeta llamada vendor por defecto esto lo podemos cambiar en nuestro archivo composer.json agregando las siguientes líneas:

{
    "require": {
        "monolog/monolog": "1.0.*"
    }
    "config": {
        "vendor-dir":"librerias"
    }
}

Aquí especificamos librerias como el directorio a donde se descargan los paquetes. 

[alert_green textalign=”left”]Tip: Si estás utilizando git para tu proyecto, probablemente quieras agregar vendor (o el directorio que hayas especificado) dentro de .gitignore. Con esto evitamos agregar el código adicional a nuestro repositorio sin necesidad. [/alert_green]

Si queremos actualizar las librerias ejecutamos:

php composer.phar update

O si está como comando global:

composer update

Autoloading

Ademas de descargar las librerias, Composer también prepara un archivo de autoload que es capaz de autocargar todas las clases en cualquiera de las librerías descargadas. Para utilizarlo, simplemente añadimos la siguiente línea en nuestro código:

require 'vendor/autoload.php';

[alert_red textalign=”left”] Por supuesto que si cambiaste el directorio de descarga lo tienes que actualizar en esta línea. [/alert_red]

Repositorios

Si quieres ver los paquetes disponibles puedes visitar el repositorio en https://packagist.org/

Conclusión

Esto es todo por ahora, Composer a mi parecer es una herramienta que hacia mucha falta en PHP, muchos frameworks como FuelPHP, CodeIgniter, Symfony2 y Laravel ya están integrando Composer.

Además es una gran herramienta para utilizar tanto en desarrollo como en producción y que nos ahorra una gran cantidad de trabajo de manejo y mantenimiento.

Aquí solo he tocado la superficie de la configuración puedes ver mucho más en la Documentación.

Me gustaría saber que opinan de esta herramienta y si la está usando o la planean utilizar en sus proyectos, por favor dejen sus comentarios.

Recursos

[list_check]

[/list_check]

 

Esta es una pequeña guía de que hay que considerar a la hora de escoger un nombre de dominio para su empresa, producto o evento.

Para que no lo sepan un nombre de dominio es el nombre con que registramos la dirección de nuestro sitio Web. Por ejemplo vensign.com es el nombre de dominio de este sitio Web.

Aunque escoger el nombre de dominio para un sitio web al principio puede parecer una tarea trivial, muchas veces no lo es, ya sea porque el nombre está tomado, porque no sabemos que nombre darle al sitio web o porque simplemente nos parece algo sin importancia.

El nombre de un sitio Web es tan o más importante que darle nombre a una empresa o un producto, ya que este va a representar nuestra presencia en línea, es el nombre a través del cual nuestros clientes nos van a encontrar y asociar y debe convertirse en parte de nuestra marca.

Aquí les resalto los puntos más importantes a tomar en cuenta.

Mantenlo Corto y Fácil de Pronunciar

Normalmente le colocaremos a nuestro sitio Web el nombre de nuestra empresa o nombre de producto, esto sirve si el nombre es corto y fácil de recordar pero que pasa si nuestra empresa se llama Empresa de Corretaje de Seguros Perez Perez y Rodriguez obviamente no es una buena idea colocar todo esto en nuestro dominio porque pocas personas lo recordarán o lo colocarán mal. Necesitamos un nombre corto que las personas puedan recordar fácilmente y que puedan asociar con nuestros servicios o productos o lo que sea que ofrezcamos en el sitio Web.

Muchas optan por colocar las iniciales de la empresa esto puede funcionar, y funciona mejor si las siglas son algo pronunciable o producen algun tipo de sonido fácil de pronunciar. Por ejemplo en el nombre de la empresa que di anteriormente podría funcionar algo como ecs.com o corretajespr.com, o nombres por el estilo. Si la palabra de nuestro producto o servicio aparece en el nombre mucho mejor porque ayuda asociar el nombre con lo que hacemos aunque esto no es imprescindible.

Siempre hay momentos en que se rompen las reglas, siempre encontraremos casos exitosos con nombres muy extraños, flickr por ejemplo antes no tenía la i (flckr) y la gente no tenía idea de como pronunciarlo, con la i se hizo algo más fácil.

Entonces los principales puntos son:

  • Que sea corto
  • Simple de recordar
  • Pronunciable

.COM .NET .ORG Cual escoger

Estas terminaciones son llamadas dominios de nivel superior y estos 3 son los más utilizados. La mayoría de las personas no le presta mucha atención les da igual tener un .com a un .net o un .org pero la verdad es que cada dominio tiene su razón de ser y ya es asociado por las personas con ciertas actividades que son:

.com para empresas, negocios, actividades comerciales

.net originalmente era de network y estaba destinada a proveedores de servicios de telecomunicaciones y acceso a internet como ISPs.

.org se destina principalmente a organizaciones sin fines de lucros, asociaciones, grupos sin fines de lucro, organizaciones de estándares entre otros, prácticamente cualquier organización que no tenga una ganancia comercial.

Aunque esto no está escrito en piedra es siempre una buena idea elegir un dominio .com para empresas o productos ya que es más fácilmente asociado con negocios, un consejo importante es no utilizar dominios .net o .org con el mismo nombre que un .com que no te pertenezca por ejemplo, si querias registrar cebolla.com pero ya existe no registres cebolla.net o .org, por la sencilla razón de que la primera dirección que intentará la mayoría será .com y podría terminar en una página de la competencia o con algo que nada tenga que ver con tu empresa.

Hay muchos otros dominios como .biz .tv .co, etc, etc pero es bueno quedarse con estos tres más conocidos (con la excepción de .tv si planeas hacer un programa transmitido por Internet)

Las empresas grandes suelen registrar todas las extensiones y deshabilitan las que no utilizan para evitar que otros se hagan pasar por ellos o que los usuarios caigan en páginas que se llaman igual pero con otro dominio.

Mercado Local o Global

Si tu mercado es dentro de tu país es bueno adquirir un dominio con la extensión de ese país por ejemplo si estás en Venezuela los dominios son .ve, por lo tanto puedes registrar un dominio ejemplo.com.ve esto te hará que te ubiquen más rápido en el país y además aumenta tu ranking en los buscadores si alguien busca con palabras relacionadas al país y al servicio que proporcionas.

Cada país tiene su extensión y regulaciones por ejemplo hay países que no permiten la extensión directamente como de primer nivel como ejemplo.ve sino que tienes que tener otro dominio de primer nivel como .com.ve hay otros países que si lo permiten.

Es una buena práctica tener ambos dominios .com y .com.ve por ejemplo, y redireccionar las páginas según de donde vengas, por ejemplo si vienes de otro país puedes presentar contenido distinto a si vienes de Venezuela.

Hace poco ya se puede utilizar ñ y acentos en los dominios aunque no ha sido una práctica muy común.

Hacerlo parte de tu Marca

Una vez que hayas escogido el dominio es importante hacerlo parte de tu marca, colocarlo en la papelería, en las tarjetas de presentación, presentaciones, conferencias y cualquier material publicitario para darlo a conocer a tus clientes y así crear una asociación entre tu empresa y tu sitio Web. Muchas empresas suelen hacer sitios Web y después no lo promocionan y no lo utilizan y se preguntan porque no funciona el sitio o porque no atraen clientes por ahí.

Es importante hacer del sitio Web una extensión de su empresa, empezando por el nombre del dominio.

Espero que les haya sido de utilidad este artículo cualquier sugerencia o duda pueden dejar su comentario y si les gustó por favor compartanlo.

Nosotros en Vensign ofrecemos servicios de diseño y desarrollo de páginas Web para PyMES y corporaciones, puede ver nuestros servicios aquíContactarnos

Si quieres recibir más artículos y noticias de diseño y desarrollo Web, Negocios, Software Libre y Linux nos puedes seguir a través de nuestro RSSTwitter o suscribirte a nuestro Boletín de Noticia