Tomar decisiones y hacerse cargo

Gran cantidad de ocasiones nos enfrentamos con situaciones que no nos gustaría hacer y comenzamos a postergar el realizarlas. Esto provoca que perdamos una gran cantidad de energía y tiempo que jamás regresarán.

Por muy tonto que pueda parecer, la mayor parte del tiempo nuestro cuerpo toma decisiones por nosotros y no siempre son las mejores, sino son las más fáciles para él y es por lo que comenzamos a sentir una resistencia a hacer una cantidad inimaginable de cosas. El cuerpo esta programado para hacer las cosas que le son cómodas y seguras; y por esto cuando nos piden algo tan simple como levantarnos  por un vaso de agua, sentimos una fuerza que nos dice que no lo hagamos en nuestro interior.

Sin embargo, esto ayuda a que prevalezca el circulo vicioso de no completar las cosas. En lo personal, he entrado en situaciones deprimentes por no saber que hacer, el tener tantas cosas en espera y no conocer la mejor actividad para comenzar y el tratar de delegar casi la totalidad del trabajo para conseguir ese estado de confort que alimenta a mi cuerpo con esa sensación de ser un inútil pero sin preocupaciones mayores y que permite que vuelva a comenzar el ciclo día con día.

Una de las cosas que  he aprendido a lo largo de mi travesía como emprendedor y empresario, es que si necesitas que algo se haga, tienes que hacerlo tu mismo sin importar nada. Esto ayudará a que tu auto-concepto se empiece a reparar, pues el lograr esas pequeñas victorias crean una satisfacción que crece poco a poco y motiva a continuar con la siguiente tarea.

Me atrevería a decir que el 90% del tiempo estamos perdiendo energía en tratar de decidir que hacer y cuando finalmente lo decidimos, estamos agotados para hacerlo y es donde viene la frase más amada por muchos… “Mejor mañana”. El pasar por esto me ha llevado a encontrar algunas acciones que me permiten no luchar tanto conmigo mismo y que al final se traduce en tener una mejor energía y actitud al respecto de mis tareas. Las acciones que te puedo recomendar son las siguientes:

Programar tu día.

Una gran ventaja de programar tu día, es que ya sabes qué es lo que tienes que hacer y no pierdes tiempo divagando entre la inmensidad del universo de tu cabeza. Acostumbro realizarlo por las noches en esos momentos que se han vuelto inevitables al tener mi celular en las manos antes de dormir.

Evitar las excusas.

Para cada solución siempre hay una excusa. El ser consiente de que las cosas se tienen que hacer ayuda a evitar este tipo de pensamientos que solo nos llevan a paralizarnos y de tener tanto que hacer, no se hace nada por que hace frío, o hace calor, o tengo que ir a ver si ya puso huevos la marrana. La mejor manera de avanzar es haciendo, no pensando y que mejor haciéndolo con la actitud correcta.

Encontrar el momento adecuado.

Según el tipo de persona que seas, habrás notado que eres mejor para hacer ciertas cosas en ciertos momentos del día, como el hacer trámites más fácil por las mañanas o el concentrarte más por las noches. Bien, pues es una de las maneras que puedes tomar la batuta de tus tareas y realizarlas lo mejor posible al seleccionar de la mejor manera tus tareas y como se te facilitan más. Este punto esta pegado al programar tu día, pero al hacerlo de manera consiente de cuándo y qué es mejor para ti, facilitará inmensamente las cosas.

Por último me gustaría agregar que todo está en tu persona; el decidir qué hacer y el decidir hacerlo en ese momento te ayudará a quitarte un peso de encima al no tener pendientes al final del día, o por lo menos, no la misma cantidad que no te deja dormir por las noches al agobiarte que no te alcanza el tiempo.

Servidor básico con Node.js

Logotipo nodejs

Logotipo nodejs

Si estas buscando el término nodeJS es porque no eres un novato cualquiera y tienes interés por generar algo más que una aplicación de nivel de preparatoria. Pues en esta ocasión, crearemos un servidor de lo más sencillo con esta tecnología pero que te dará pie a entender y crear algo mucho más complejo. Empezamos?
En primera instancia, tenemos que instalar nodeJS y esto, según la plataforma, se hace de diferentes formas que puedes revisar en el sitio oficial de node, donde encontrarás el archivo instalador para Mac o Windows, o en el caso de Linux tan sencillo como usar

apt-get install node

.
En segunda instancia, una vez instalado nodeJS y su administrador de paquetes, NPM o Node Package Modules, haremos la instalación de Express, que es un framework que tiene todo lo necesario para levantar el servidor que pretendemos crear. Para hacer esto se ejecuta el siguiente comando.
En el caso de mac o linux

sudo npm install -g express

En el caso de windows sólo quitamos la palabra sudo.
*Nota: En el caso de la nueva versión express 4, hay un detalle y que provocará errores, por lo menos a mi me los mostró en Mac y es que el comando express, que se supone se instala en la terminal, no hace una copia automática en la carpeta bin, que es donde se añaden todos los comandos para ejecutarse directamente desde consola. Pues para resolver esto es necesario instalar otra dependencia de node con el comando:

sudo npm install -g express-generator

Con este comando ya podemos probar con

express --help

que efectivamente ya se encuentra funcionando el comando express y tendremos todo lo necesario para ahora si irnos hacia el servidor que pretendemos activar.
En alguna carpeta de tu disco local crearemos un archivo con extensión js donde pondremos las instrucciones necesarias para levantar el servidor, en mi caso tengo una carpeta llamada Sites en la que tengo todos mis proyectos de aplicaciones, por lo que crearé una carpeta llamada node para este ejemplo.

Dentro de la carpeta mencionada hice un archivo llamado back.js el cual tendrá las siguientes líneas de código, que explicaré enseguida.

var express = require('express');
var web = express();
var server;

server = web.listen(8080, function(){
	console.log('Servidor funcionando');
});

web.get('/', function (req, res){
	res.send('Funciona el servidor web con nodejs');
});

en lo que corresponde a las primeras tres lineas, se usan para declarar las variables que contendrán el servidor a través de las instancias de express.
Al usar el comando require, se le dice al servidor que es absolutamente necesario el usar express y que queremos almacenarlo en la variable del mismo nombre.
En la segunda línea, se crea una instancia del objeto express, la cual nos permitirá utilizar todas las herramientas y funciones con las que cuenta.
La variable server, la declaramos como vacía pero para ser usada en la linea siguiente, donde le explicamos al servidor, que requerimos que escuche de manera indefinida al puerto donde se recibirán los datos correspondientes. En este caso en específico es en el puerto 8080 y al empezar a funcionar, nos desplegará en la consola el mensaje “Servidor funcionando”.
Por último, para hacer una prueba de que esta funcionando nuestro servidor, declararemos una ruta que devolverá un resultado, en esta ocasión será un mensaje de “Funciona el servidor web con nodejs” a través de la función send del parámetro res o response de la función que se ejecutará cada vez que se entre a la dirección localhost:8080.

Con esto tenemos lo básico, pero que nos falta?, solo el correr el servidor y ver funcionando nuestra primer página servida por nodejs, lo cual se hace en la terminal y ejecutando el comando

node back.js

donde se deberá sustituir el nombre back por cualquier nombre que tenga el archivo donde se define el servidor. Si todo sale bien, en la terminal se verá el mensaje “Servidor funcionando”.

Para poder revisar que efectivamente esta funcionando, ve en tu navegador preferido a la dirección http://localhost:8080 y te mostrará el mensaje “Funciona el servidor web con nodejs” tal y como lo programamos en la función de respuesta al web.get().

Con esto considero que tienes los elementos necesarios para hacer un servidor con solo lo necesario para las tareas que consideres pertinentes. Si tienes algún problema, no dudes en contactarme, mis redes sociales se encuentran en la parte inferior, o visíta mi sitio web en este enlace. Pronto volveré con más información al respecto.

Configuración básica de Laravel 5.1

logo de Laravel 5.1
logo de Laravel 5.1
Laravel 5.1

Con las nuevas versiones de Laravel y los cambios sustanciales que surgieron desde la versión 5, muchos de los simpatizantes de este framework nos confundimos al realizar un proyecto nuevo. Bien pues harémos una serie de publicaciones en este blog sobre las cuestiones generales de cómo configurar y tips básicos que nosotros mismos vamos necesitando a lo largo de nuestros proyectos.

En específico, en esta ocasión, trataremos de explicar lo esencial sobre la configuración básica de una instalación limpia del framework.

Permisos a carpetas

Es importante tener esto en mente. Por lo general, cuando hacemos una instalación y visitamos la url de nuestro proyecto, vemos una página en blanco y caemos en un estado de pánico, pensando que hay algo mal en el servidor. Para resolver el problema de la página en blanco de lavavel, lo haremos fácilmente de la siguiente manera: Da permisos de ejecución a las carpetas storage y boostrap/cache.

Al hacer esto, ya podremos visualizar la página de bienvenida que Laravel tiene preparado para nosotros.

Application Key

Existen funcionalidades del framework, como la encriptación de información, que requieren de un campo tan simple como una cadena de texto compuesta de 32 caracteres al azar y que es la app key, y es tan simple de generar, que se hace con tan solo usar el comando:

 php artisan key:generate

Esta llave es usada para el cifrado de datos y sesiones de usuario que tengas en tu aplicación y que si no se tiene, quedarán vulnerables.

Variables globales

Ahora nos da la posibilidad de crear variables globales que se usarán en el entorno que estamos usando y estas serán definidas en el archivo .env que se encuentra en la raíz de nuestro proyecto.

Para poder usarlas es posible acceder por medio de la variable $_ENV o con el helper env, ya configurado en Laravel.

Otra utilidad importante es la de hacer cambios en las variables globales de configuración en alguna rutina que se ejecute en el proyecto, por ejemplo cambiar el idioma de las notificaciones. Para realizar estos cambios, se usa el comando config, de la siguiente manera:

 config([ ‘nombre_variable’ => ‘Nuevo valor’]);

Nombre de aplicación

Lo pongo de esta manera haciendo alusión al comando, sin embargo, es más enfocado hacia el namespace bajo el que funciona Laravel, con la finalidad de darle acceso solo a los archivos y funciones que estén bajo el mismo namespace y por ende hace una aplicación más segura.

Una instalación limpia del framework se configura bajo el namespace App que si bien es un nombre genérico, puede cambiarse para hacerse más descriptivo de tu aplicación con el siguiente comando:

 php artisan app:name nombre_app

Modo mantenimiento

Algo que me pareció muy interesante, sobre todo por la naturaleza de las aplicaciones que últimamente he realizado, la posibilidad de poner toda la aplicación en modo de mantenimiento y que a los usuarios se les muestre una vista solamente informándoles de esto, evitando mostrarles los molestos errores que pueden causar los movimientos que estemos realizando.

Para poder activar esto usaremos el comando:

 php artisan down

El cual pondrá el modo mantenimiento en activo y cada petición que se haga a la aplicación enviará un error 503, el cual ya podremos manejar de la manera que más nos plazca.

Para revertir la puesta en marcha del modo mantenimiento solo ejecutamos:

 php artisan up 

y nuestra aplicación estará en funcionamiento de nuevo. El template que se muestra por default, se encuentra en la ruta views/errors/503.blade.php y podremos editarlo para hacer una vista más agradable para nuestros usuarios.

Pues esto es todo por esta ocasión, en estas semanas estaré publicando alguna información sobre Laravel 5.1 y mi experiencia con el manejo del mismo que en este momento es poca.

Si tienes algún comentario, puedes encontrarme en las redes sociales o en luisjavierdelcampo.me.

Los pilares del Marketing Digital

Marketing digital
Marketing digital
Los pilares del marketing digital

Si eres de las personas que promocionan sus negocios o empresas en la web, seguramente has escuchado el término de Marketing Digital. Bien, pero nadie nos dice realmente qué es? o lo que tenemos que cuidar, hacer o simplemente de qué se compone.

En este post, hablaré de los tres pilares del Marketing digital, que bien o mal son los que lo estructuran de manera general. Dentro de cada uno de estos pilares hay una gran cantidad de términos que son de ayuda y abordaremos en posteriores ocasiones.

1. Posicionamiento

Esta es la palabra más común en el mercadeo en general, posicionar, pero qué significa?,es el que tu marca sea la más vista en todos lados.

Todos conocemos las marcas más posicionadas de refrescos (o sodas, en otros lugares). Por si te has dado cuenta, tienen publicidad por todos lados, pero eso no es en lo que radica su éxito, sino en que lo hacen de una manera inteligente, diciendo las palabras adecuadas para llamar tu atención, bien pues esto es lo que logra el posicionamiento.

En Internet no es algo distinto en esencia, pero si en la práctica, pues no solo lo que publiques será tomado en cuenta, sino también la estructura, etiquetas y contenido usado en tu sitio web.

Todos queremos ser el primer lugar en una búsqueda en Google, pues esto se logra con una serie de palabras clave que según tu giro u objetivo, deberás emplear en los elementos que mencione anteriormente a la hora de crear web.

Crear una marca y hacerla visible de una manera “orgánica”, es decir que no se paga, es un tema lento y de paciencia, pues tu contenido deberá estar optimizado para cumplir con el objetivo de posicionar en el mercado específico, y así, conseguir más visitas, ventas o lo que sea que quieres lograr con el.

De este tema, hay muchas cosas que se pueden hacer, pero eso te lo dejo a ti. Pronto tendremos información específica para cada rubro, como SEO, Branding,  entre otros, pero en esta ocasión aquí nos quedamos.

2. Marketing Inbound

Ahora que conocemos a grandes rasgos lo que es el posicionamiento, entonces entramos con el Inbound marketing, que es el posicionamiento que se realiza sin hacer una inversión específica, por ejemplo, campañas dedicadas a que le den like a la página de Facebook, o tener seguidores en Twitter. 

Generalmente se usan las redes sociales, al producir contenido y ayudan a generar un posicionamiento en el usuario. Algo que también ayuda a esto son actividades IRL (In real life, en el mundo real), pues esto está enfocado en mayor medida a hacer Branding o posicionamiento de marca.

3. Marketing Outbound

Al contrario del Inbound, es aquel marketing que se tiene una inversión en una plataforma para poder posicionar específicamente un tipo de contenido. Se le paga a las marcas como Google, Facebook, Twitter, entre otros, para poder dar a conocer tu marca o servicio que quieres posicionar.
Actualmente los términos que se relacionan con esto son:

  • SEM, Search Engine Marketing.
  • Adwords.
  • Compra de twits (No tan recomendado)

Además de esto, se pueden realizar una gran cantidad de actividades que hay en este tipo de marketing, pero hay que considerar que no todo es benéfico y puede salirnos el tiro por la culata.

Una práctica que se usaba comúnmente, era la compra de enlaces a los sitios, pero esto cayo hasta convertirse en spam y que Google lo considerara como algo que hay que penalizar. Con esto trato de decirte que… NO LO HAGAS!.

Estaré haciendo una serie de post más específicos en este tipo de temas, que serán más que nada recomendaciones para poner en práctica un buen marketing digital.

Los comandos de GIT

Los comandos de git
Los comandos de git
Git y sus comandos

En algún momento del desarrollador actual se va a topar con GIT, el sistema de control de versiones hecho para agilizar el desarrollo y disminuir la pérdida de información al trabajar de forma colaborativa, te comparto una publicación donde te explico lo que es con un poco más de detenimiento.

Bien, pues en el presente escrito, te daré una breve explicación de los diferentes comandos que GIT tiene, tanto para su configuración, como para su uso y que me ha servido conocer para poder aprovechar su potencial en los proyectos que he participado.

Comandos de configuración

git —version

Un comando muy básico, que además de darnos a conocer si GIT está instalado, también muestra la versión instalada. Siempre es recomendable tener actualizado al máximo, lo que te favorecerá en reducir los bugs que pueda traer la instalación anterior o simplemente mejora el funcionamiento.

git config —global user.name “Nombre de usuario”

Ayuda a configurar el nombre del usuario que esta usando el proyecto, lo hace de manera global, aunque se puede especificar por proyecto. Al ser configurado de esta manera, ya se puede conocer quien realiza los cambios en el sistema, al firmar automáticamente los cambios que se envían al repositorio.

Con este mismo comando, si ya existe un nombre configurado y se ejecuta, se reemplazará el nombre anterior.

Para conocer si este atributo ya fue configurado con anterioridad, simplemente ejecutamos git config —global user.name y mostrará la información que contiene.

git config —global user.email “email@email.com”

Funciona de la misma manera que el comando anterior, solo con la particularidad que es para el atributo de correo electrónico del usuario.

git config —global color.ui true

Una ayuda visual es el tener coloreada la salida que arroja GIT, es decir, sus respuestas. Este comando activa la interfaz de colores de la terminal al recibir información de GIT, lo que te permitirá identificar más fácilmente cada uno de los elementos importantes, tanto para saber si todo esta bien, o para resolver algún problema.

git config —global —list

Con la finalidad de saber como esta configurado nuestra instalación de GIT, este comando muestra todos los parámetros usados en dicha configuración por lo que no tenemos pretextos para decir que no sabemos que información tiene.

Usando GIT

git help

Es el comando de ayuda, muestra toda la información para saber los principales comandos y su función.

Si requieres profundizar en algún comando en específico simplemente ejecuta git help <comando> y mostrará toda la información relacionada con el comando, es decir, su uso, su descripción y parámetros que acepta. Para salir del panel de git help se usa la tecla q.

git init

El comando principal, pues con este es con el que se crea la instalación de GIT en el proyecto, esto a través de una carpeta oculta dentro de la carpeta donde se ejecuta.

Esta sirve para rastrear los cambios que va sufriendo el proyecto.

Es muy importante, que si no eres un usuario experimentado en la estructura, archivos y en general en el uso de GIT, no muevas nada manualmente de esta carpeta, pues es posible dañarla y que no funcione adecuadamente.

git status

Para conocer si ha habido cambios en la carpeta que GIT rastrea se puede ejecutar este comando y mostrará en que fase se encuentran, si ya están guardados los cambios en un commit o se tendrá que hacer eso primero.

La salida de este comando, es un listado de todos los archivos que sufrieron cambios y encapsulándolos por acciones que se tienen que realizar.

git add -A

Estuviste trabajando en el índex del nuevo sitio web de tu empresa y quieres guardarlo en el repositorio, pues este es el comando para el primer paso.

Sube todos los cambios realizados en el working área al stagging area (Te comparto esta publicación donde explico la estructura de GIT). Guarda los cambios y los pone listos para hacer enviarlos con una descripción.

git commit -m “Nombre del commit”

Es el paso intermedio entre los cambios y enviarlo al repositorio. Este comando hace un cambio en el proyecto usando como parámetro el nombre de ese commit, que nos ayudará a reconocer que cambio se hizo de una manera más entendible, puesto que el sistema de control de versiones usa una codificación a manera de ID para cada uno, que en un comando posterior usaremos.

git log

Muchos conocemos los archivos log, pues este no es la excepción. Es la bitácora que menciona la información de los cambios realizados ordenados de forma cronológica del más reciente al más antiguo. Si requerimos analizarlo con un mayor detalle podemos ejecutar git log > nombre_de_archivo.txt y guardará en un archivo de texto el log del proyecto. Es más cómodo pues la terminar carece de ciertas facilidades para revisar documentos.

git checkout <ID ó Branch>

Al realizar algún commit y que este se realizó satisfactoriamente nos da un resultado donde se muestra el ID que mencioné antes, o podemos conocerlo en el log devuelto por el comando git log. Pues este ID lo usaremos como parámetro en este comando que regresa el proyecto al estado del commit que se introdujo el código.

En caso de hacer un cambio en el commit al que se regresó, se crea una rama (branch) que correrá paralelo al proyecto principal, pero sin afectarlo en ese momento y que después se podrá fusionar o simplemente eliminarla si las cosas no eran como se esperaban.

Pero, ¿Cómo volvemos al punto más reciente del proyecto? Solo ejecutando git checkout master, ya que master es la rama principal del proyecto.

git reset

Comando similar a checkout, sin embargo elimina todos los commit realizados posteriormente al ID seleccionado, es decir si vamos en el commit 5 y damos git reset 1, eliminará los commit del 2 al 5.

Este comando tiene algunas variantes como:

git reset –soft

Elimina todos los commits intermedios entre el seleccionado y el último, pero deja intacto el working area y el staging area.

git reset –mix

Hace lo mismo que el soft, pero el staging area también lo elimina, solo deja el working area.

git reset –hard

Elimina todo! no deja cambio reciente sin tocar, solo hasta el commit seleccionado. Una ventaja es que no se elimina del todo al momento de hacerlo, en caso de tener el código del último commit al que se quiere recuperar, es posible regresarlo, claro, sin que se hayan realizado cambios, por eso es importante tener el log en archivos externos.

Estos comandos que les explico, son todo lo que necesitan para trabajo en local, pues falta el como enviar y recibir información de un repositorio remoto, pero para esto les daré a conocer como configurar dicho repositorio.

Si tienen alguna duda al respecto de esta publicación, no duden en contactarme, en la parte inferior se encuentra mi ficha de autor con el link directo a mis redes sociales.