Archivo de la categoría: Tutorial

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

Android List Adapters

Adapters

Los ListAdapters son los que saben como pintar los elementos de una lista, estas listas pueden ser tanto un ListView, Spinner List, Pager y demás elementos que sean de tipo de iteraciones o listas en si.

El rol de los adapters es encargarse de saber como pintar cada elemento de una lista al igual que se encargan de manejar la data que mostrara la misma.

Sigue leyendo

Load Balancer Nginx

Cada dia las aplicaciones se convierten en mas concurrentes y en ocasiones nuestros servidores no dan abasto para tanta carga y da la necesidad de poder distribuir el peso de las aplicación en mas de un servidor (Divide y conquista).

La cosa es que este concepto de balanceo de cargas puede ser implementado desde servidores web hasta servidores de base de datos, ejemplo puedo balancear la carga de un servidor mysql o MongoDB (Eso sera ya otro tutorial 🙂 ).
Sigue leyendo

Iniciando con Git y Github / Bitbucket

El día de hoy es normal que todos conozcamos git y GitHub, y es casi imposible comenzar un proyecto sin hacer un «git init» antes de tirar la primera linea, así que por motivos como esos, es este tutorial; Aparte de los confuso que puede ser en ocasiones configurar GitHub.

En caso de tener claro los conceptos de que es y para que usar git/Github pasar a la instalación directamente.
Sigue leyendo

Iniciando con Gulp

El automatizar procesos siempre ha sido una de las tareas de los ingenieros y en el área de software no es la excepción a la regla. Con el auge hoy día de los super sets de JavaScript (CoffeScript y demás) y preprocesadores de Css (Sass, less y demás) se convierte algo tedioso e inhumano estar procesando esos archivos manualmente cada vez que es realizado un cambio en uno de estos, así que para ese tipo de tareas y/o tareas particulares que nuestros proyectos requieran lo podremos lograr con lo que hoy se conocen como «Task runners» ahi es donde Gulp hace su entrada.

En este tutorial estaremos viendo uno de los mas nuevos en esta área y es Gulp Es relativamente nuevo pero una vez llego a la vista de los desarrolladores muchos han entrando en una relación seria con este producto.
Sigue leyendo

Angular Logo

Service & Factory Angular

Como todo proyecto organizado no podemos tener toda la logica y/o funcionalidades core en controladores y mucho menos en vistas, AngularJs tiene el concepto de Servicio esto lo implementan de 2 formas, Service y Factory, ambos podrian ser usados del la misma manera pero es bueno tener en cuenta como funcionan para así sacarles el mas provecho.

Antes de hablar de service y demás cosas es bueno saber que AngularJS maneja el concepto/funcionalidad de inyección de dependencia (dependency injection), Angular utiliza esto a la hora de requerir cierto componente desde cualquier parte de la aplicación este es inyectado a nuestro controlador (Digamos). Este concepto lo usamos desde el principio, un ves decimos en nuestro controlador:
Sigue leyendo

Angular Logo

Compartir data entre controladores AngularJS

Algo que sucede bastante mientras se esta usando AngularJS es querer que 2 controladores interactuen con la misma data, esto se puede hacer de varias maneras, o con un servicio o una factoría (La verdad es la misma forma de hacer digamos).

Ejemplo:

Digamos que tenemos un template con su app test con 2 controladores main y main2 y ambos estan pintando la variable service.message.

HTML

<div ng-app='test'>
    
    <div ng-controller='main'>
        
        {{ service.message }}
        
    </div>
    
    <div ng-controller='main2'>
        
        <p>{{ service.message }}</p>
        
        <input type="text" ng-model='service.message'/>
    </div>
    
</div>

JavaScript

    var app = angular.module('test',[])

    app.controller('main',function($scope,ServiceTest,serviceFactory){
        $scope.service = ServiceTest.data;
    })
    
    app.controller('main2',function($scope,ServiceTest,serviceFactory,){
        $scope.service = ServiceTest.data;
    })
    
    app.service('ServiceTest',function(){
        this.data = {
            message : "From service init"
        }
    })

    app.factory('serviceFactory',function(){
    
        return {
            message:"nice"
        } 
    });

Para ambas formas funcionara de la misma manera, una vez inyectemos el service o la factoría tendremos la referencia de la misma variable y si cambiamos el valor de dicha variable sera reflejado en ambos lugares por que es la misma referencia.

Referencia

Codigo completo

LargeEntity

Crear host virtual Apache – Nginx

Apache y Nginx los servidores web mas usados en la web de hoy dia, cada uno con sus ventajas y desventajas ( Este no sera un post para nombrarlas ).

Este tutorial es para cuando la necesidad de poder hostear mas de un site en un mismo servidor y necesitamos que cada uno responda a un dominio distinto, el proceso es bien simple y facil.

Apache

Los archivos vhost estan situados en directorios distintos segun el sistema operativo:

Vhost File
  • Si estan usando wamp estan en la caperta bin/apache/conf/extras/vhost
  • Ubuntu, /etc/apache2/site-avaliable
  • centos /etc/httpd/conf.d
Conf file
  • Si estan usando wamp estan en la caperta bin/apache/conf/httpd.conf
  • Ubuntu, /etc/apache2/httpd.conf
  • Centos /etc/httpd/conf/httpd.conf

Una vez localizados estos archivos es necesario comprobar algunas configuraciones

  • Asegurar que no este comentado esta opacion Include conf.d/*.conf
  • Asegurar que esta opcion no este comentada tampoco NameVirtualHost *:80

Luego de haber configurado nuestro http.conf y localizado donde colocar los vhost files proceder a crearlos.

Ejemplo 1:

Este vhost servira para cuando accedan a dominio.com el projecto a mostrar seria el de la carpeta /carpeta_to_projecto/

    Listen 80

   <VirtualHost *:80>
        DocumentRoot /carpeta_to_projecto/
        ServerName dominio.com
    </VirtualHost>
Ejemplo 2:

Con este ejemplo podran hacer lo mismo que en el anterior con la salvedad de que este si identifica los enlaces simbolicos ( FollowSymLinks ) y les permitiras listar los archivos de una carpeta ( Options Indexes ),la opcion de AllowOverride all es muy usada por muchos frameowrks php para crear sus rutas si esta ocion no existe su framework no podra funcionar chevere.

    Listen 80

    <VirtualHost *:80>
        DocumentRoot /var/www/test_project/
        ServerName projecto.com

        <Directory /var/www/test_project>
            AllowOverride all
            Options Indexes FollowSymLinks
        </Directory>
    </VirtualHost>

Luego de crear sus vhost files es cuestion de reiniciar el servicio de apache y todo estara funcionando (Si todo le sale bien).
**Los vhost files deben guardarce con extencion .conf sino apache no sabra que son vhost.conf

Nginx

Los archivos vhost en nginx esta situados en /etc/nginx/conf.d/ a menos que estes en uguntu estaran en /etc/nginx/sites-available/ (Tenia que ser un ubuntu :/ ).

Ejemplo 1:

El atributo location es muy usado para algunos frameworks que necesitan ubicar la direccion de los archivos estaticos (.js/.css/.imgs).

	server {
	        listen   80;
	        
	        root /var/www/projecto;
	        index index.html index.htm;

	        server_name 54.196.254.224;

                location / {
                    try_files $uri $uri/ =404;
                }
	}

Referencia Nginx
Referencia Apache