AdSense_BarHorizontal

jueves, 18 de febrero de 2016

Problemas con el emulador de Android Studio - Cannot launch AVD in emulator

En esta nueva entrada de DatoByte les quiero Compartir la solución a un problema con el emulador AVD de Android Studio.

El problema:

Cannot launch AVD in emulator.
Output:
emulator: ERROR: x86 emulation currently requires hardware acceleration!
Please ensure Intel HAXM is properly installed and usable.
CPU acceleration status HAX kernel module is not installed!



La solución:


Para solucionar este incidente, basta con ejecutar los siguientes 3  pasos

Paso 1
Tendremos que ingresar a la BIOS de nuestro equipo (En algunos equipos se ingresa a la BIOS con alguna de las sgtes teclas  Esc, F8, F10, todo dependera de tu equipo), luego de ello tendremos que buscar la opción relacionada con el permiso para virtualizar, en algunas BIOS se llama "Intel Virtual Technology" en otras solo "Virtual Technology", y obviamente tendremos que ponerla Enable.



Paso 2
Abriremos el JDK Management  y procederemos a descargar el SDK Tools de nombre "Intel x86 Emulator Accelerator (HAXM installer)" la siguiente imagen te puede orientar en los subpasos a seguir
prestar atención a la ruta donde quedara dicha descarga enumerada con el 3, ya que tendremos que ir a esta ruta.


Paso 3
Como se dijo anteriormente nos desplazaremos a la ruta donde quedo descargado, alli encontraremos el archivo de nombre "intellhaxm-android.exe" el cual procederemos a instalarlo, este proceso de instalación es muy sencillo (Next>>Next>>Next>>Finish), Luego de esto es recomendable que si tienes en Android Studio abierto lo reinicies para que los cambios surtan efecto, (No es necesario reiniciar el equipo completamente, solo el Android-Studio)


Si hemos realizado los pasos correctamente luego de Iniciar el Android Studio Abrimos el AVD y ejecutaremos cualquier dispositivo y este se ejecutara perfectamente.



Espero te haya servido este tutorial, si te ha servido, no olvides darle +1 e inscribirte a mis entradas.

También puedes dejar tus dudas y comentarios al respecto.

miércoles, 17 de febrero de 2016

Iniciando programacion en JavaScript

En esta nueva entrada de DatoByte les quiero compartir conceptos básicos para iniciar la programación en JavaScripts.

¿Qué es Javascript?


JavaScript es un lenguaje de programación que se utiliza principalmente para crear páginas web dinámicas.

Una página web dinámica es aquella que incorpora efectos como texto que aparece y desaparece, animaciones, acciones que se activan al pulsar botones y ventanas con mensajes de aviso al usuario.

Técnicamente, JavaScript es un lenguaje de programación interpretado, por lo que no es necesario compilar los programas para ejecutarlos. En otras palabras, los programas escritos con JavaScript se pueden probar directamente en cualquier navegador sin necesidad de procesos intermedios.

A pesar de su nombre, JavaScript no guarda ninguna relación directa con el lenguaje de programación Java. Legalmente, JavaScript es una marca registrada de la empresa Sun Microsystems

Javascript es un lenguaje con muchas posibilidades, utilizado para crear pequeños programas que luego son insertados en una página web y en programas más grandes, orientados a objetos mucho más complejos. Con Javascript podemos crear diferentes efectos e interactuar con nuestros usuarios.

Es necesario resaltar que hay dos tipos de JavaScript: por un lado está el que se ejecuta en el cliente, este es el Javascript propiamente dicho, aunque técnicamente se denomina Navigator JavaScript. Pero también existe un Javascript que se ejecuta en el servidor, es más reciente y se denomina LiveWire Javascript.

¿Dónde puedo ver funcionando Javascript?


Entre los diferentes servicios que se encuentran realizados con Javascript en Internet se encuentran:

  • Correo
  • Chat
  • Buscadores de Información

También podemos encontrar o crear códigos para insertarlos en las páginas como:

  • Reloj
  • Contadores de visitas
  • Fechas
  • Calculadoras
  • Validadores de formularios
  • Detectores de navegadores e idiomas


No todo es color rosa


En cuanto a las limitaciones, JavaScript fue diseñado de forma que se ejecutara en un entorno muy limitado que permitiera a los usuarios confiar en la ejecución de los scripts.

De esta forma, los scripts de JavaScript no pueden comunicarse con recursos que no pertenezcan al mismo dominio desde el que se descargó el script. Los scripts tampoco pueden cerrar ventanas que no hayan abierto esos mismos scripts. Las ventanas que se crean no pueden ser demasiado pequeñas ni demasiado grandes ni colocarse fuera de la vista del usuario (aunque los detalles concretos dependen de cada navegador).

Además, los scripts no pueden acceder a los archivos del ordenador del usuario (ni en modo lectura ni en modo escritura) y tampoco pueden leer o modificar las preferencias del navegador.

Por último, si la ejecución de un script dura demasiado tiempo (por ejemplo por un error de programación) el navegador informa al usuario de que un script está consumiendo demasiados recursos y le da la posibilidad de detener su ejecución.

A pesar de todo, existen alternativas para poder saltarse algunas de las limitaciones anteriores. La alternativa más utilizada y conocida consiste en firmar digitalmente el script y solicitar al usuario el permiso para realizar esas acciones.


Veamos un poco de JavaScript



Crear un objeto en javaScript es tan sencillo como:


var vehiculo={};


Si queremos añadirle propiedades con valores podemos hacerlo de varias formas:

Le podemos añadir las propiedades al momento de crear el propio objeto:

var vehiculo={
marca:"Chevrolet",
referencia:"Camaro ZL1",
placa:"XYZ 123",
modelo:2016
}

Tambien podemos añadirselas una vez creado el objeto:

var vehiculo={};
vehiculo.marca="Chevrolet";
vehiculo.referencia="Camaro ZL1";
vehiculo.placa="XYZ 123";
vehiculo.modelo=2016;

O inclusive mediante un constructor


function Vehiculo() {
this.marca="Chevrolet";
this.referencia="Camaro ZL1";
this.placa="XYZ 123";
this.modelo=2016;
}
  
var vehiculo=new Vehiculo();

También les podemos añadir funciones:

Al crear el propio objeto:

var vehiculo={
marca:"Chevrolet",
referencia:"Camaro ZL1",
placa:"XYZ 123",
modelo:2016
getDescripcionCompleta:function() {
return this.marca+this.referencia;
}
}

Una vez creado el objeto:

var vehiculo={};
   
vehiculo.marca="Chevrolet";
vehiculo.referencia="Camaro ZL1";
vehiculo.placa="XYZ 123";
vehiculo.modelo=2016;
vehiculo.getDescripcionCompleta=function() {
return this.marca+this.referencia;
};

Mediante un constructor

function Vehiculo() {
this.marca="Chevrolet";
this.referencia="Camaro ZL1";
this.placa="XYZ 123";
this.modelo=2016;
this..getDescripcionCompleta=function() {
return this.marca+this.referencia;
};
}
  
var vehiculo=new Vehiculo();


Funciones


Hay unas formas de crear funciones

La forma clásica

function sumar(a,b) {
return a+b;
}
  
var c=sumar(1,2);

Crear una funcion como una variable

var sumar=function (a,b) {
return a+b;
}
  
var c=sumar(1,2);

Podemos hacer funciones que retornan funciones y llamarlas directamente.

function getFunction() {
var sumar=function (a,b) {
return a+b;
}
return sumar;
}
  
var c=getFunction()(1,2);

Closure

Ahora vamos a ver una de las cosas mas raras para un programador Java. Una closure. Inicialmente es como un simple puntero a una función, algo como lo que ya existía en C, pero hay algo más. Veamos el siguiente ejemplo:



function getFunction() {
var extra=100;
var sumar=function (a,b) {
return a+b+extra;
}
return sumar;
}
  
var sumaClosure=getFunction();
var c=sumaClosure(1,2);

Al ejecutar el ejemplo , la variable c vale 103. Igual no te parece raro pero cuando se está ejecutando la función sumaClosure,ya no debería existir la variable extra pero si que existe y la función sumaClosure aun puede usar su valor aun cuando ya no estamos dentro de getFunction. Es es realmente una closure. Una función que se ejecuta en el contexto de donde se creo no donde está ahora. Puede parecer que esto es poco útil, pero con tanta llamada asíncrona en JavaScript es realmente útil.

El ejemplo lo podemos liar un poco mas añadiendo nuevas variables llamadas extra y veremos como no afecta al resultado, éste sigue siendo 103:


var extra=1000;
  
function getFunction() {
  
  var extra=100;
  
  var sumar=function (a,b) {
    return a+b+extra;
  }
  
  return sumar;
}
  
extra=1100;
  
var fn=getFunction();
  
extra=1200;
  
var c=fn(1,2);


Espero estos conocimiento básicos sean de utilidad para iniciación de lenguajes de programación del lado del cliente, Proximamente estare publicando un tutorial de AngularJS.