-->

viernes, 23 de septiembre de 2016

00.- FRAMEWORK, ¿Que es?, Características y ventajas

   
 Un Framework es un entorno o ambiente de trabajo para desarrollo; dependiendo del lenguaje normalmente integra componentes que facilitan el desarrollo de aplicaciones como el soporte de programa, bibliotecas, plantillas y más.
    Lo más importante de todo este entorno de trabajo es que contiene máquinas virtuales, compiladores, bibliotecas de administración de recursos en tiempo de ejecución y especificaciones de lenguajes, haciendo nuestro trabajo más eficiente y recursivo.
   La arquitectura más utilizada en casi todos los frameworks es conocida como MVC (Controlador, Modelo, Vista),  esta arquitectura divide el desarrollo en tres grandes partes:
  • Modelo: Son los datos de la aplicación y su reglamentación.
  • Vista: Es la presentación de los datos.
  • Controlador: Procesa las peticiones de los usuarios y controla el flujo de ejecución del sistema.

Características de los Frameworks

Casi todos los frameworks comparten las mismas características de acuerdo a su tipo, entre las que podemos destacar están:
  • La Autenticación mediante login y password que permite restringir el acceso y el tipo de permiso.
  • El Acceso a los datos en archivos txt, xml por ejemplo mediante interfaces que integran la base de datos.
  • Abstracción de URLs y Sesiones ya que el framework se encarga de manejarlas.
  • Internacionalización que permite la inclusión de varios idiomas en el desarrollo.
  • Controladores fácilmente adaptables a las necesidades del proyecto que gestionan las peticiones y/o eventos.

¿Cuantos frameworks existen?

Existen muchos Framework por eso más que difícil es casi imposible cuantificarlos y su uso va de acuerdo a las necesidades de cada proyecto y al gusto del freelance y/o desarrollador; algunos de ellos pueden ser:
  •  .NET: El Framework de Microsoft.
  • Ruby on Rails (RoR): es el Framework  de aplicaciones web de código abierto de un lenguaje de programación llamado Ruby.
  • Genesis: Framework para WordPress
  • Zengrid: Framework para Joomla
  • PhoneGap: Permite crear aplicaciones móviles multiplataforma a partir de tecnologías web como HTML5, CSS3 y Javascript.
  • JQuery Mobile: basado en HTML5 optimizado para todas las plataformas de dispositivos móviles.
  • Titaniun: Framework Open Source con licencia Apache, genera aplicaciones nativas para iPhone, Android y Blackberry.
La lista se haría interminable por tal motivo opinar sobre cuál es el mejor framework para desarrollar es verdaderamente inútil ya que los encuentras incluso tanto para desarrolladores expertos como para principiantes.

Ventajas más comunes

Como programador se destaca principalmente la facilidad en el desarrollo como la mayor ventaja de los framework, otras ventajas relevantes de su uso son:
  • Compatibilidad de Lenguajes
  • Transparencia de proyectos de plataforma a plataforma
  • Portabilidad de Arquitectura
  • Integración con múltiples dispositivos.
  • Desarrollo de aplicaciones de manera más sencilla, ya que cuenta con los componentes necesarios incluidos.
  • Reutilización de Código
  • Maneja Política de diseño uniforme y organizado.
Cuando eres freelance entiendes la importancia de estas ventajas en su utilización para ser más recursivos.
Elegir un frameworks va de acuerdo a la necesidad del proyecto a desarrollar así como también la decisión de no usarlos, consideración que valdría la pena reevaluar si tenemos en cuenta que el desarrollo con framework es menos propenso a sufrir errores. Lo que sí se puede decir es que hoy día la utilización de frameworks es casi del 100% porque permite a los desarrolladores freelance y/o autónomos ser más productivos, es decir más proyectos, mas ingresos y menos tiempo de trabajo.

miércoles, 21 de septiembre de 2016

1-PHP ¿Que es? ¿Que puede hacer? y ¿Porque PHP?


¿Qué es PHP?

  • PHP es un acrónimo de "PHP: Hypertext Preprocessor"
  • PHP es un lenguaje de programación de código abierto ampliamente utilizado
  • Scripts PHP se ejecutan en el servidor
  • PHP es para descargar y utilizar gratis
PHP es un lenguaje sorprendente y popular!
Es lo suficientemente potente como para estar en el centro del sistema de blogs más grande en la web (WordPress)!

Es lo suficientemente profunda para ejecutar la mayor red social (Facebook)! 

También es bastante fácil para ser el primer lenguaje del lado del servidor de un principiante!.


¿Qué es un archivo PHP?
  • Archivos PHP pueden contener texto, HTML, CSS, JavaScript, PHP y el código
  • Código PHP se ejecutan en el servidor, y el resultado se devuelve al explorador como HTML plano
  • Archivos PHP tienen extensión ".php"

¿Que puede hacer con PHP?

  • PHP puede generar páginas con contenidos dinámicos
  • PHP puede crear, abrir, leer, escribir, borrar y cerrar archivos en el servidor
  • PHP puede recopilar datos de formularios
  • PHP puede enviar y recibir cookies
  • PHP puede añadir, borrar, modificar los datos de su base de datos
  • PHP puede ser usado para el control de acceso de los usuarios
  • PHP puede cifrar los datos
Con PHP no está limitado a la salida HTML. Usted puede emitir imágenes, archivos PDF y películas Flash. También puede exportar cualquier texto, como XHTML y XML.

¿Por qué PHP?

  • PHP se ejecuta en varias plataformas (Windows, Linux, Unix, Mac OS X, etc.)
  • PHP es compatible con casi todos los servidores utilizados en la actualidad (Apache, IIS, etc.)
  • PHP es compatible con una amplia gama de bases de datos
  • PHP es gratuito. Puedes descargarlo desde el recurso oficial de PHP: www.php.net
  • PHP es fácil de aprender y funciona de manera eficiente en el lado del servidor

Tim John Berners-Lee

Sir Timothy "Tim" John Berners-Lee

Sir Timothy "Tim" John Berners-Lee, KBE es un científico de la computación británico, conocido por ser el padre de la Web. Estableció la primera comunicación entre un cliente y un servidor usando el protocolo HTTP en noviembre de 1989.
Fecha de nacimiento8 de junio de 1955 (edad 61), Londres, Reino Unido
CónyugeRosemary Leith (m. 2014), Nancy Carlson (m. 1990–2011)
EducaciónThe Queen's College (1973–1976), Emanuel School (1969–1973)

Fuente:Wikipedia

lunes, 19 de septiembre de 2016

(JAVA)Entrada de datos. Lectura de datos por teclado en Java. Scanner y BufferedReader

Entrada de datos. Lectura de datos por teclado en Java. 
Scanner y BufferedReader

     La entrada o lectura de datos en Java es uno de los conceptos más importantes y fundamentales al momento de interactuar con el usuario de nuestro programa. La entrada de datos en Java, a diferencia de otros lenguajes es un poco complicada (no demasiado) y existen diferentes formas de hacerlo, unas más complejas que otras. En este artículo veremos dos maneras sencillas de leer datos para nuestro programa en Java, veremos entonces dos formas de leer datos del usuario por teclado. La primera usando las clases BufferedReader e InputStreamReaderambas de la librería java.io y la segunda con la clase Scanner de la librería java.util.

Entrada usando la clase BufferedReader y InputStreamReader.

package entradajava;
  import java.io.BufferedReader;
  import java.io.IOException;
  import java.io.InputStreamReader;

public class EntradaJava {
     public static void main(String[] args) throws IOException
    {
        //Notar que readLine() nos obliga a declarar IOException
        BufferedReader br;

        br = new BufferedReader(new InputStreamReader(System.in));   //Ya tenemos el "lector" 

        //Se pide un dato al usuario
        System.out.println("Por favor ingrese su nombre");

        //Se lee el nombre con readLine() que retorna un String con el dato
        String nombre = br.readLine(); 

        //Se pide otro dato al usuario
        System.out.println("Bienvenido " + nombre + ". Por favor ingrese su edad");

        //Se guarda la entrada (edad) en una variable
        String entrada = br.readLine(); 

        //Nótese que readLine siempre retorna String y la clase BufferedReader...
        //no tiene un método para leer enteros, así que debemos convertirlo.

        //Se transforma la entrada anterior en un entero
        int edad = Integer.parseInt(entrada);

         //Si el usuario ingresó solo números funcionará bien, de lo contrario
        //generará una excepción

         //Operacion numerica con la edad
        System.out.println("Gracias " + nombre + " en 10 años usted tendrá " + (edad + 10) + " años.");
    }
}



Entrada por teclado usando la Clase Scanner


package entradajava2;

   import java.util.Scanner;

public class EntradaJava2 {
     public static void main(String[] args)
    {
        //Se crea el lector
        Scanner sc = new Scanner(System.in); 

        //Se pide un dato al usuario
        System.out.println("Por favor ingrese su nombre");
        
        //Se lee el nombre con nextLine() que retorna un String con el dato
        String nombre = sc.nextLine(); 

        //Se pide otro dato al usuario
        System.out.println("Bienvenido " + nombre + ". Por favor ingrese su edad");

        //Se guarda la edad directamente con nextInt()
        int edad = sc.nextInt(); 

        //Nótese que ya no hubo necesidad de usar parseInt()
        //pues nextInt nos retorna un entero derectamente
        
        //Operacion numerica con la edad
        System.out.println("Gracias " + nombre + " en 10 años usted tendrá " + (edad + 10) + " años."); 
    }
}










(JAVA) acceso a los elementos de arrays bidimensionales

El acceso a los elementos de arrays bidimensionales sigue el mismo formato que el acceso a los
elementos de un array unidimensional. En este caso, con las matrices deben especificarse los índices de la fila y la columna.

El formato general para la asignación directa de valores a los elementos es:

inserción de elementos

  <nombre array>[indice fila][indice columna] = valor elemento;

extracción de elementos

  <variable> = <nombre array> [indice fila][indice columna];

Con dos bucles anidados se accede a todos los elementos de una matriz. Su sintaxis es:

int fila, col;
for (fila = 0; fila < NumFilas; ++fila)
  for (col = 0; col < NumCol; ++col)
    Procesar elemento Matriz[fila][col];

El número de filas y de columnas se puede obtener con el atributo length. Con este atributo, la sintaxis para acceder a los elementos es:

<tipo> Matriz[][] ;

<especificación de filas y columnas con operador new>

for (fila = 0; fila < Matriz.length; ++fila)
  for (col = 0; col < Matriz[fila].length; ++col)
    Procesar elemento Matriz[fila][col];

(JAVA) Inicialización de arrays multidimensionales

La inicialización se hace encerrando entre llaves la lista de constantes, separadas por comas, que forma cada fila, como en los ejemplos siguientes:

.   int tabla1[ ][ ] = { {51, 52, 53},{54, 55, 56} };

     Define una matriz de 2 filas por 3 columnas cada una.

     O bien con este formato más amigable:

     int tabla1[ ][ ] = {  {51, 52, 53},
                                    {54, 55, 56} };
2.  int tabla2[ ][ ] = {
                                  {1, 2, 3, 4},
                                  {5, 6, 7, 8},
                                  {9, 10, 11, 12}
                                };

                                                                 Tablas de dos dimensiones

EJEMPLOS
Declaración y creación de arrays bidimensionales de distinto número de elementos por fila.

1.   double tb[ ][ ] = { {1.5, -2.5}, {5.0, -0.0, 1.5} };
     Se ha definido una matriz de 2 filas, la primera con dos columnas y la segunda con 3.

2.    int[ ] a = {1,3,5};
     int[ ] b = {2,4,6,8,10};
     int mtb[ ][ ] = {a, b};

     Se ha definido el array a de 3 elementos, el b de 4 elementos y la matriz mtb de 2 filas, la primera con 3 elementos o columnas y la segunda con 5.

Java permite crear matrices de distintas formas.


NOTA:

En  un  array  bidimensional  tabla,  al  ser  un  array  de  arrays,  el  atributo  length  de tabla contiene el número de filas. El atributo length de cada array fila contiene el número de columnas.

  float ventas[ ][ ] = {
                                      {0.,0.,0.},        // 3 elementos
                                      {1.0.,1.0},       // 2 elementos
                                      {-1.0}              // 1 elemento
                                 };

  System.out.print(ventas.length);         // escribe 3
  System.out.print(ventas[0].length);    // escribe 3
  System.out.print(ventas[1].length);    // escribe 2
  System.out.print(ventas[2].length);    // escribe 1

Precaución
En la definición de un array bidimensional no es posible omitir el número de filas. Así, la declaración: 

double vt[ ][ ] = new double[ ][4]; 

es errónea ya que no se ha especificado el número de filas, y el tamaño queda indeterminado.


(JAVA) Arrays Multimensionales-Sintaxis-Declaración

 Los arrays multidimensionales son aquellos que tienen más de una dimensión y, en consecuencia, más de un índice. Los más usuales son los de dos dimensiones, conocidos también por el nombre de tablas o matrices. Sin embargo, es posible crear arrays de tantas dimensiones como requieran sus aplicaciones, ya sean tres, cuatro o más.
Un array de dos dimensiones (m × n) equivale a una tabla con múltiples filas y múltiples
columnas (Figura 3.2).
 El sistema de localizar un elemento es por las coordenadas representadas por su número de fila y su
número de columna (a,b).

 La sintaxis para la declaración de un array de dos dimensiones es:
<tipo de datoElemento> <nombre array> [ ][ ];

o bien

<tipo de datoElemento> [ ][ ]<nombre array>;

Ejemplos de declaración de matrices :
char pantalla[ ][ ];
int puestos[ ][ ];
double [ ][ ]matriz;

Estas  declaraciones  no  reservan  memoria  para  los  elementos  de  la  matriz,  realmente  son
referencias. Para reservar memoria y especificar el número de filas y de columnas se utiliza el
operador new. Así, a partir de las declaraciones anteriores:

pantalla  = new char[80][24]; // matriz con 80 filas y 24 columnas
puestos = new int[10][5];       // matriz de 10 filas por 5 columnas
final int N = 4;
matriz = new double[N][N];   // matriz cuadrada de N*N elementos

El operador new se puede aplicar a la vez que se hace la declaración. La sintaxis para definir 
una matriz es: 

<tipo de datoElemento> <nombre array>[ ][ ]=
    new <tipo de datoElemento> [<NúmeroDeFilas<] [<NúmeroDeColumnas>];

Atención:
Java requiere que cada dimensión esté encerrada entre corchetes. La sentencia:
int equipos[ ][ ] = new int[4,5] no es válida.

martes, 13 de septiembre de 2016

(JAVA) Arreglos-Declarar, leer, concatenar e imprimir un Arreglo de números


Arreglos-Declarar, leer, concatenar e imprimir un Arreglo de números usando JOptionPane


package javaapplication2;

import javax.swing.JOptionPane;

public class JavaApplication2 {

    public static void main(String[] args) {
     
        int [] calif=new int[100]; //Declaración del arreglo de 100 elementos
        int n=0;                            //Numero de elementos a procesar
     
        //JOptionPane.showInputDialog---> Pide dato y Devuelve una cadena
        //Integer.parseInt(string)--->Convierte una cadena numero a entero
        n = Integer.parseInt(JOptionPane.showInputDialog("Cuantas calificaciones"));
     
        //Ciclo para leer calificaciones y almacenarlos en el arreglo calif
        //la primera posición del arreglo esta en la posición 0(cero)
        //Cuando en un ciclo se ejecuta una sola instrucción no es necesario usar { }
        for(int i=0;i<n;i++)
            calif[i] = Integer.parseInt(JOptionPane.showInputDialog("Calificación "+(i+1) ));
     
        String cad="Calificaciones:";  //Variable para concatenar los números del arreglo
                                                        //notar que empieza con la cadena Calificaciones
        for(int i=0;i<n;i++)
        {
            cad=cad + " "+calif[i]+",";  //Se concatena cada calificación a la cadena
        }
     
        //Imprime la cadena obtenida
        JOptionPane.showMessageDialog(null, cad);      
    }
}

Ejemplo de ejecución del programa