Sublime Text



Sublime Text es un editor de texto y editor de código fuente está escrito en C++ y Python para los plugins. Se distribuye de forma gratuita, sin embargo no es software libre o de código abierto, se puede obtener una licencia para su uso ilimitado, pero el no disponer de ésta no genera ninguna limitación más allá de una alerta cada cierto tiempo.





Características

  • Minimapa: consiste en una previsualización de la estructura del código.
  • Multi Selección: Hace una selección múltiple de un término por diferentes partes del archivo.
  • Multi Cursor: Crea cursores con los que podemos escribir texto de forma arbitraria en diferentes posiciones del archivo.
  • Soporte nativo para infinidad de lenguajes: Soporta de forma nativa 43 lenguajes de programación y texto plano.
  • Pestañas: Se pueden abrir varios documentos y organizarlos en pestañas.
  • Auto completado y marcado de llaves: Se puede ir a la llave que cierra o abre un bloque de una forma sencilla.
  • Búsqueda Dinámica: Se puede hacer búsqueda de expresiones regulares o por archivos, proyectos, directorios, una conjunción de ellos o todo a la vez.  


Descargar Sublime Text

NetBeans

NetBeans 8

NetBeans es un entorno de desarrollo integrado libre, hecho principalmente para el lenguaje de programación Java. Existe además un número importante de módulos para extenderlo. NetBeans IDE es un producto libre y gratuito sin restricciones de uso.

La plataforma NetBeans permite que las aplicaciones sean desarrolladas a partir de un conjunto de componente de software llamados módulos. Un módulo es un archivo Java que contiene clases de java escritas para interactuar con las APIs de NetBeans y un archivo especial (manifest file) que lo identifica como módulo. Las aplicaciones construidas a partir de módulos pueden ser extendidas agregándole nuevos módulos. Debido a que los módulos pueden ser desarrollados independientemente, las aplicaciones basadas en la plataforma NetBeans pueden ser extendidas fácilmente por otros desarrolladores de software.

El NetBeans IDE es un IDE de código abierto escrito completamente en Java usando la plataforma NetBeans. El NetBeans IDE soporta el desarrollo de todos los tipos de aplicación Java (J2SE, web, EJB y aplicaciones móviles).


La plataforma ofrece servicios reusables comunes para las aplicaciones de escritorio, permitiendo a los desarrolladores centrarse en la lógica de sus aplicaciones. Algunas de las características de la aplicación son:
  • Gestión de la interfaz de usuario ( menús y barras de herramientas )
  • Gestión de configuración de usuario
  • Gestión de almacenamiento (guardar o cargar algún tipo de dato)
  • Gestión de ventana

NetBeans esta mejorando cada vez mas, con las ultimas actualizaciones NetBeans permite crear aplicaciones web con soporte a HTML 5 y PHP 5 un potente debugger integrado y ademas viene con soporte para Symfony un gran Framework MVC escrito en PHP, y con la posibilidad de poder adicionar otro plugins como Yii PHP Framework y otros. Al tener también soporte para AJAX, cada vez mas desarrolladores de aplicaciones web, están utilizando NetBeans como IDE. 


Descargar NetBeans 8.0.2

Descargar Java SE Development Kit 8
   

Introducción a Android Studio

Android Estudio


Es un nuevo entorno de desarrollo integrado para el sistema operativo Android lanzado por Google, diseñado para ofrecer nuevas herramientas para el desarrollo de aplicaciones móviles y una nueva alternativa al entorno de desarrollo Eclipse, hasta hace muy poco el IDE más utilizado. Android Studio esta basado en IntelliJ IDEA que es uno de los pioneros para el desaroollo de programas informaticos de codgio abierto.





Android Studio ofrece:
  • Un sistema de construcción basado en Gradle Flexible.
  • Construir variantes, y multiples generacion de archivos apk.
  • Plantillas de codigo para ayudar a construir, las caracteristicas de aplicaciones comunes.

Si eres nuevo en Android Studio puedes entra a la pagina oficial de developer android y en ella podras encontrar todas las caracteristicas claves de Android Studio, asi tambien como una amplia documentacion, consultar la pagina del Flujo de Trabajo, actualizaciones de API y ver algunos ejemplo de codigos.

¿Que es el Gradle de Android Studio?


Una respuesta simplea a esta pregunta seria que Gradlle es un sistema de construccion.
El Gradlle de Android Studio, es basicamente una herramienta que nos permite automatizar el proceso de construcion de nuestro proyectos (tareas de copilacion, testing, empaquetado). Es muy flexible para la configuración, pero además ya tiene armadas las tareas para las mayoría de los proyectos por defecto. Cuando compilamos nuestro proyecto, gradle mira si hay cambios en el código fuente con respecto a la ultima compilación, de esta forma se ahorra la tarea de volver a compilar todo el proyecto.

Al crear un nuevo proyecto en Android Studio, la estructura del proyecto aparece con casi todos los archivos dentro del directorio SRC, un cambio a un sistema de generación basado Gradle que proporcionará una mayor flexibilidad para el proceso de construcción. Además, gracias a su sistema de emulación integrado, Android Studio permite ver los cambios que realizamos en nuestra aplicación en tiempo real, pudiendo además comprobar cómo se visualiza en diferentes dispositivos Android con distintas configuraciones y resoluciones de forma simultánea.


Al crear nuestro proyecto tenemos tres archivos .gradle, nos vamos a centrar solamente en los dos build.gradle, estos archivos son generados automaticamente cuando creamos nuestro proyecto.









Este archivo contienen la siguiente informacion :



  • CompileSdkVersion: Indica la versión del API de Google con la que vamos a compilar nuestro proyecto, en mi caso es API 21 que es Android 5.0.1
  • minSdkVersion: Indica la versión mínima de Android que puede abrir esta app. Cuanto menor sea la version, mayor sera la compatibilidad con los dispositivos Android, en este caso esta aplicacion se podra abrir desde los dispositivos que estan en la API 9 que es el Android 2.3
  • VersionCode: Es un valor entero que representa la versión del código de la aplicación, en relación con otras versiones.
  • VersionName: Es un valor de cadena "1.0" que representa la versión del código de la aplicación, ya que este se debe mostrar a los usuarios.
  • aunque estas dos ultimas no se nuestran aqui porque se encuentran en el archivo AndroidManifest.xml de la aplicacion, tambien se puede especificar en el archivo build.gradle

Por ultimo, en dependencies se hace referencia a las librerías que implementaremos en nuestro proyecto.
La linea compile nos indica que vamos a copilar la libreria que se especifica entre la comillas, en este caso las libreria de soporte de android.
Si tenemos algun .jar en la carpeta lib, esto nos puede servir.
La linea “compile fileTree(dir: ‘libs’, include: [’*.jar’])” hace referencia a que todos los .jar que tengamos en la carpeta libs serán compilados.


Descarga Android Studio desde la pagina oficial

Listas en Java

Listas - List


Las listas son una colección ordenada (también conocida como una secuencia ). El usuario de este interfaz tiene un control preciso sobre dónde en la lista se inserta cada elemento. El usuario puede acceder a los elementos por su índice de número entero (posición en la lista), y la búsqueda de elementos en la lista.
A diferencia de conjuntos, listas suelen permitir los elementos duplicados. Más formalmente, las listas suelen permitir pares de elementos e1 y e2 tal que e1.equals (e2) , y por lo general permiten que múltiples elementos nulos si permiten elementos nulos en absoluto. No es inconcebible que alguien podría querer implementar una lista que prohíbe duplicados, lanzando excepciones de tiempo de ejecución cuando el usuario intenta insertarlas, pero esperamos que este uso sea raro.
La Lista interfaz coloca estipulaciones adicionales, más allá de los especificados en el Colección de la interfaz, en los contratos del iterador , agregar , quitar , es igual , y hashCode métodos. Declaraciones de otros métodos heredados también se incluyen aquí por conveniencia.
La Lista interfaz proporciona cuatro métodos para posicional (indexado) el acceso a elementos de la lista. Listas (como matrices Java) son cero basado. Tenga en cuenta que estas operaciones pueden ejecutar en un tiempo proporcional al valor de índice para algunas implementaciones (la LinkedList clase, por ejemplo). Por lo tanto, iterar sobre los elementos de una lista es normalmente preferible indexar a través de él si la persona que llama no sabe la implementación.
La Lista de interfaz proporciona un iterador especial, llamado un ListIterator , que permite la inserción del elemento y de reemplazo, y el acceso bidireccional, además de las operaciones normales de que el iterador interfaz proporciona. Se proporciona un método para obtener un iterador lista que comienza en la posición especificada en la lista.
La Lista interfaz proporciona dos métodos para buscar un objeto especificado. Desde un punto de vista de rendimiento, estos métodos deben utilizarse con precaución. En muchas implementaciones van a realizar costosas búsquedas lineales.
La Lista interfaz proporciona dos métodos para insertar y extraer múltiples elementos en un punto arbitrario en la lista de manera eficiente.

Modificador y tipo Metodo
boolean add(E e) Adiciona el elemento especificado al final de esta lista (operación opcional).
void add(int index, E element) Inserta el elemento especificado en la posición especificada en esta lista (operación opcional).
void clear() Elimina todos los elementos de esta lista (operación opcional).
boolean contains(Object o) Devuelve verdadero si esta lista contiene el elemento especificado.
boolean equals(Object o) Compara el objeto especificado con algun elemento de la lista.
E get(int index) Devuelve el elemento en la posición especificada en esta lista.
boolean isEmpty() Devuelve verdadero si esta lista no contiene elementos.
Iterator iterator()Devuelve un iterador sobre los elementos de esta lista en la secuencia correcta.
E remove(int index)Elimina el elemento en la posición especificada en esta lista (operación opcional).
boolean remove(Object o)Elimina la primera aparición del elemento especificado de esta lista, si está presente (operación opcional).
E set(int index, E element)Reemplaza el elemento en la posición especificada en esta lista con el elemento especificado (operación opcional).
int size()Devuelve el número de elementos en esta lista.


Clase List Documentación JAVA


Ver vídeo del Proyecto
Descargar Proyecto Listas

Colas en Java

Colas - Queue

Las Colas son Estructuras de Datos, que a diferencia de las Pilas estas trabajan con una estructura de tipo FIFO (First In, First Out), el primero en entrar sera el primero en salir. Podriamos pensar en el funcionamiento que tienen las colas en los Supermercados, o en los Bancos, o en las Estaciones de Servicios, conforme va llegando el cliente se va encolando en el ultimo que esta en la cola, y el primero que esta en la cola es el primero que recibe el servicio.
Las Colas son secuencia de elementos o colección de objeto en la que la insercion de los datos se realiza por un extremo que es el final de la cola(ultimo cliente que llega a la cola), y la operacion de extraccion por el inicio de la cola
JAVA nos proporciona su interfaz Queue(Colas en español), con los metodos necesarios para poder crear y manipular las colas en java.
Las Operaciones basicas para el manejo de una Cola son:
  • offer(E item)
    • Este metodo tienen como parametro un objeto, que es el que vamos a introducir en nuestra Cola.
  • poll()
    • Este metodo nos permite eliminar o sacar un elemento de nuestra Cola, nos retorna el objeto eliminado.
  • peek()
    • Este metodo nos sirve de consulta, nos retorna el primer elemento de nuestra Cola, sin eliminarlo.

Clase LinkedList

La interfaz Queue implementa a la Clase LinkedList, la cual nos permite manejar una cola como una lista. Implementa todas las operaciones de lista opcional, y permiten todos los elementos (incluyendo null).
Tenga en cuenta que esta aplicación no está sincronizado. Si varios subprocesos tienen acceso a una lista enlazada al mismo tiempo, y al menos uno de los hilos modifica la lista estructuralmente, que debe ser sincronizado externamente. (Una modificación estructural es cualquier operación que añade o elimina uno o más elementos;. Simplemente estableciendo el valor de un elemento no es una modificación estructural) Esto se realiza generalmente mediante la sincronización en algún objeto que encapsula naturalmente la lista. Si no existe tal objeto, la lista debe ser "envuelto" con el Collections.synchronizedList método. Esto se hace mejor a la hora de la creación, para evitar el acceso no sincronizado accidental a la lista:

List list = Collections.synchronizedList(new LinkedList(...));

Los iteradores devueltos por esta clase de iterador y ListIterator métodos son a prueba de rápido : si la lista se modifica estructuralmente en cualquier momento después de crear el iterador, de ninguna manera, excepto a través del propio Iterator quitar o agregar métodos, el iterador lanzará un ConcurrentModificationException . Así, en la cara de la modificación concurrente, el iterador falla rápida y limpia, en lugar de correr el riesgo de comportamiento arbitrario, no determinista en un tiempo indeterminado en el futuro.

Para poder crear Colas en JAVA tenemos que importar la clase a nuestro proyecto, y luego crearnos un objeto para poder acceder a los metodos de la clase.

import java.util.Queue;

 public class MyClase {
    
    private Queue cola;

    public MyClase() {
        this.cola = new LinkedList();
    }
 }
 
Throws exception Retorna un valor
Insertar add(e) offer(e)
Remover remove() poll()
Examinar element() peek()

Clase Queue Documentación JAVA


Ver video del Proyecto
Descarga Proyecto Colas

Pilas en Java

Pilas - Stack

Las Pilas (Stack en ingles), son estructuas de datos en donde el acceso a sus elementos es de tipo LIFO (Last In First Out), en donde el ultimo elemento en entrar, es el primero en salir. Podemos pensar en una pila de libros, en donde el acomodo de los libros se hace poniendo un libros, encimo del otro, y si quisieramos sacar un libro tendriamos que hacerlo desde el ultimo libro que hemos acomodado hasta encontrar el libro que deseamos. De igual manera trabajan las Pilas, sus elementos se van guardando o apilando uno encima de otro, y cuando queremos sacar un elemento, se procede a retirar el ultimo elemento que se a insertado en la pila.

La interfas Stack, que es la que nos proporciona JAVA para poder crear pilas, extiende de la Clase Vector y por lo tanto como ya sabemos esta hereda todos los metodos que tienen la Clase Vector. Esta interfas contiene 5 operaciones que nos permite tratar un Vector como un Pila.

Las Operaciones basicas para el manejo de una Pila son:
  • Push(E item)
    • Este metodo tienen como parametro un objeto, que es el que vamos a introducir en nuestra pila.
  • pop()
    • Este metodo nos permite eliminar un elemento de nuestra pila, nos retorna el objeto eliminado.
  • peek()
    • Este metodo nos sirve de consulta, nos retorna el elemento que se encuentra en la cima o en el tope de nuestra pila sin eliminarlo.
  • empty()
    • Este metodo nos devuelve un boolean, que nos indica si la pila esta o no esta vacia.
  • search(Object o)
    • Devuelve la posición en base 1, donde un objeto esta en la pila.

Esta interfas Stack la podemos encontrar en el paquete Java.util.Stack, si queremos utilizar esta interfas en nuestro proyecto primero tenemos que importarla.
import java.util.Stack;
Para poder utilizar los metodos de esta interfas, tenemos que crearnos un objeto de esta clase.
Stack pila = new Stack(); 
En el siguiente recuadro, podemos ver los metodos que nos permiten insertar y eliminar elementos de una pila.
Throws exception Retorna un valor
Insertar add(e) push(E)
Remover remove(E) pop()
Examinar get(index) peek()
Luego nos podemos crear un metodo que nos va a permitir dibujar nuestra pila y ver el funcionamiento y comportamiento de una manera grafica.
public String dibujar() {
        String s = "";
        if(!Vacia()){
            for (int i=0; i < pila.size(); i++) {
                s =  pila.get(i)+ "\n" + s; 
            }
        }
        return s;
    }
Clase Stack Documentación JAVA

Ver vídeo del Proyecto
Descarga Proyecto Pilas

Arrays / Vectores

Array

Un array(arreglo), es un tipo de dato estructurado que permite almacenar un conjunto de datos homogeneo, es decir, todos ellos del mismo tipo y relacionados. Cada uno de los elementos que componen un vector pueden ser de tipo simple como caracteres, entero o real, o de tipo compuesto o estructurado como son vectores, estructuras, listas.
A los datos almacenados en un array(arreglo) se les denomina elementos; al número de elementos de un array(arreglo) se les denomina tamaño o rango del vector.

Para acceder a los elementos individuales de un array se emplea un índice que será un número entero no negativo que indicará la posición del elemento dentro del array. Para referirse a una posición particular o elemento dentro del array, especificamos el nombre del array y el número de posición del elemento particular dentro del mismo, el índice.

El tipo de variable puede ser cualquiera de los admitidos por Java y que ya hemos explicado anteriormente.
int[ ] nombre_arrays = new int[5];
Object[ ] nombre_arrays = new Object[5];
String[ ] nombre_arrays = new String[5];
byte[ ] nombre_arrays = new byte[5];
short[ ] nombre_arrays = new short[5];
long[ ] nombre_arrays = new long[5];
float[ ] nombre_arrays = new float[5];
double[ ] nombre_arrays = new double[5];
boolean[ ] nombre_arrays = new boolean[5];
char[ ] nombre_arrays = new char[5];

Los valores por defecto de nuestro arreglo, va a depender del tipo de dato del cual fue creado. Por ejemplo

  • Arrays de tipo Integer(enteros) valor por defecto de las casillas 0
  • Arrays de tipos String(cadena) valor por defecto de las casillas nulos(null)
  • Arrays de tipos Booleanos valor por defecto de las casillas false

Para poder utilizar un Arrays(arreglo) en java, lo declaramos de la siguiente forma
private int []vector = new int[TAMAÑO];
Donde TAMAÑO sera la longuitud de nuestro arreglo.

Clase Arrays Documentación JAVA

Clase Vector JAVA

Java posee la capacidad de definir un conjunto de variables del mismo tipo agrupadas todas ellas bajo un mismo nombre, y distinguiéndolas mediante un índice numérico.

Los arrays en Java son suficientes para guardar tipos básicos de datos, y objetos de una determinada clase cuyo número conocemos de antemano. Algunas veces deseamos guardar objetos en un array pero no sabemos cuantos objetos vamos a guardar. Una solución es la de crear un array cuya dimensión sea más grande que el número de elementos que necesitamos guardar. La clase Vector nos proporciona una solución alternativa a este problema. Un vector es similar a un array, la diferencia es que un vector crece automáticamente cuando alcanza la dimensión inicial máxima. Además, proporciona métodos adicionales para añadir, eliminar elementos, e insertar elementos entre otros dos existentes.

Para usar la clase Vector hemos de poner al principo del archivo del código fuente la siguiente sentencia import.
import java.util.Vector;
Cuando creamos un vector u objeto de la clase Vector, podemos especificar cual de los Constructores por defecto de la clase Vector podemos utilizar.

Clase Vector Documentación JAVA

Para poder añadir datos a nuestro vector, podemos hacerlo de 3 formas:

  • Adicionando un elemento a nuestro vector
  • Insertando un elemento a nuestro vector
  • Cargar nuestro vector de forma Randomica
Si quisieramos adicionar un elemento a nuestro vector, podemos utilizar la funcion add o addElement que esta ya implementada en la clase Vector, colocando como parametro, el elemento que quermos adicionar a nuestro vector.
vector.add(a);
vector.addElement(a);

Para poder insertar un elemento en nuestro vector, tenemos que tomar en cuenta dos parámetros, la posición, en la que insertaremos nuestro elemento, que debe ser una posición valida, y nuestro elemento a insertar.
vector.add(pos, a);
Para poder cargar nuestro vector de una forma Randomica, tenemos que crearnos un objeto de la Clase Random, y asignar el rango de numeros aleatorios a cargar en nuestro vector.
public void cargar_randon(){
        Random r = new Random();
        while(p < TAMAÑO){
            vector[p] = r.nextInt(100);
            p++;
        }
    }     
Clase Random Documentación JAVA


Ver vídeo del Proyecto
Descargar Proyecto Vectores

Libreria Scanner : Tutorial de Java

Scanner

La librería Scanner, es una clase que nos permite capturar todo lo que el usuario escribe por teclado a través de la consola .
Para poder utilizar esta libreria primero tenemos que importarla a  nuestro proyecto de la siguiente manera

1.   Importando la librería a nuestro proyecto

import java.util.Scanner;


2.Creamos un objeto de tipo scanner

Para poder utilizar la libreria luego de importarla al proyecto, tenemos que crearnos una instancia o un objeto la libreria scanner, especificando el InputStream de tipo de entrada system.in
Scanner scanner = new Scanner(System.in);
String opcion = scanner.nextLine();
Si deseamos obtener el texto escrito por el usuario podemos utilizar el nextLine().
Si queremos obtener el numero que se introdujo por teclado ya sea de tipo entero (int) o real (float), podemos utilizar los siguiente metodos.

Para los numeros enteros

int numero = scanner.nextInt();

Para los numeros reales

float numero = scanner.nextFloat(); 



Ver vídeo del proyecto
Descargar Proyecto Calculadora 

Herencia e Implemtación : Tutorial de Java

Herencia

La herencia es uno de los conceptos básico de la Programación Orientada a Objetos. La funcionalidad de una clase existente se puede extender al crear una nueva clase que se deriva de ella. La clase derivada hereda las propiedades de la clase base y es posible agregar o reemplazar métodos y propiedades según sea necesario. Para poder utilizar la herencia en JAVA utilizamos la palabra reservada extends y especificamos la clase a la cual vamos hacer herencia. La clase base o clase hija, siempre debe estar en el extremo izquierdo en la declaración de clase, y la clase Padre que es de la cual vamos hacer herencia debe estar en el extremo derecho de la declaración de nuestra clase.

 Como Java, no admite herencia múltiple, lo que significa que las clases no pueden heredar más de una clase. Sin embargo, se pueden utilizar interfaces para ese propósito, de la misma manera que en Java.
 En el siguiente código definimos una clase Personal con sus atributos y métodos correspondiente

public class Personal {

public String codigo;
public String nombre;
private int edad;
protected String cargo;  

public Personal() {

}

public String getCodigo() {
return codigo;

}

public void setCodigo(String codigo) {
this.codigo = codigo;
}

}

Luego nos creamos otra clase a la cual llamaremos Personal_Publico y vamos a heredar los atributos y metodos de la clase Personal de la siguiente forma

public class Personal_Publico extends Personal{

private int año;

public Personal_Publico() {
super();
this.nombre = "Hugo";
this.codigo = "CD001";
this.cargo = "Presidente";
this.año = 2015;
}
}
De esta forma podemos aplicar la herencia en nuestra clase Personal_Publico, y ademas hacer usos de los atributos o métodos que tienen nuestra clase Padre Personal, de acuerdo el nivel de acceso que le demos a nuestro atributos, por ejemplo.

private = significa que no podemos acceder a ese atributo o método desde ninguna clase ni haciendo herencia
public = significa que vamos poder acceder a ese atributo desde cualquier clase y podemos aplicarle la herencia
protected = significa que no podremos acceder a ese atributo desde otra clase pero si podemos aplicar la herencia

Interfaces (implements)

Una interfaz es un tipo de clase esqueleto que contiene firmas de método pero no incluye ninguna implementación de método. De esta manera, las interfaces son como clases abstractas que contienen sólo métodos abstractos. 


Todos los miembros de una interfaz son públicos por definición y una interfaz no puede contener constantes, campos (miembros de datos privados), constructores, destructores ni ningún tipo de miembro estático. El compilador generará un error si se especifica un modificador para los miembros de una interfaz.
Las clases se pueden derivar de una interfaz para implementar esa interfaz. Estas clases derivadas deben proporcionar implementaciones para todos los métodos de la interfaz, a menos que la clase derivada se declare abstracta

public interface ICelular {
 
public abstract void Encender();
public abstract void Apagar();
public abstract void EnviarMSM(int numero, String texto);
public abstract int RecibirMSM(int numero, String texto);
}
En esta interfaz podemos apreciar algunas de las funciones que podría tener un celular, solo están mencionadas no están implementadas, no tienen un cuerpo de como es que se debería desarrollar.
Para poder implementar estas funciones en nuestra clase que vayamos a utilizar, tenemos que implementarla de la siguiente forma, utilizando la palabra clave implements

public class Celular implements ICelular{
}



Ver vídeo del Proyecto
Descargar Proyecto Ventana


Bienbenidos a La Web DJ