viernes, 18 de mayo de 2012

/Programación - JavaFX 2.0 parte 1/


En este tutorial voy a comentarles sobre JavaFX 2.0 y haremos una aplicación un reproductor de audio simple. 


Prácticamente es una nueva librería que se agregó a java a finales del 2011 su ejecución es del lado del cliente, es una plataforma que nos sirve para crear RIAs (Rich Internet Applications) o Aplicaciones para internet enriquecidas; podemos afirmar que JavaFX nos proporcionara un conjunto muy completo de gráficos, multimedia y medios de comunicación. Podría decirse, como comparación, que es la evolución de SWING y AWT y pudiendo ser la competencia de Flash de Adobe.
Su antecesor JavaFX 1.X era considerado un Script y por lo tanto no se podía relacionar mucho con java y aparte se tenia que aprender su sintaxis desde 0.

En la Conferencia JavaOne del 2010 se hizo demostración de lo que podía hacer JavaFX 2.0, desde gráficos 2D, 3D, Audio y Video y todo lo podemos obtener y manipular de una manera mas accesible de lo que era con SWING y AWT. A continuación el video de JavaOne 2010




Más ejemplos de JavaFX 2.0 en JavaOne 2011




Por lo visto anteriormente JavaFX 2.0 es sorprendente, pero que nos ofrece:

  • API de Java para JavaFX que proporcionan todas las características del lenguaje familiares (como los medicamentos genéricos, anotaciones y multithreading) que los desarrolladores de Java están acostumbrados a usar. Las API están diseñadas para ser amigable con otras lenguas de JVM, como JRuby y Scala. Debido a que las capacidades JavaFX están disponibles a través de las API de Java, se puede seguir utilizando sus herramientas favoritas para desarrolladores de Java (por ejemplo, entornos de desarrollo, la refactorización de código, depuradores, perfiladores y) para desarrollar aplicaciones JavaFX.
  • Un nuevo motor de gráficos para manejar las modernas unidades de procesamiento gráfico (GPU). La base de este nuevo motor es un hardware de aceleración pipeline de gráficos, llamado Prism, que se combina con un conjunto de herramientas de ventanas, llamado cristal. Este motor gráfico proporciona la base para los avances actuales y futuros para hacer una atractiva presentación gráfica sencilla, suave y rápida.
  • FXML, un nuevo lenguaje de marcado declarativo que está basado en XML y se utiliza para definir la interfaz de usuario en una aplicación de JavaFX. No es un lenguaje compilado y, por tanto, no requiere volver a compilar el código cada vez que haga algún cambio en el diseño.
  • Un nuevo motor de los medios de comunicación que soporta la reproducción del contenido multimedia en la Web. Proporciona una estable, de baja latencia marco de los medios de comunicación que se basa en el marco de GStreamer multimedia.
  • Un componente de la banda que le da la capacidad de incorporación de las páginas web en una aplicación JavaFX utilizando la tecnología de renderizado WebKit HTML.Renderizado acelerado por hardware está disponible usando Prism.
  • Un navegador renovado plug-in para JavaFX 2 que permite la carga de los applets JavaFX basadas en Prism.
  • Una amplia variedad de controles integrados de interfaz de usuario , que incluyen gráficos, tablas, menús y paneles. Además, una API se proporciona para permitir a terceros para contribuir controles de interfaz de usuario que la comunidad de usuarios puede utilizar.
  • Las aplicaciones de ejemplo que muestran las diferentes características de la tecnología JavaFX 2, junto con un gran número de ejemplos de código y los fragmentos.
  • Un doclet actualizada utiliza con la herramienta Javadoc para generar documentación de la API de JavaFX en formato HTML.

Ventajas


  • Si sabes Java, no será complicado programar JavaFX porque esta escrito en Java.
  • La comunidad Java es enorme por lo cual encontrar material para aprender JavaFX será fácil.
  • Java se puede relacionar con total normalidad con JavaFX.
  • Todo lo anterior hace que desarrollar aplicaciones JavaFX sea fácil y rápido, reduciendo costos.
  • Es multiplataforma


¿Cuáles son los planes a futuro de JavaFX? 
Bueno Oracle y el Equipo de JavaFX nos muestran la siguiente línea de tiempo:

roadmap diagram

Actualmente, JavaFX esta limitado su uso solo a Windows y a Mac OS X, pero antes del 2014 será multiplataforma como Java.



¿Cómo lo puedo conseguir? 
Esta incluido en el JDK de java

http://www.oracle.com/technetwork/java/javase/overview/index.html
En la sección de Downloads se encuentra la descarga del JDK




¿Cómo puedo empezar a programar?
NetBeans en su versión 7.1 en delante soporta JavaFX

Solo tienes que descargarlo de su página oficial, nos ofrece la posibilidad de programar en diferentes sistemas operativos, aunque pues como se menciono anteriormente solo en Windows y Mac OSX podemos programar JavaFX.

NetBeans además de poder programar en Java, nos ofrece otros lenguajes como C++ y PHP, aquí la elección es libre dependiendo de nuestras necesidades, para este tutorial nos sirve la versión JavaSE y JavaEE
Nota: Antes de Instalar NetBeans es muy importante tener instalado el JDK de Java

Al abrir NetBeans lo primero que haremos será crear un nuevo proyecto (paso 1 en la imagen), seleccionar JavaFX (paso 2 de la imagen), y seleccionar JavaFX Application (paso 3 de la imagen) y damos siguiente.

Le damos un nombre a nuestra aplicación y damos Terminar

A continuación  podemos observar en la barra lateral izquierda se nos muestra nuestro proyecto y de lado derecho nuestro código. Por default se nos genera el código de toda primer aplicación el “Hello World” o “Hola Mundo”.

Ejecutamos el programa con la tecla F6


Nos Mostrara un ventana como esta con un botón que dice “Say “Hello World””, felicidades ya diste el primer paso a JavaFX 2.0, en la parte 2 del tutorial analizaremos el código y haremos algunas modificaciones.

Para más información acerca de JavaFX 2.0

jueves, 17 de mayo de 2012

/Computación - Servidor FTP Básico Windows/


Hola que tal

En este tutorial vamos a crear un servidor ftp básico en windows, nos servirá para compartir archivos o para recibir archivos de nuestras redes locales o internet, etc. Es muy práctico ya que por aquí puedes intercambiar archivos muy grandes.

Muy bien entonces

Vamos a definir FTP:

FTP (File Transfer Protocol, 'Protocolo de Transferencia de Archivos') en informática, es un protocolo de red para la transferencia de archivos entre sistemas conectados a una red TCP (Transmission Control Protocol), basado en la arquitectura cliente-servidor. Desde un equipo cliente se puede conectar a un servidor para descargar archivos desde él o para enviarle archivos, independientemente del sistema operativo utilizado en cada equipo.
El servicio FTP es ofrecido por la capa de aplicación del modelo de capas de red TCP/IP al usuario, utilizando normalmente el puerto de red 20 y el 21. 
Modelo FTP:

Un problema básico de FTP es que está pensado para ofrecer la máxima velocidad en la conexión, pero no la máxima seguridad, ya que todo el intercambio de información, desde el login y password del usuario en el servidor hasta la transferencia de cualquier archivo, se realiza en texto plano sin ningún tipo de cifrado, con lo que un posible atacante puede capturar este tráfico, acceder al servidor y/o apropiarse de los archivos transferidos.
Para solucionar este problema son de gran utilidad aplicaciones como scp y sftp, incluidas en el paquete SSH, que permiten transferir archivos pero cifrando todo el tráfico. Este problema lo resolveremos en la parte 2 del tutorial.

Las Herramientas que necesitaremos serán las siguientes

No-Ip

Vitalwerks LLC es la compañía matriz de No-IP, que es un DNS dinámico proveedor de servicios de pago y gratuitos. No-IP ofrece servicios de DNS, correo electrónico, monitorización de red y certificados SSL. Servicios de correo electrónico incluyen POP3 de correo electrónico, de salida SMTP de correo electrónico, servicios de copia de seguridad de correo electrónico y la reflexión y el filtrado.
Utilizaremos No-Ip Free

El servicio que utilizaremos será el Dynamic DNS Updating  para asociar un dominio o subdominio a la IP de nuestro servidor FTP y que se puede acceder a el desde otra red que no sea LAN.
Aquí realizaremos varios pasos

Darnos de alta como usuarios, como comente anteriormente utilizaremos No-Ip Free.

Seleccionaremos el recuadro encerrado en rojo

Aquí oprimiremos la opción de “Sing Up Now!”, para mas información la página nos muestra brevemente todo lo que nos ofrece la versión gratuita por ejemplo acceso remoto a nuestra pc, re direccionamiento al puerto 80 y subdominios gratuitos.

Tenemos que rellenar un simple formulario, y posteriormente No-Ip nos mandara un enlace a nuestro correo para activar la cuenta.

Descargaremos el Cliente de Actualización Dinámica DNS, el cual es el encargado de asociar nuestra IP, ya sea dinámica o estática, al subdominio o a los subdominios, que registremos.


Iremos a la pestaña “Host/Redirects” y en la opción “Download Client”, después nos pedirá el tipo de sistema operativo, escogeremos Windows ya que nuestro servidor FTP  será Windows.

Una vez descargado e instalado procederemos a crear un subdominio, No-Ip te deja solamente crear 3 host por cuenta y se pueden asociar a la misma IP o a diferentes IP esto lo configuramos con el Cliente DNS, volviendo a la imagen anterior, seleccionamos la opción “Add Host”
Para este ejemplo solo necesitamos, los siguientes campos:

  • Hostname – Le damos un nombre a nuestro subdominio y seleccionamos un dominio que nos proporciona No-Ip,
Por ejemplo de acuerdo a lo que llene, el hostname de mi servidor FTP es vcoregames.myftp.org
  • Host Type – Seleccionaremos DNS Host(A), el cual nos asocia la dirección IP de nuestro servidor a nuestro host.
Los Tipos son los siguientes:
DNS Host (A): Esta es la opción más común. Se asigna el nombre de host a una dirección IP.
DNS Host (Round Robin): Esta vinculación asigna el nombre de host a IPs múltiples. Sólo se utiliza para el balanceo de carga basado en DNS (no es común).
DNS Alias (CNAME): Este asigna el nombre de un host a otro host. Es útil para señalar muchas máquinas al mismo lugar y actualizarlas fácilmente.
Port 80 Redirect: El re direccionamiento del puerto 80  se utiliza para moverse por los ISPs que bloquean el puerto 80 de entrada. Al utilizar el presente y tener en funcionamiento el servidor web nos ayuda a que los usuarios pueden acceder al sitio web sin tener que introducir el número de puerto en la URL.
Web Redirect: Esta vinculación asigna el nombre de host a una dirección URL. Sólo funcionan para HTTP y no se puede utilizar para acceder remotamente a su ordenador.
El uso de cada uno depende de la aplicación.
  • IP Address – Aquí en automático ponen tu IP actual, si llegara a cambiar el cliente DNS se encarga de actualizar esta información.
Con esto es suficiente, seleccionamos “Create Host” y listo.

Ahora vamos con el cliente DNS su interface es la siguiente:

Configuración
  • Edit – Pondremos nuestro correo con el que nos registramos y la contraseña
  • Select Hosts – Aparecerán los hosts que hayamos creado en los pasos anteriores. En mi caso solo aparece lo siguiente:

  
  • Refresh Now – Actualiza el registro que tiene de la anterior IP con la IP actual.
En el menú File -> Preferences

Podemos configurar el cliente para que se ejecute como un servicio de Windows o como un programa de inicio, entre otras cosas, ideal en el caso de que queramos tener activada esta aplicación todo el tiempo.

FileZilla FTP - Client y Server

FileZilla es libre, de código abierto, multiplataforma FTP software, que consiste en FileZilla Cliente y FileZilla Server. Los binarios están disponibles para los de Windows, Linux y Mac OS X. Soporta FTP, SFTP y FTPS (FTP sobre SSL / TLS).
FileZilla Client tiene soporte para SFTP (SSH File Transfer Protocol) no está implementado en el servidor Filezilla.
FileZilla Server es un producto de la hermana del FileZilla client. Se trata de un servidor FTP con el apoyo del mismo proyecto. Soporta FTP y FTPS (FTP sobre SSL / TLS).

Descargaremos las 2 versiones Client y Server
Nota: FileZilla Server solo funciona en Windows

Este programa nos servirá para administrar de manera grafica nuestro servidor, como los usuarios y contraseñas, carpetas que se puedan acceder vía FTP, seguridad, control en las velocidades de transferencia, ofrece monitoreo en tiempo real sobre las transferencias realizadas.

En la instalación te pregunta sobre como el servidor debe de iniciar

Aquí dependerá de lo que se requiera, si la finalidad de la maquina es que funcione como servidor de tiempo completo, la primer opción es la adecuada, si no es así la ultima opción sirve ya que controlas cuando iniciar el servicio.


De igual manera podemos encender o para el servicio en el administrador de servicios de Windows.
Después de su instalación al correr por primera vez el programa, nos aparecerá lo siguiente:

(A)
Damos Ok


Bien nuestro servidor funciona, ahora solo queda, dar una contraseña al administrador, crear un usuario y crear la carpeta a la cual accederá mediante FTP.
  • La Contraseña del Administrador – En edit->Settings

Nos vamos a la opción de “Admin Interface settings” y le asignamos una nueva contraseña. Damos Ok y cerramos la aplicación para verificar que funciona al iniciar el programa no llenamos el campo de “Administration password”, al igual que la imagen (A), nos debe de aparecer lo siguiente:

 Bien volvemos a iniciar el programa pero ahora con la contraseña.
  • Usuario – En edit->users, agregamos un usuario y le asignamos una contraseña.

Aquí también podemos editar el límite de conexiones que puede tener un usuario y también forzarlo a utilizar SSL. Es recomendable utilizar contraseñas fuertes.
  • Carpeta FTP – Después en “Shared Folders”

Agregamos la ruta de la carpeta que queremos utilizar para el FTP, de preferencia una que no contenga nada importante (Archivos de Programa, Mis Documentos, etc). Después asignamos los privilegios que el usuario seleccionado puede realizar, como leer (acceder) archivos, modificar archivos, borrar archivos, agregar archivos (opción write debe estar activada), crear directorios, borrar directorios. El usuario no puede salir de la carpeta que asignamos. Por ejemplo si asigno la carpeta FTP “C:/Otro/FTP”, el usuario no puede acceder a la carpeta Otro o a al disco duro C, solo puede navegar en la carpeta FTP y sus internas.

Para verificar que funciona en nuestro navegador pondremos ftp://localhost/, nos pediría usuario y contraseña y veremos lo que tiene dentro la carpeta que asignamos.


Bien nuestro servidor funciona. Si quisiéramos acceder a el desde otra pc, por ejemplo en el navegador pondríamos (en mi caso)
Si fuera el acceso mediante la consola de comandos seria
>ftp vcoregames.myftp.org

Filezilla Client
Este programa nos sirve para acceder a nuestro servidor ftp de manera gráfica


Aquí los campos que nos interesan son:
  • Servidor – localhost o el registrado en No-Ip
  • Usuario
  • Contraseña
  • Puerto – Por default es el 21
Como podemos ver el programa se divide en dos, el sitio local (nuestra maquina) y el sitio remoto (el servidor).
Aquí las cosas son sencillas de manejar, ya que puedes hacer lo mismo que en Windows al manipular tus archivos (arrastrar y soltar, copiar, pegar, editar, etc) de un lado como en el otro, pero en el sitio remoto dependerá de los permisos del usuario FTP.

Eso es todo en el siguiente post aprenderemos a implementar una conexión segura mediante SSH, ya que de la forma actual nuestros datos están expuestos en la red.