Seguir a Miguel Gomez Cuesta en Twitter Seguir a Miguel Gomez Cuesta en Linkedin Seguir a Miguel Gomez Cuesta en Google+ Contactar a Miguel Gomez Cuesta por Correo Electrónico

miércoles, 4 de mayo de 2016

Java - Certificación - Estructura de clases y tipos

Certificación Java


La siguiente colección de artículos tienen como objetivo formarte y prepararte para lograr la certificación Java OCA (Oracle Certified Associate Java) para la última versión disponible de JavaSE 8.

Las principales fuentes utilizadas para elaborar estos artículos son los libros de referencia para la preparación de la certificación:


Si todavía no conoces el lenguaje Java pero tienes algo de conocimiento de otros lenguajes de programación, esta es tu oportunidad de aprenderlo de una manera amena.

Si ya conoces el lenguaje Java, pero nunca te has atrevido a preparar la certificación porque nunca has tenido el tiempo suficiente para prepararlo, aquí te ayudaremos a reducir el tiempo y consultar todas tus dudas.

Si ya dominas el lenguaje Java pero frecuentemente olvidas algunas de las características del lenguaje o dudas a la hora de desarrollar un nuevo programa. Estos artículos te servirán como guía de referencia de las funcionalidades del lenguaje que necesitas recordar para trabajar a diario y ser más productivo.

domingo, 24 de abril de 2016

Java - Evolución - Pasado - Presente - Futuro

Pasado


En Diciembre de 1950 Patrick Naughton, ingeniero de Sun Microsystems, reclutó a varios colegas entre ellos JamesGosling y Mike Sheridan para trabajar sobre un nuevo proyecto conocido como "El proyecto verde".  El objetivo era desarrollar una nueva tecnología para programar la siguiente generación de dispositivos inteligentes bajo las siguientes premisas:

  • Debería usar el paradigma de la programación orientada a objetos.
  • Debería permitir la ejecución de un mismo programa en múltiples sistemas operativos.
  • Debería incluir por defecto soporte para trabajo en red.
  • Debería diseñarse para ejecutar código en sistemas remotos de forma segura.
  • Debería ser fácil de usar y tomar lo mejor de otros lenguajes orientados a objetos, como C++.


El resultado fue el lenguaje Java, actualmente elegido por 9 millones de desarrolladores y implantado en 7.000 millones de dispositivos.

miércoles, 6 de abril de 2016

Patrones de diseño - Agrupación GoF - Gang of Four

 Antes de nada te pedimos que participes en la encuesta "Patrones de diseño de software"

Gang of Four


En 1994 los ahora conocidos como la banda de los cuatro (GoF) se unieron para publicar el libro "Design Patterns: Elements of Reusable Object Oriented Software", en él describen soluciones simples y elegantes a problemas específicos del diseño orientado a objetos. Fue escrito por Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides

Gang of Four


Erich Gamma lideró el desarrollo de la plataforma Eclipse y fue creador junto a Kent Beck del framework de pruebas JUnit. Erich tiene un doctorado en Ciencias de la Computación de la Universidad de Zurich. Actualmente se encuentra trabajando para Microsoft en el equipo de Visual Studio.

Richard Helm fue consultor de tecnología en DMR. Allí aplicó de forma activa los patrones de diseño orientados a sistemas comerciales. Anteriormente trabajaba en el departamento de Tecnología de IBM. Tiene numerosas publicaciones internacionales y escribe regularmente en el Diario del Dr. Dobb. Además fue miembro del comité de OOPSLA (conferencia sobre programación orientada a objetos). Richard tiene un  doctorado en Ciencias de la Computación de la Universidad de Melbourne. Actualmente se encuentra trabajando de nuevo en IBM.

Ralph Johnson ha estudiado la programación orientada a objetos y la forma en que ha evolucionado durante los últimos 10 años. Ha estado involucrado en el desarrollo de un sistema operativo orientado a objetos  y un compilador de tipo Smalltalk. Ralph tiene un doctorado por la Universidad de Cornell. Ha participado como presidente de varias ediciones de la conferencia de OOPSLA. Actualmente está trabajando en el Departamento de Ciencias de la Computación de la Universidad de Illinois desarrollando un framework para contabilidad.

John Vlissides falleció 24 de noviembre de 2005. Fue investigador en el IBM T. J. Centro de Investigación Watson. Sus investigaciones incluyen framework, herramientas y técnicas de diseño orientado a objetos. Anteriormente John estuvo en el Departamento de Sistemas de Computación de la Universidad de Stanford. John tiene un doctorado en ingeniería eléctrica de la Universidad de Stanford.

Referencias

Los patrones aquí expuestos se basan en el libro “Patronesde Diseño” que escribieron GoF y que todavía hoy en día sigue siendo una de las principales referencias sobre el desarrollo de software y los patrones de diseño.


viernes, 18 de marzo de 2016

Patrones de Diseño - Introducción

 Antes de nada te pedimos que participes en la encuesta "Patrones de diseño de software"


Introducción


Los patrones de diseño son una pieza fundamental en el desarrollo del software. Un patrón de diseño en software es un problema que ocurre una y otra vez en nuestro entorno y que puede resolverse repetidamente del mismo modo sin necesidad de implementar una solución diferente cada vez. Es decir, los patrones de diseño son soluciones exitosas y contrastadas a problemas comunes.


Un patrón de diseño tiene 4 elementos esenciales:

Elementos que forman un patrón de diseño


Nombre del patrón: Permite describir en pocas palabras un problema de diseño junto con sus soluciones y consecuencias. Tener un vocabulario de patrones nos permite diseñar con mayor abstracción y tener un lenguaje común para compartir, transmitir y documentar a otros compañeros de profesión. A su vez se pueden identificar fácilmente sus puntos fuertes y sus inconvenientes para decidir cuál es la mejor elección en cada caso.

Problema: Describe cuando se debe aplicar el patrón, explicando el problema y el contexto. En ocasiones el problema incluye una serie de requisitos que deben producirse para que tenga sentido aplicar el patrón.

Solución: Describe los elementos que constituyen, las relaciones, responsabilidades y colaboraciones entre ellos. El patrón proporciona una descripción abstracta de un problema de diseño y como se resuelve a través de una serie de elementos. En el caso de Java y los lenguajes de programación orientados a objetos, estos elementos serán los interfaces, clases y objetos.

Consecuencias: Son las ventajas e inconvenientes de aplicar el patrón. Son fundamentales para evaluar las alternativas de diseño y comprender los costes y beneficios de aplicar cada patrón. Incluyen entre otras el impacto sobre la flexibilidad, extensibilidad y potabilidad de un sistema.

martes, 16 de febrero de 2016

Web Semántica - Lenguaje SPARQL

Datos enlazados (Linked Open Data)


Para el W3C, el concepto Linked Open Data (Datos enlazados) es la forma que tiene la Web Semántica de vincular los datos que están distribuidos por toda la Web.

En el siguiente enlace podemos ver un diagrama con las bases de datos públicas y la representación de las relaciones entre ellas. Es decir, podemos ver la manera en que las bases de datos se apoyan en otras bases de datos enlazado la información de ambas para aprovecharse de la reutilización de información común.

lunes, 8 de febrero de 2016

Web Semantica - Modelo de Datos

Modelo de Datos

Es el Lenguaje que nos permite describir la estructura de los datos y las restricciones que estos deben cumplir
Una primera propuesta para cumplir estos requisitos es el Vocabulario RDF Schema

RDF Schema

Es un vocabulario RDF donde cada palabra tiene un significado bien definido y estandarizado. Su función es proveer de los elementos básicos comunes para la descripción de diferentes dominios.

Los elementos básicos de RDFS son las clases, los tipos o instancias y las propiedades.

Clase: Conjunto de recursos que tienen características comunes y una representación en el mundo real. Ejemplo: Clase Persona, Clase Libro

Tipo o instancia: Un elemento de la clase es identificado como una instancia de la clase. 

Propiedad: Puede utilizarse de dos maneras.
    • Puede indicar el valor de un atributo para un recurso.
    • Puede indicar la relación entre dos recursos.

@prefix rdf: https://www.w3.org/1999/02/22-rdf-syntax-ns#
@prefix : http://www.ejemplo.org 

:Libro rdf:type rdfs:Class . 
:Fecha_Publicacion rdf:type rdf:Property .
:Escrito_Por rdf:type rdf:Property .
:La_Biblia rdf:type :Libro .
:Don_Quijote rdf:type :Libro .


lunes, 1 de febrero de 2016

Web Semantica - Conceptos y Vocabularios RDF

Conceptos fundamentales:


A continuación vamos a presentar los conceptos fundamentales para entender la web semántica.

RDF: 

Es el lenguaje propuesto por el W3C para representar información sobre recursos en la web, entre sus principales características están:
  • Está basado en el uso de grafo dirigidos y etiquetados.
  • Puede ser procesado por un computador.
  • Los elementos principales para construir un grafo RDF son las URI y los literales

URI

Uniform Resource Identifier es un identificador de un recurso en la web. Un recurso puede ser una página web, una persona, un libro, una ciudad, una película, …

Nota: URL (Uniform Resource Locator) es un tipo de identificador más específico de URI. URL es un identificador de una página web, es decir, es un tipo de URI más concreto.

La Estructura general de un URI es protocolo://autoridad/camino
Ej: http://dbpedia.org/resource/Lionel_Messi


lunes, 25 de enero de 2016

Web Semántica - Introducción

La Web actual está formada por un conjunto de documentos enorme, en su mayoría páginas web escritas en lenguaje HTML. Cabe destacar que la utilización de este lenguaje trae como desventaja
una mala representación semántica de los datos


La Web actual es, un extraordinario medio para el acceso al conocimiento explícito, servicios, entretenimiento, comercio y negocios electrónicos, entre otros. 

Por este motivo las tecnologías que la hacen posible la web actual han tenido una gran evolución para garantizar la facilidad de su uso. Sin embargo, la cantidad de información que se pueda encontrar en Internet se ha convertido en algo incalculable, por lo cual los motores de búsquedas se han visto obligados a cambiar la forma en la que se recupera dicha información.


Big Data


Características de la Web Actual:

Heterogénea: Existen múltiples organizaciones que generan datos de forma independiente y por tanto con formatos y estructura diferente

Masiva: La cantidad de información existente es enorme y sigue creciendo

Voluble: Cada día es publicada y borrada una cantidad enorme de información. Esta información cambia muy rápido y cada vez más gracias a las redes sociales

Humana: En general, la información esta estructurada para personas y solo puede ser interpretada y comprendida correctamente por una persona .

martes, 5 de enero de 2016

JPA - API Criteria

Introducción:

Antes de que los lenguajes como JPQL llegarán a estandarizarse, el método más común para la construcción de consultas era a través de un API de programación.

Con la llegada de JPQL los API de construcción de consultas se siguen manteniendo debido a que dan acceso a unos características adicionales que no proporciona todavía JPQL

Criteria nos permite construir consultas que estandarizan muchos de las características que existen en aplicaciones con persistencia de datos.

Criteria no es simplemente una traducción de JPQL al lenguaje de programación Java

Criteria adopta las mejores prácticas como por ejemplo encadenamiento de métodos y hace un uso completo de las características del lenguaje de programación Java


Entradas populares