Como Obtener un Certificado SSL Gratis (letsencrypt) Y Configurarlo para Nginx

Asi mismo como dice el titulo, un certificado ssl gratis, ya no tenemos que pagar para que nuestra pagina aparesca como segura sino que podemos obtenerlo gratis gracias al proyecto letsencrypt.

El proyecto letsencrypt es una iniciativa para contrarrestar este sistema / monopolio de los ssl ofreciendo una alternativa gratis, hasta el momento se encuentra en una etapa beta y queda a nuestro criterio usarlo o no. Los certificados generados por este proyecto duran solo 90 dias luego de eso tenemos que generar otro con ellos mismo, pensaran que es poco tiempo pero por que preocuparse “esto es gratis” podemos actualizar sin costo alguno la vigencia de nuestros certificados sin problemas.

Sigue leyendo

Notificaciones Android

Las notificaciones son una buena forma de darle feedback al usuario de que algo sucedió y le concierne, se debe usar estas con precaución sabiduría ya que el mal uso de las mismas podría llevar a que el usuario simplemente las inhabilite para nuestra aplicación.

NotificationCompat.Builder mBuilder =
    new NotificationCompat.Builder(this)
    .setSmallIcon(R.drawable.ic_launcher)
    .setContentTitle("Mi Aplicacion")
    .setContentText("Hola mundo");

NotificationManager mNotificationManager = (NotificationManager)this.getSystemService(Context.NOTIFICATION_SERVICE);

int notificacion_id = 2345;

mNotificationManager.notify(notificacion_id, notification);

Sigue leyendo

Angular Logo

$Http & $q AngularJs

Es poco probable encontrar hoy dia una aplicación web hecha en cualquier framework que no realice alguna petición ajax, debido a esto y al gran uso de AngularJS este tutorial sera de estos 2 AngluarJS service $http y $q.

$http

Servicio que nos proporciona todo un set de metodos para realiza nuestras peticiones xhr de la forma es que mejor nos guste y cumpla con los requerimentos de nuestras apies.

Realizar un request con angular es tan facil como:

var config = {};
$http.get('http://localhost/api/test', config)
     .then(function(response){ console.log('request exitosa.') }, 
           function(response){ console.log('error'); });

Sigue leyendo

Socket.IO Rooms & NameSpace

Socket.io es una excelente herramienta para lo que conocemos como aplicaciones en tiempo real, si tenemos una gran cantidad de usuario y queremos organizarlos y/o segmentarlo para saber a que grupo de usuarios le enviamos cierta información las características de Room y Namespace.

Los namespace

Son una segmentación de nivel superior, tanto el cliente como el server deben tener definidos estos contextos ya definidos una vez la aplicación esta en ejecución a diferencia de los rooms. Por defecto todas las instancias de socket.io usan un namespace ‘/’ dependera de nosotros queremos usar uno extra.

var server = require('http').Server(app);
var io = require('socket.io')(server);

Sigue leyendo

Tomar una foto con android y cortarla

Tomar una foto con android es bien facil de hacer:

Tomar Foto

Permisos necesarios:

<uses-permission android:name="android.permission.CAMERA" />

Codigo:

Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);

//3434 es un int que esperaremos como resultado una vez sea tomada la foto.
startActivityForResult(intent, 3434);

Sigue leyendo

WebSockets (SocketIO & Express)

SocketIO una vez salió a la luz revoluciono la forma en la que las aplicaciones se realizaban, y nos brindo a los desarrolladores una herramienta bastante poderosa en cuanto al desarrollo de aplicaciones web se refiere. Brindándonos la capacidad de poder comunicarnos con nuestros clientes de forma directa en tiempo real.

Aprovechando la acogida de las apis de HTML5 socket.io nos brinda una interface para poder utilizar WebSockets y ademas a eso nos abstrae de usar metodos alternativos a WebSockets para navegadores que no lo soporten y aun así brindar a todos nuestros usuarios aplicaciones en tiempo real. Esta libreria cae perfecto para aplicaciones como Chats, Juegos, Analitica y demás, se puede ser bien creativo cuando tiene una comunicación bi-direccional con nuestros usuarios.

Sigue leyendo

Google Support design library

En vista de la nueva tendencia de material design y toda la movida, google libero en su ultima conferencia de desarrolladores una libreria para ayudar a developer con esto de componentes de UI mas complejos y ya digamos construidos ya listo para ser usados.

Componentes como los siguientes fueron agregados y/o mejorados en esta libreria:

  • Snackbar
  • FloatingActionButton
  • Toolbar
  • Collapsing Toolbars
  • NavigationView

Para poder usar esta libreria tenemos que agregar esta dependencia a nuestro gradle file

Sigue leyendo

Estructura de proyecto & Async HTTP Model Android

Android no nos deja realizar llamadas HTTP en el main thread por lo que para poder realizar la misma tenemos que crear un nuevo hilo de ejecución y realizar la misma, el instancia AsyncTask en una actividad o fragment puede resultarnos un poco no grato para nuestro código,nuestras vistas no necesitan saber lo que es un HTTPCODE o JSON nada de eso para nuestras vistas.

Si quieres pasar directamente al ejemplo y verlo directamente aqui esta el link del project.

Para organizar un poco nuestro codigo compartire el modelo que utilizo a la hora de comunicarme / interactuar con alguna api que retorne json o el formato que exponga la misma, este modelo digamos no podría decirse que no es mio y tampoco sabría de quien es pero con el tiempo y buscando en internet un poco de cada cosa lo he adquirido.
Sigue leyendo

Usando Redis en NodeJS

Usar Redis hoy día para hacer Caching de data que usamos constantemente es bien común y Nodejs no se queda atrás con esto. Por eso veremos un uso básico del mismo.

Redis también puede ser usado para implementar el patron Pub/Sub, donde nos suscribimos a ciertos eventos y así mismo ejecutar ciertas acciones en base a nuestra data obtenida.

Sigue leyendo