Archive | April 2014

Rockstar Guitarrista Frontend: La historia de un músico emprendedor

Esta es la historia de Andrés Ospina, el guitarrista que empezó personalizando los perfiles de sus amigos en Hi5 y que, después de tomar el curso de Frontend en Mejorando.la, decidió empezar a diseñar una landing page para promocionar su emprendimiento, Clasesdeguitarra.co.

Andrés estudió música durante varios años en una reconocida academia de Bogotá, en donde empezó a colaborar con sus conocidos de bandas musicales para ayudarles a dar identidad a sus perfiles sociales en hi5, que por aquel entonces y en lo sucesivo, se popularizó como un sitio para promocionar artistas emergentes.

Por esa misma época quiso, en compañía de algunos amigos, crear y promocionar un evento musical bianual, del mismo corte del popular Festival Iberoamericano de Bogotá.

Entonces empezó con la elaboración de un plan de negocios, la búsqueda de capital y la "ejecución" de todos los “grandes desafíos” del mainstream del emprendimiento en América Latina, pero al cabo de dos años de trabajo concluyó que “Necesitábamos mucha plata, no sabíamos vender patrocinios e hicimos todas las estupideces posibles en ese camino”.

Una historia que parece repetirse en muchos emprendimientos que se dedican a estructurar ambiciosos planes de negocio, para convencer a posibles inversionistas y que a la postre inmovilizan a la gente, haciéndoles creer que empezar una empresa es un asunto súper complejo.

La epifanía de la propiedad clear

Lo que parecía hasta ahora una historia dolorosa se transformó en una historia aparentemente esperanzadora.

Un día cualquiera, hace unos tres años, Andrés se encontró con el programa de Christian y Freddy, Mejorando.la Web, y se interesó por las temáticas de trabajo web que desarrollaban, muy enfocadas a lo práctico, entonces se inscribió a un curso presencial de Frontend, dictado por Freddy Vega y Joan Piedra:

Andrés :

En aquel entonces yo apenas tocaba la guitarra, tenía una relación sentimental que me exigía mucho en términos de dinero y pensé que necesitaba ganarme más plata. Se me ocurrió hacer un flyer, con anuncios de Google, de muy baja calidad para ser sincero. Adicionalmente un amigo me enseñaba algunos fundamentos de CSS. Al tomar el curso descubrí la propiedad clear y fue una verdadera revelación.

De músico a creador de landing pages

Con los conocimientos que adquirió en el curso decidió hacer una nueva versión de su sitio, y después de asistir a la Miniconferencia de UX de Mejorando.la descubrió la herramienta Sketch por recomendación de uno de los profesores, entonces compró la licencia y en tres días hizo la primera versión de Clasesdeguitarra.com.


Primera versión del landing.

¿Lecciones online de guitarra?

El sitio por ahora te ayuda a buscar un profesor de guitarra que te dé lecciones personalizadas, enfocadas a lo que te gustaría aprender y no tener que esperar, como en una academia, a que pasen muchas lecciones antes de que puedas empezar a interpretar lo que te gusta. La idea es que vayas aprendiendo con lo que te gusta y no con lo que te toca.

A futuro pretenden ofrecer lecciones personalizadas online a nichos cada vez más específicos, a través de un formato "hangout" que conecte a unos pocos interesados en desarrollar un aspecto técnico muy puntual, aunque es necesario aceptar algunas limitaciones, como por ejemplo lecciones para aprender a afinar una guitarra, que siempre requerirán de la presencialidad.

Al preguntarle a Andrés si cree que esta clase de aprendizaje reemplazará a futuro a la educación tradicional respondió “Sí, siento que hay cosas de la academia que no voy a usar nunca, que son simplemente requisitos y que es necesario empezar por lo que a uno le gusta".

La autora de este post no está tan convencida de este planteamiento, pero sin duda sitios como Clasesdeguitarra.co son una buena muestra de que a hacer se aprende haciendo, que hay que tomar riesgos y aprovechar todas las herramientas que nos ofrece Internet para ser gestores de nuestras ideas, sin tener que esperar una eternidad o la aparición de un inversionista con rolex de plástico que nos las financie.

No importa lo que hagas, hoy todo pasa por la Web

Este proceso que ha seguido Andrés es una buena muestra de que cada vez más los profesionales de todas las áreas están llamados a desarrollar habilidades para el trabajo en la Web, que aprender código, técnicas de mercadeo, conceptos de experiencia de usuario, entre otros, son asuntos que hoy en día todos deberían saber y que se consideran hoy en día como áreas en las que es imperativo“alfabetizarse”. Prueba de ello es este músico que con algunos cursos online ha logrado echar adelante su idea de negocio.

Enviar comentario

via Cristalab http://ift.tt/1meZT1s

Advertisements

Ataques hacker modernos a los que toda web está expuesta

En la actualidad la mayoría de la información se mueve en internet, esto ha hecho posible el avance y crecimiento de las empresas, pero entre más atractiva sea la empresa (negocio) más vulnerable es ésta de ser atacada, porque así como hemos avanzado hacia grandes cambios, la gente maliciosa también lo ha hecho, y estos siempre están en busca de errores que explotar para penetrar los sistemas y robar información. Ya todos conocemos los peligros que podemos atravesar con el agujero de seguridad Heartbleed por ejemplo.

Las intrusiones a los sistemas son cualquier tipo de penetración no autorizada. Por más inofensiva que sea, si no se tiene autorización, se está penetrando el sistema. Estas intrusiones pueden ser pasivas o activas, dependiendo de la intención del atacante. Estos ataques son más comunes de lo que se piensa, y así no tengas una súper organización estás propenso a ser atacado; empezando por el spam que se recibe a diario en las cuentas de correo, aunque ya son muy inofensivos y la mayoría de los usuarios no caen en este tipo de correos esto es un ataque masivo y diario a usuarios reales, así que aunque no seas el dueño de una organización no estas exento a ser atacado por los “cyber-ninjas”.

Cyber-ninjas versus hackers

Estos “cyber-ninjas” son también llamados hackers esto es equivocado; los hackers son quienes contribuyen y hacen que la red funcione, estos son gurús en temas informáticos y sus aportes contribuyen al diseño, desarrollo, y aplicación de sistemas operativos, creación de antivirus y pruebas de fallas de seguridad; a los hackers les debemos agradecer por los avances de los sistemas operativos y por protegernos de los verdaderos “cyber-ninjas”.

Crackers, los delincuentes del ciberespacio

El término correcto con el que debemos referirnos a los delincuentes del ciberespacio es crackers; estos suelen ser expertos en programación de software y sistemas operativos, que con el tiempo aprenden a determinar la progresión de las debilidades de un sistema operativo, para así encontrar puertas traseras por donde penetrar en el sistema.

Estos delincuentes se dedican a robar datos, contraseñas y accesos que les permitan irrumpir en los sistemas. Muchos de estos crackers roban datos con el fin de conseguir dinero (por esta razón los sitios de e-comerce son los sitios más atacados), aunque en algunos casos lo hacen por venganza (como los ex empleados de empresas) y otras veces lo hacen con fines políticos.

Los crackers están armados con infinidad de herramientas que les ayudan a penetrar los sistemas, y no solo eso, tienen el apoyo de comunidades enteras de crackers donde se comparten datos y bugs de sistemas operativos, así se distribuyen la información entre todos, haciendo estos ataques más constantes. Entre las herramientas más utilizadas se encuentran:

  • Wireless Sniffers: son rastreadores de las redes inalámbricas, por medio de los cuales pueden desviar la información que está siento transmitida en las señales.
  • Packet Sniffers: Les permiten reconocer los tipos de paquetes que viajan dentro de la red, y capturar los que necesitan.
  • Port Scanners: Esta herramienta es muy común y su principal utilidad es buscar puertas abiertas o sin ninguna clase de seguridad para atacar los sistemas.
  • Password Crackers: Son algoritmos de fuerza bruta que atacan cualquier tipo de encriptación para descubrir contraseñas de acceso.

Todas estas herramientas son de muy fácil acceso, el truco está en saber utilizarlas para no dejar rastros del delito y si es posible que no se enteren de su presencia en la red; es por esto que se debe estar muy pendiente de síntomas de un ataque por más pequeños que parezcan, como cuando se detectan muchos intentos fallidos de acceso. Un usuario común se puede equivocar como mucho unas tres veces en introducir la contraseña, más de eso se debe sospechar de un ataque de fuerza bruta al acceso del sistema; también el que muchos paquetes estén dañados no es común en la red y no se deben dejar pasar; hasta comportamientos inesperados del sistema como reinicios, cambios de horas en el sistema, etc. Todo esto se debe investigar, ya que es mejor prevenir cualquier ataque inesperado.

Cómo prevenir ataques en el sistema

Para evitar estas intrusiones en el sistema se debe estar en constante revisión, ya que cada vez que reparas un fallo los crackers intentan abrir dos más para penetrar.

Para evitar esto se debe educar al recurso humano y administrar adecuadamente el físico, empezando por:

  • Implantar políticas de seguridad en los accesos al sistema y lo que se hace en ellos.
  • Test de riesgos, es decir atacarse a sí mismos para descubrir vulnerabilidades,
  • Hacer auditorias de la información y el comportamiento del sistema y sus usuarios,
  • Tener actualizado el plan de recuperación para después de cualquier ataque.

Control, control, y más control

La educación de los usuarios es la tarea más importante, ya que la ignorancia de muchos usuarios es el principal bug de entrada a la organización; por eso se hace primordial el control de accesos, verificar quiénes son y qué tipo de autorización tienen. Esto implica clasificar la información que cada tipo de usuario va a conocer, verificar qué es lo que hacen los usuarios cuando están dentro del sistema y cuál es su medio para conectarse.

Prevenir penetraciones a los sistemas no es una tarea fácil, ya que todos los días los “cyber-ninjas” encuentran una nueva forma de atacar los sistemas; así que se debe ser ágil para reconocer los avances de la tecnología y estar informado de las vulnerabilidades que traen consigo, y así estar preparados para evitar cualquier ataque que se pueda presentar en el futuro, así ahora todo esté funcionando bien.

Enviar comentario

via Cristalab http://ift.tt/1o4rRK3

Sigue el F8 desde Maestros del Web

Puedes seguir la conferencia para desarrolladores de Facebook, el popular F8, desde el sitio oficial del evento. ¿Qué nuevas sopresas presentará Mark Zuckerberg, ahora propietario de WhatsApp, el servicio de IM más popular del mundo? Este es sin duda el evento tecnológico del día. Desde nuestro sitio estaremos informando y comentando los sucesos más importantes de esta esperada conferencia.Te invitamos a seguirnos desde las cuentas @maestros, @cristalab y @mejorandola para tener la mejor información de tecnología.

 


Aleyda Rodriguez para Maestros del Web.
Agrega tu comentario | Enlace permanente al artículo


Síguenos en: @maestros | Fan page

The post Sigue el F8 desde Maestros del Web appeared first on Maestros del Web.

via Maestros del Web http://ift.tt/PRhhtT

De músico a creador de landing pages

Esta es la historia de Andrés Ospina, el guitarrista que empezó personalizando los perfiles de sus amigos en Hi5 y que, después de tomar el curso de Frontend en Mejorando.la, decidió empezar a diseñar una landing page para promocionar su emprendimiento, Clasesdeguitarra.co.

Andrés estudió música durante varios años en una reconocida academia de Bogotá, en donde empezó a colaborar con sus conocidos de bandas musicales para ayudarles a dar identidad a sus perfiles sociales en hi5, que por aquel entonces y en lo sucesivo, se popularizó como un sitio para promocionar artistas emergentes.

Por esa misma época quiso, en compañía de algunos amigos, crear y promocionar un evento musical bianual, del mismo corte del popular Festival Iberoamericano de Bogotá.

Entonces empezó con la elaboración de un plan de negocios, la búsqueda de capital y la "ejecución" de todos los “grandes desafíos” del mainstream del emprendimiento en América Latina, pero al cabo de dos años de trabajo concluyó que “Necesitábamos mucha plata, no sabíamos vender patrocinios e hicimos todas las estupideces posibles en ese camino”.

Una historia que parece repetirse en muchos emprendimientos que se dedican a estructurar ambiciosos planes de negocio, para convencer a posibles inversionistas y que a la postre inmovilizan a la gente, haciéndoles creer que empezar una empresa es un asunto súper complejo.

La epifanía de la propiedad clear

Lo que parecía hasta ahora una historia dolorosa se transformó en una historia aparentemente esperanzadora.

Un día cualquiera, hace unos tres años, Andrés se encontró con el programa de Christian y Freddy, Mejorando.la Web, y se interesó por las temáticas de trabajo web que desarrollaban, muy enfocadas a lo práctico, entonces se inscribió a un curso presencial de Frontend, dictado por Freddy Vega y Joan Piedra:

Andrés :

En aquel entonces yo apenas tocaba la guitarra, tenía una relación sentimental que me exigía mucho en términos de dinero y pensé que necesitaba ganarme más plata. Se me ocurrió hacer un flyer, con anuncios de Google, de muy baja calidad para ser sincero. Adicionalmente un amigo me enseñaba algunos fundamentos de CSS. Al tomar el curso descubrí la propiedad clear y fue una verdadera revelación.

De músico a creador de landing pages

Con los conocimientos que adquirió en el curso decidió hacer una nueva versión de su sitio, y después de asistir a la Miniconferencia de UX de Mejorando.la descubrió la herramienta Sketch por recomendación de uno de los profesores, entonces compró la licencia y en tres días hizo la primera versión de Clasesdeguitarra.com.


Primera versión del landing.

¿Lecciones online de guitarra?

El sitio por ahora te ayuda a buscar un profesor de guitarra que te dé lecciones personalizadas, enfocadas a lo que te gustaría aprender y no tener que esperar, como en una academia, a que pasen muchas lecciones antes de que puedas empezar a interpretar lo que te gusta. La idea es que vayas aprendiendo con lo que te gusta y no con lo que te toca.

A futuro pretenden ofrecer lecciones personalizadas online a nichos cada vez más específicos, a través de un formato "hangout" que conecte a unos pocos interesados en desarrollar un aspecto técnico muy puntual, aunque es necesario aceptar algunas limitaciones, como por ejemplo lecciones para aprender a afinar una guitarra, que siempre requerirán de la presencialidad.

Al preguntarle a Andrés si cree que esta clase de aprendizaje reemplazará a futuro a la educación tradicional respondió “Sí, siento que hay cosas de la academia que no voy a usar nunca, que son simplemente requisitos y que es necesario empezar por lo que a uno le gusta".

La autora de este post no está tan convencida de este planteamiento, pero sin duda sitios como Clasesdeguitarra.co son una buena muestra de que a hacer se aprende haciendo, que hay que tomar riesgos y aprovechar todas las herramientas que nos ofrece Internet para ser gestores de nuestras ideas, sin tener que esperar una eternidad o la aparición de un inversionista con rolex de plástico que nos las financie.

No importa lo que hagas, hoy todo pasa por la Web

Este proceso que ha seguido Andrés es una buena muestra de que cada vez más los profesionales de todas las áreas están llamados a desarrollar habilidades para el trabajo en la Web, que aprender código, técnicas de mercadeo, conceptos de experiencia de usuario, entre otros, son asuntos que hoy en día todos deberían saber y que se consideran hoy en día como áreas en las que es imperativo“alfabetizarse”. Prueba de ello es este músico que con algunos cursos online ha logrado echar adelante su idea de negocio.

Enviar comentario

via Cristalab http://ift.tt/1rFQf53

Cómo exponer correctamente tus fotos

Cuando queremos tomar correctamente una fotografía las condiciones varían enormemente. Gente en movimiento, retratos durante la tarde y la mañana (hora azul) o más difícil aún, retratos durante la noche, quizás quieras tomar una foto de paisaje o tomar las fotos de ese partido con tus amigos.

Son tan distintas las condiciones de luz que realmente no existe una fórmula mágica para que la foto salga como tu quieres, es por eso que te recomiendo poner en manual tu cámara y leer este tutorial el cual está pensado para cámaras con funciones manuales ya sean DSLR o Mirrorless.

¿Qué es la velocidad de obturación?

Es el tiempo en el cual el sensor (antiguamente la película) está expuesto a la luz, a esto lo llamamos velocidad de obturación y varía dependiendo de tu máquina fotográfica, pudiendo ir desde tan lenta como 30 segundos (a lo cual llamamos larga exposición) a tan rápida como 1/8000 milésimas de segundo.

¿Qué efectos prácticos se pueden lograr con esto?

Mientras menor sea la velocidad la escena saldrá más iluminada, pero los objetos que estén en movimiento saldrán movidos o difuminados, osea si quieres fotografiar deportes o niños corriendo necesitas aumentar bastante la velocidad, lo cual bajará la luminosidad.

[nota:71a736a27f]Si vas a usar velocidades abajo de 1/30 procura darle la mayor estabilidad posible a tu cámara para evitar que la foto te salga “movida”[/nota:71a736a27f]

[nota:71a736a27f]Cuando usas velocidades altas, los objetos se congelan en la fotografía, lo contrario cuando usas velocidades bajas los objetos en movimiento tienden a disiparse.[/nota:71a736a27f]

Profundidad de campo y apertura del diafragma

El lente también posee una cortina, la cual solo se gradúa para dejar entrar más o menos luz al sensor, a esto le llamamos número F. Los números más frecuentes son: f/1.8, f/2, f/2.8, f/4, f/5.6, f/8, f/11, f/16, f/22, f/32.

Desde y con aperturas superiores a f2.8 se considera que tu lente es un “objetivo luminoso”.

Mientras mayor es la apertura, el Número F es más bajo, esto quiere decir que entrará más luz al sensor y a la vez disminuye la profundidad de campo y con esto la distancia focal, que es el espacio en el cual tu objetivo aparecerá nítido (enfocado).

Otro factor que achica la profundidad del campo es la longitud del lente, mientras más largo sea el lente menor será la profundidad de campo, lo cual ayuda bastante a destacar tu objetivo sobre todo en casos de retratos.

Estas imágenes están sin retoque y tomadas en distintas velocidades de obturación y aperturas de diafragma, siempre manteniendo el exposímetro en 0.

Cuidado con cerrar exageradamente el diafragma (dependiendo del lente generalmente arriba de f11) porque se producen aberraciones que quizás las explique en otro tutorial.

Qué es la Sensibilidad ISO

El número ISO se refiere a la sensibilidad del sensor frente a la luz, mientras más sensible sea más luz podrá percibir, por tanto podrás tomar tu foto con menos luz ¡GENIAL! ¿cierto? pero…mientras mayor sea la sensibilidad también aparecerá un notorio ruido en tu imagen.

[nota:71a736a27f]La cantidad de ruido por ISO depende de lo que soporte tu cámara, algunas cámaras con 1600 de ISO hacen el mismo ruido que con esta a 24500.[/nota:71a736a27f]

Ejemplos prácticos de fotografías

Ahora que quieras tomar una foto toma todo esto en consideración: si hay movimiento ¿quieres que este salga desenfocado? en caso de haber poca luz, ¿qué prefieres, ruido, poca profundidad de campo o movimiento?

Muchas veces estos elementos que pueden dañar tu foto en realidad pueden ser usados de manera creativa para realzarla y hacer la foto más interesante.


Fotógrafo Henri Cartier-Bresson, “Moment”

En retratos es muy usado el usar poca profundidad de campo, para realzar nuestros sujetos, esta foto es mía y de mi esposa y fue parte de un trabajo, se podrán dar cuenta que la pareja retratada destaca absolutamente a pesar de que hay bastante gente detrás de ellos, recuerden la poca profundidad de campo se puede conseguir con un lente largo o un lente luminoso, esta la tomamos con un Tamron 17-50mm de f2.8.

Para ver más ejemplos puedes visitar mi página profesional en Facebook o mi galería en Flickr.

Enviar comentario

via Cristalab http://ift.tt/1lpHCeR

POO: Inyección de dependencias en Laravel (IV)

Esta es la cuarta parte de la mini serie de inyección de dependencias en Laravel, lee la primera, la segunda y la tercera antes de continuar.

[nota:2b65205bb2]Necesitas conocimientos básicos de Laravel y POO para hacer este tutorial.[/nota:2b65205bb2]

Vimos en capítulos anteriores que la inyección de dependencias, pese a su nombre complicado, es realmente un concepto simple que permite escribir objetos “desacoplados”, es decir, que no sean dependientes uno del otro.

La inyección de dependencias nos permite diseñar ORMs que en vez de estar atado a un solo motor de DB, reciban como parámetro clases MySQL o Postgresql o incluso de MongoDB que funcionen siempre que cumplan con una “interfaz”.

El “contenedor de inyección de dependencias” es como una máquina ensambladora que conecta una parte con otra y hace que todo el sistema funcione.

También vimos que manipular las dependencias de nuestro sistema puede ser difícil, por eso el contenedor de Laravel es inteligente, y aún así sigue siendo simple! Para demostrarlo les creé un demo.

Bien ahora dejémonos de demos y vamos a usar el contenedor real de Laravel!

Para enseñarles cómo usar la inyección de dependencias en Laravel necesito 3 pasos:

Primero crearemos una clase de ejemplo y luego la integraremos con el contenedor de Laravel.

Paso 1: Clase Alert de ejemplo

Yo creé para uds. una mini versión de mi clase Alert que es un helper para enviar mensajes del controlador a las vistas, en mi caso uso los estilos de Bootstrap pero es adaptable.

Código :

<?php namespace Components;

use Illuminate\Session\Store as Session;
use Illuminate\View\Environment as View;

class Alert {

    const SESSION_NAME = 'AlertMessages';

    public function __construct(Session $session, View $view)
    {
        $this->session = $session;
        $this->view = $view;
    }

    public function message($message, $type)
    {
        $messages = $this->session->get(static::SESSION_NAME, array());
        $messages[] = compact('message', 'type');
        $this->session->flash(static::SESSION_NAME, $messages);
    }

    public function render($template = 'alert')
    {
        $messages = $this->session->get(static::SESSION_NAME, null);

        if ($messages != null)
        {
            $this->session->flash(static::SESSION_NAME, null);
            return $this->view->make($template)->with('messages', $messages);
        }

        return "";
    }

}

Esta clase tiene dos métodos: message graba mensajes y render los muestra.

La clase usa la Sesión de Laravel para guardar mensajes entre una petición y otra y la clase de Vista para los templates.

Para usarla:

1. Dentro de app creen las carpetas y el archivo: app/library/Components/Alert.php allí copien y peguen el código de arriba.
2. Abran composer.json y en “autoload” -> “classmap” agreguen "app/library/Components" ejemplo:

Código :

   "autoload": {
      "classmap": [
                                    ……...
                                    "app/library/Components"

3. Ejecuten en la consola “php artisan dump-autoload”.
4. En la carpeta app/views creen un archivo llamado alert.blade.php y copien lo siguiente:

app/views/alert.blade.php

Código :

@foreach ($messages as $msg)
<div class="alert alert-block alert-{{ $msg['type'] }} fade in">
    <button type="button" class="close" data-dismiss="alert">&times;</button>
    <p><strong>{{ $msg['message'] }}</strong></p>
</div>
@endforeach

Esta es la plantilla que usará la clase Alert por defecto.

Veamos un ejemplo de cómo usarla, en un método cualquiera de un controlador agreguen esto:

Código :

        $alert = new Components\Alert(App::make('session.store'), App::make('view'));
        $alert->message('Laravel es genial', 'info');

Asignen la variable $alert a la vista:

Código :

        return View::make('admin/users/list')->with('alert', $alert);

Y en cualquier Vista simplemente:

Código :

{{ $alert->render() }}

Si usan una plantilla que implemente Bootstrap verán un bonito mensaje en azul que dirá “Laravel es genial”.

Con esto terminamos el paso 1.

Paso 2: Usar el contenedor de inyección de dependencias de Laravel

El código anterior se enfrenta al menos a dos inconvenientes.

1. Usarlo es complicado, es decir instanciar la clase, es demasiado código y difícil de recordar:

Código :

$alert = new Components\Alert(App::make('session.store'), App::make('view'));

De hecho podría ser peor, pero yo tomé un atajo y usé el contenedor de Laravel (alias “App”) para traerme la clase de session y la clase de view:

Código :

App::make('session.store')

De lo contrario haría falta instanciar esas clases y cada una de sus dependencias, lo cual podría volverse fácilmente unas 10 líneas de código.

2. La clase y variable $alert debe pasarse siempre a la vista, de lo contrario obtendremos un error de que la variable no está definida.

Con el contenedor de Laravel podemos resolver ambos problemas muy fácilmente:

Usando los ServiceProviders

Laravel le llama Service Providers a las clases que almacenan la configuración de la inyección de dependencias, son como los ensambladores de la aplicación.

1. Creen un archivo nuevo en app/library/Components/AlertProvider.php y peguen este código:

Código :

<?php namespace Components;

use Illuminate\Support\ServiceProvider;
use Illuminate\Foundation\AliasLoader;

class AlertProvider extends ServiceProvider {

    public function register()
    {
        $this->registerAlert();
    }

    public function registerAlert()
    {
        $this->app->bind('alert', function($app)
        {
            return new Alert($app['session.store'], $app['view']);
        });
    }

}

2. Ejecuten nuevamente php artisan dump-autoload.

3. Vamos a decirle a Laravel que queremos incluir este ServiceProvider en nuestra App, vamos a app/config/app.php y en el array “providers” agregaremos ‘Components\AlertProvider’ a la lista:

Código :

   'providers' => array(
                        …………
                        ………...
                        'Components\AlertProvider'
   ),

4. ¡Ya podemos instanciar nuestra clase Alert con el contenedor de dependencias! Es decir:

Código :

        $alert = App::make('alert');
        $alert->message('Laravel es genial', 'info');

Paso 3: Uso de los Facades en Laravel

Aún App::make(‘alert’) se ve algo extraño, no? A pesar de que es más limpio, no sería mejor tener algo como Route::get ? De hecho “Route::get” es lo que Taylor Otwell llamó facades.

Creemos el nuestro:

1. Creen el archivo app/library/Components/AlertFacade.php

Y coloquen lo siguiente:

Código :

<?php namespace Components;

use Illuminate\Support\Facades\Facade;

class AlertFacade extends Facade {

    /**
     * Get the registered name of the component.
     *
     * @return string
     */
    protected static function getFacadeAccessor() { return 'alert'; }

}

2. Luego regresemos a nuestro ServiceProvider y vamos a crear un Alias para el Facade:

Código :

<?php namespace Components;

use Illuminate\Support\ServiceProvider;
use Illuminate\Foundation\AliasLoader;

class AlertProvider extends ServiceProvider {

    public function register()
    {
        $this->registerAlert();
        $this->setAliases();
    }

    public function registerAlert()
    {
        $this->app->bind('alert', function($app)
        {
            return new Alert($app['session.store'], $app['view']);
        });
    }

    public function setAliases()
    {
        $this->app->booting(function ()
        {
            $loader = AliasLoader::getInstance();
            // Facades
            $loader->alias('Alert', 'Components\AlertFacade');
        });
    }

}

3. No olviden ejecutar el dump-autoload.

Una vez hecho estos tres pasos en nuestro controlador ya podemos usar el Alert así:

Código :

Alert::message('Laravel es genial', 'info');

Noten que NO estamos instanciando la clase, por lo tanto tampoco necesitamos la variable $alert, en la vista queda así:

Código :

{{ Alert::render() }}

Más limpio y bonito imposible.

Sin embargo noten que tampoco estamos haciendo uso de clases estáticas, lo cual es una mala práctica casi siempre, lo que ocurre es que el Facade se encarga de interactuar con el contenedor de inyección de dependencias de Laravel que a su vez instancia y almacena la clase por nosotros.

Es decir, cada vez que haz hecho Route::get o View::make en realidad estabas trabajando con inyección de dependencias sin darte cuenta!.

Les recomiendo seguir la documentación de Laravel IoC Container y Facades para aprender más de estos geniales conceptos.

Con esto concluyo la mini serie de inyección de dependecias, espero que les haya gustado.

Sígueme en Twitter y aprende más sobre programación

Enviar comentario

via Cristalab http://ift.tt/S22Ipv

Filtros en Google Analytics

Los filtros en Google Analytics son una herramienta de doble filo, así como te pueden ayudar también pueden dañar todos tus reportes. En este caso, los filtros se configuran a nivel de la vista y lo más importante a tener en cuenta, es que Analytics cuando pasa la información que se reportó por un filtro, elimina todo el resto de datos que no coincidan, es decir, si filtramos la dirección IP de tu oficina, Analytics ignorará todos los datos que vengan de esa IP, y luego cuando elimines el filtro no podremos recuperar los datos que ya había ignorado.

Buenas prácticas en Google Analytics

Desde Google nos recomiendan manejar diferentes vistas para proteger nuestros reportes, pues lo más importante de nuestro negocio es la información.

Para esto vamos a crear tres vistas por propiedad, una vista no tendrá ningún filtro, la segunda será para hacer pruebas y la tercera será “master”, donde veremos todos los reportes para tomar decisiones en nuestra empresa.

La mejor analogía para entenderlo es verlo como GitHub, cada vista será un branch y tendrá diferentes versiones de la información, lo más importante es que toda la data estará a salvo.

Cómo crear un filtro en Analytics

Primero debes ir al administrador de Analytics y seleccionar la cuenta, propiedad y vista a la cual le quieres crear el filtro, en la configuración de la vista, das click en filtros.

Luego, das click en + Nuevo filtro y aquí verás dos opciones, en Seleccionar un método para aplicar un filtro a una vista donde puedes importar un filtro que tengas en otra vista de la misma propiedad o crear un nuevo filtro, en este caso seleccionas Crear filtro nuevo y luego tendrás opción de crear un filtro predefinido (como excluir una IP) o crear tus propios filtros en base a dimensiones y métricas de Google Analytics.

Recuerda que los filtros en Google Analytics trabajan según su orden, es decir, si tienes un filtro de país que incluya sólo las visitas de Colombia y luego pones un filtro para que incluya todas las visitas de México, el filtro no recolectará las visitas de México, pues al pasar por el primer filtro se eliminó toda la información de los países que no fueran Colombia. Debes tener todo esto muy en cuenta para generar tus reportes correctamente.

Enviar comentario

via Cristalab http://ift.tt/1pzxUuL