Seeding a Laravel 4 database

Seeding

Un paso importante hacia la creación de código a prueba de balas, es la capacidad de hacer pruebas con datos reales. Esta muy bien hacer pruebas unitarias, pero también es necesario correr pruebas integrales para tener el panorama completo del buen funcionamiento de la aplicación.

Tener datos de pruebas es tan importante para el front-end como lo es hacer QA en el browser.

Hay varias maneras de crear datos de pruebas para tu aplicación, pero siendo honestos, no hay razón para no usar los data seeders de Laravel. puede ser muy tentador mantener una copia de la base de datos de producción y con eso generar tus datos de prueba, pero no vale la pena correr el riesgo de hacer algo que resulte mal.

En el siguiente tutorial utilizaremos los seeders de Laravel para generar datos de prueba.

via Seeding a Laravel 4 database | Culttt.

Como navegar sin publicidad en Youtube

Pues simple como eso, una lista de plugins indispensables para navegar en youtube sin tener que verte la publicidad en Youtube. Porque uno quiere ver videos, no publicidad.

Al día de hoy Youtube utiliza 3 tipos de publicidad para fumarte aunque no quieras, entiendo que es una forma de la compañía por monetizar su proyecto, pero también comprendo que yo decido que ver cuando el contenido está de mi lado, en mi navegador, procesado por mi computadora de escritorio, de mano o portátil.

Así que yendo al grano.

Utilizaremos una extensión al navegador que permiten ejecutar javascript cuando las páginas se cargan, Javascript, es el interprete de comandos de lado del cliente (tu navegador) que junto con HTML y CSS hacen funcionar las páginas web.

Como paso primero instala la extensión según sea tu caso o casos.

Para mejores resultados te sugiero reiniciar el navegador después de instalar la extensión.

Una vez hecho esto, pasamos a quitar toda esa molesta publicidad instalando estos scripts.

Prueba y eso es todo.

 

Si esta en la web, se puede copiar

image

Como colaboradores de la web, desde los desarrolladores, como diseñadores, administradores de contenidos y usuarios de internet en general, se toma casi como un axioma la siguiente afirmación: “La seguridad de lo contenidos en la web, es inversamente proporcional al nivel de difusión que quieras tener de tus contenidos”. En otras palabras, si quieres que tus contenidos, texto, imagenes, documentos, videos, audios, puedan ser vistos por todo el mundo, no es posible que puedan ser protegidos para que no puedan descargarse.
Www o web esta disenado (Segun su creador Tim Bernes-Lee) bajo la premisa de ser  abierto, neutral, accesible , adaptable, para todo el mundo, modificable desde el cliente, llamese navegador web (chrome, mozilla, opera, safari, iexplore)  es por eso que casi todos los navegadores incluyen como parte de si mismos, herramientas de edicion de codigo, inspectores de elementos como chrome y firefox y el acceso al codigo html, css y javascript que puede modificar en tiempo real el aspecto y funcionamiento de un sitio web, ENFATIZO, “del lado del cliente” lo que nos convierte en defacers potenciales e inofensivos de sitios web y digo inofensivos por que una vez que has recargado la pagina vuelve a su estado original.

Esta cualidad, mas que un tema para apantallar a tus amigos para presumir que eres hacker (client side) tiene una gran utilidad al momento de querer tener acceso al codigo javascript de ese tan hermoso image slider del sitio de apple, de forma que es posible ver como funciona, copiarlo , subirlo a tu sitio web y hacerle unas cuantas modificaciones, a los efectos y velocidad de las transiciones para no verte tan “pirata”  o descargar las ilustracionea de Devian Art que bien podrian verse enmarcadas en la sala de tu casa, aun cuando haciendo click derecho inhabilita la opción de guardar, o lo mas común, descargar un video o la musica de youtube aun cuando manejan los supuestos artilugios del hipotetico DRM.

Bajo esta lógica es que en una siguiente entrega de este artículo, publicaré herramientas y metodos sobre como obtener practicamente cualquier cosa desde la web.

Esto no es un articulo sobre derechos de autor ni hacking, ni moralina ni de controversias, es un tutorial de uso un poco mas profundo de www.

Saludos

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

Cuando trabajamos con servidores linux por medio de terminales SSH y  llaves públicas en forma de archivos con terminación “.pem”, “.key”, “.pub”  es frecuente que al estar cambiando de instancias de servidores en nube, Virtual Hosts, servidores dedicados o VPS o simplemente cambiar de direccion IP, nos topemos con que al intentar conectar la terminal nos arroje este error:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Please contact your system administrator.
Add correct host key in /Users/xxxxx/.ssh/known_hosts to get rid of this message.
Offending key in /Users/xxxxx/.ssh/known_hosts:25
RSA host key for 10.0.1.233 has changed and you have requested strict checking.
Host key verification failed.

 

Antes de alarmarte, el mensaje dice que es posible que estemos siendo victimas de un ataque man in the middle, existe la posibilidad, pero tambien dice que los contenidos de las llaves no corresponden a la que estas presentando, si estas cambiando de llaves, de ip o de instancias, es lógico que ocurra esto, el mensaje tambien dice la informacioón que no corresponde se encuentra en el archivo known_hosts.

Para resolver esto, lo único que tenemos que hacer es eliminar la entrada que nos causa problemas en el archivo known_hosts, ubicado casi siempre en la carpeta donde se guardan las llaves, en mi caso, uso mac y mi archivo está en /Users/xxxxx/.ssh/known_hosts . Abrimos el archivo y eliminamos la linea que comienza con la IP o FQDN o dominio de nuestro servidor.

con VIM

 

sudo vim /Users/xxxxx/.ssh/known_hosts
xxx.xxx.xxx.xxx ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqgsjYI1rDJ8BtUiNX53mF5UBf3D9WqCPdLqh3G3KYL1EbR0rTRtnvL/8ZWhRvfbnfOJFJhTysbtFk38bnehyq0La6tny/oflmuRZNPxQ6zM+OsBQymaPX8Wbu5Eis59ZeLmtXJhm+OBSYCQM2R9Cme+8gegMpA8psHw34KTcJClcik3E1QZ2UL04BHfpwJXAD+eM4Hwwdn4nLHGjkbSsp9f85+kfXwPkM90rthCz4ZrKOB119WFcjIAT85RDHxEnIPJNHYC1oufE2ub8f55P2tVSR5Lg0CxqOoniPYDjuZzI/MJyyYjxW4LSmcgTgysuI2fGEWPEn3xxzyRFkxLNF

 

Eliminas la linea completa, en VIM presionando dos veces la letra “D” del teclado para que elimine toda la linea.

Guardas, quitas y listo, intenta de nuevo.

Custom templates para Custom Post types

Utiliza plantillas de diseño personalizado para tus Custom Post Types, hasta el momento ya existen de forma nativa en wordpress para Páginas, para Post por medio de un plugin, pero no todavía para Custom Post Types.

Utilizando el plugin Custom Post Templates con una pequeña modificación.

  • Descarga e instala el plugin Custom Post Templates , con esto ya debes tenerlo activo para los post ( entradas ) normales.
  • Desde la pantalla de plugins, entra al modo de edición del plugin
  • Busca la linea que registra el plugin en el tipo de post, algo así
  • $this->add_meta_box( 'select_post_template', __( 'Post Template', 'custom-post-templates' ), 'select_post_template', 'post', 'side', 'default' );
  • Cambia la opción ‘post’ por tu custom post type ‘peliculas’ en mi caso y prueba haciendo un diseño para cada item que vayas publicando, fácil.
  • quedaría algo así.

    $this->add_meta_box( 'select_post_template', __( 'Post Template', 'custom-post-templates' ), 'select_post_template', 'peliculas', 'side', 'default' );

    Y listo.

    Para aplicar el tu plantilla personalizada, únicamente sube o crea un archivo con lo siguiente.

    <!--?php /* Template Name Posts: Snarfer */ ?-->

    A partir de ahora, aparecerá un nueva opción en el editor de tu custom post type, similar al de pages.

    Notas.

  • Esto unicamente aplica para un caso o post normales o custom post types
  • Seguramente extenderan a custom post types, el cambio es mínimo
  • Instalar Zend Framework en OpenSuse 11.x

    Pues eso. Seguí los pasos para instalar Zend Framework en openSuse 11.1, solo que hasta el momento únicamente tienen las instrucciones para instalarlo hasta 11.1, asumo que no habrá problema por dos o tres versiones mas.

    Pero,resultó que ninguno de los métodos que muestran en la documentación del Framework para OpenSuse 11+ funciona correctamente, así que después de leer un poquito sobre Zypper aqui les dejo las simples para instalar ZF.

    Primero abrimos una terminal y escribimos lo siguiente:

    $ sudo zypper ar http://download.opensuse.org/repositories/server:/php:/applications/SLE_11_SP1/server:php:applications.repo
    $ sudo zypper in php5-ZendFramework

    Si todo ha salido bien, comprobamos que nuestra instalación se haya dado correctamente creando un proyecto nuevo.
    Te mueves a la carpeta a donde deseas instalar tu proyecto, en mi caso esta en /home/alan/www/public_html/prueba1.
    Creamos el proyecto:

    $ zf create project prueba1

    devuelve un mensaje como esto, indicando que se ha creado el proyecto y por lo tanto, hemos instalado ZF correctamente.

    Creating project at /home/alan/www/public_html/prueba1
    Note: This command created a web project, for more information setting up your VHOST, please see docs/README

    Si si, nos indica que ahora tenemos que crear un Virtual Host, hacia allá vamos.

    Hasta este punto, asumo que tenemos instalado Apache y funciona correctamente, si no, siéntete con libertad de preguntar.

    Primero es necesario definir NameVirtualHost, según comentarios de Apache, lo propio es hacerlo en /etc/apache2/listen.conf archivo que abriremos con un editor de texto, yo prefiero vim.

    Buscamos la linea que dice : # NameVirtualHost *:80 y unicamente le quitaremos el # (que le da la cualidad de estar comentado), queda algo así.

    # - name-based virtual hosting:
    #
    NameVirtualHost *:80
    #
    # - on all addresses and ports. This is your best bet when you are on

    Ahora creamos el VirtualHost, nos movemos a la carpeta /etc/apache2/vhosts.d/ copiamos el archivo archivo vhost.templae por prueba1.conf, lo hago de esta forma, ya que vhost.template, como lo habrá deducido mas de uno, es una plantilla a la que únicamente le cambiaremos 3 lineas siguientes:

    • ServerAdmin
    • ServerName
    • DocumentRoot
        ServerAdmin alan@paradojo.com
        ServerName prueba1
        # DocumentRoot: The directory out of which you will serve your
        # documents. By default, all requests are taken from this directory, but
        # symbolic links and aliases may be used to point to other locations.
        DocumentRoot /home/alan/www/public_html/prueba1/public
        # if not specified, the global error log is used
        ErrorLog /var/log/apache2/dummy-host.example.com-error_log
        CustomLog /var/log/apache2/dummy-host.example.com-access_log combined

    Unicamente cambiamos esas tres lineas, el resto queda como está.

    Por ultimo abrimos el archivo /etc/host , veras la linea con esto:
    127.0.0 localhost:
    añadimos esta otra:
    127.0.0.1 prueba1

    salvamos el archivo y reiniciamos apache

    $ service apache2 restart

    ¿Funciona?

    Abre tu navegador favorito y teclea en la barra de direcciones : http://prueba1 si todo salió bien, deberías de ver lo siguiente:

    Tutorial : Migrando a google apps.

    Como lo había prometido en el post anterior, aquí entrego un tutorial para que migres tu correo a Google Apps, aunque he reconsiderado nombrarlo tutorial, ya que en sí el proceso es muy intuitivo para quienes tienen un conocimiento mínimo sobre DNS, así que lo cambiaré por demostración.

    Existen diferentes versiones del producto que podemos configurar.

    • Google Apps (standar version)
    • Google Apps for Business
    • Google Apps for Education
    • Google Apps for Government
    • Google Apps for Non-profits
    • Google Apps for ISPs

    La que nos centraremos en la opción estandar de google Apps ya que es gratuita.

    Google AppsGoogle Apps for BusinessGoogle Apps for EducationGoogle Apps for GovernmentGoogle Apps for Non-profitsGoogle Apps for ISPs

    Preparativos.

    Antes de comenzar debes de contar con lo siguiente.

    Acceso  a registros DNS

    Para tener acceso a este servicio, tienes dos opciones.

    • Acceso a “host records” en el panel de administración de dominio ( enom, go-daddy, online nic, etc…)
    • Acceso a panel de control de tu sitio (Cpanel, Plesk, por mencionar algunos)

    Acceso a FTP

    Este dato es opcional, ya que es una alternativa para realizar la comprobación de la titularidad del dominio, mas adelante explicaré porque.

    Una vez que contemos con los datos antes mencionador, pasamos a la práctica.

    Creando tu cuenta Google Apps.

    Hasta aquí, has terminado de crear tu cuenta y a continuación serás enviado a la pantalla de login para entrar al panel de control de tu cuenta Google.

    Llegando a este punto, en tu correo habrás recibido un correo confirmando el registro de tu dominio e indicando los pasos siguientes.

    Tal cual lo muestra en el correo.

    1. Acceder al panel.
    2. Verificar la propiedad del dominio.

    En adelante, para entrar a tu panel lo podrás realizar por medio de este link

    http://www.google.com/a/<tudominio.com>

    O en mi caso

    http://www.google.com/a/paradojo.com

    Paso 1 listo, ahora el segundo y más importante.

    Lo primero que llamará tu atención estando dentro del panel de control, es este mensaje.

    “Para activar los servicios de Google Apps, debes verificar que eres el propietario de tu dominio, paradojo.com. Verificar la propiedad del dominio

    Comprobando la propiedad del dominio.

    Ten listos tus accesos a panel de dominio o panel de control, según sea el caso ya que para realizar la verificación de dominio, tienes dos opciones:

    1. Verificar añadiendo un registro CNAME
    2. Verificar subiendo un archivo html con el nombre googlehostedservices.html y dentro el texto

    Al entrar a la verificación del dominio, verán las siguientes pantallas que se describen a si mismas:

    Verificando por archivo HTML

    Creando el archivo

    Lo guardas con el nombre googlehostedservice.html y lo subes a la raíz de tu sitio, de forma que quede así.

    www.tusitio.com/googlehostedservice.html.

    Haces click en “verificar”.

    Verificando por adición de registro CNAME

    En cualquiera de los dos casos, una vez realizado, se hace  click en verificar, esperamos un par de horas… aunque la sugerencia es esperar hasta 48 horas, con un par de horas es suficiente.

    Por último: Cambiar los registros MX.

    No te espantes por estos acrónimos tan “tecnicosos”, ya que lo unico que tendrás que hacer es buscar en una lista de proveedores de hosting y registros de dominios el que te corresponde para que recibas las instrucciones de pocos pasos par realizar el cambio de los registros MX.

    Por ejemplo, mi caso y el de un gran porcentaje de usuarios es Cpanel.

    Seleccionas el caso que mas te convenga para que te muestre los pasos a realizar.

    ¿Cpanel?

    ¿Enom?

    name.com, godaddy,WHM, iPowerWeb, networksolutions, etc…?

    Cuando hayas realizado dicho cambio, solo tendrás que esperar un rato en lo que se propagan tus nuevas direcciones MX.

    Una vez realizado este cambio, estarás listo para sacarle provecho a todas las herramientas que Google Apps te ofrece.

    Saludos!