Sep 11 2012

Java Eco Web Service en 2 minutos

Category: 21 Redes,Java,ProgramaciónHelder De Oliveira @ 4:48 pm

Siempre viene bien tener a mano una guía super-rápida para construir un web service, aquí va una entre tantas y sin usar servidores web sofisticados:

Servicio

1. Creamos el servicio: fichero Eco.java

package eco;
import javax.jws.WebService;
import javax.jws.WebMethod;
@WebService
public class Eco{
    @WebMethod
    public String hacerEco(String nombre){
        return "ecooooo-o-o! " + nombre;
    }
}

2. Creamos un agente publicador del servicio: fichero PublicadorDeEco.java

package eco;
import javax.xml.ws.Endpoint;
public class PublicadorDeEco {
    public static void main(String[] args) {
        Endpoint.publish("http://localhost:8765/WS/Eco",new Eco());
    }
}

3. Compilamos ambas clases y ejecutamos el publicador. Una vez ejecutado el publicador podemos acceder desde un navegador al WSDL en la dirección http://localhost:8765/WS/Eco?wsdl

Continue reading “Java Eco Web Service en 2 minutos”

Share


Sep 07 2012

Java para curiosos. Parte 1 – Historia, bases y sintaxis

Category: 21 Redes,JavaHelder De Oliveira @ 3:41 pm

Intro

Mucho hemos dicho sobre Java y tecnologías que viven a su alrededor, pero ¿qué es Java?

Java es más que un lenguaje de programación, es una tecnología completa desarrollada originalmente en los laboratorios de Sun Microsystems por un equipo de expertos de alto calibre, entre los cuales se encuentra James Gosling  como el histórico “padre de Java“, aunque el mérito es como ya hemos dicho de un grupo más amplio de expertos. En caso de necesitar una fecha de partida, el 23 de mayo de 1995 es considerado el día del nacimiento de Java. Ese día John Gage, director del Departamento de Ciencia de Sun Microsystems, y Marc Andreessen, cofundador de Netscape, anunciaron en el evento SunWorld la salida oficial de Java y su incorporación al navegador Netscape Navigator.

 

James Gosling Java está compuesto por un grupo amplio de herramientas de desarrollo y ejecución de las cuales iremos conversando en su momento, y por un lenguaje de programación orientado a objetos que heredó muchas características de Smalltalk, C y C++. La necesidad de un nuevo lenguaje radicaba en ofrecer la posibilidad de escribir el código una sola vez y ejecutarlo en múltiples entornos. Esto debido a que originalmente el equipo de desarrollo de Java se encontraba buscando una solución ante desarrollos para dispositivos multimedia y televisión, todos muy distintos unos de otros en cuanto a hardware y especificaciones, lo que para la época implicaba la compilación y recompilación del mismo código en cada nuevo dispositivo.

 

Es así como las aplicaciones Java acaban por ser compiladas en lo que se conoce como bytecode, que no es más que código interpretado por una Máquina Virtual de Java o JVM específica para cada entorno. Este bytecode solo debe ser generado una vez, y puede ser interpretado por todas las JVM homologadas.

17 años después de su salida oficial, Java cuenta con unos 8 a 10 millones de desarrolladores distribuidos en sus distintas áreas de acción y un incontable conjunto de usuarios finales dado que las máquinas virtuales homologadas se encuentran en móviles, TV, navegadores, PC, servidores, domótica, etc.

Continue reading “Java para curiosos. Parte 1 – Historia, bases y sintaxis”

Share


Jul 23 2012

Aplicaciones web con Node.js (#1)

Category: 21 Redes,Javascript,Node.js,Programacióncamposer @ 2:58 am

Node.js me tiene impresionado. Es realmente poderoso el enfoque de la plataforma, todo lo que se puede y podría lograr con ella.

Creo que herramientas como esta, simples y poderosas, terminarán por desplazar muchas vacas sagradas, o al menos quitarán cuotas importantes de mercado. He estado investigando quiénes están detrás de la plataforma, o al menos utilizándola, y resulta increíble la cantidad de empresas importantes, entre ellas Yahoo! y Linkedin.

Claro, y es que no hace falta darle demasiadas vueltas a la plataforma para darse cuenta de lo poderoso que puede resultar algo que interpreta el lenguaje de programación más ejecutado (cuentan todos los navegadores del mundo!) y levanta servidores http o tcp con tal facileza.

En lo que vi la plataforma pensé en una sóla cosa: computación distribuida. Pequeños servidores instanciándose en computadores bajo demanda, sin mayores complicaciones, ofreciendo servicios REST y a la vez aplicaciones web que los consumen, bien programados, sin perder de vista buenas prácticas y patrones, bases de datos replicadas, ¿NoSQL?, etc, etc…

A raíz de todas estas ideas y reflexiones, decidí comenzar un proyecto que espero sirva de guía a programadores que se hagan las mismas preguntas que yo. Si bien la plataforma es brutal y tiene un gran presente y futuro, veo que quedan muchas cosas abiertas.

En mi espacio de github conseguirán el proyecto. Aquí el enlace directo. Si alguno se entusiasma y quiere echarle un ojo al proyecto, le recomiendo leer la wiki que iré actualizando. Espero ir haciendo entradas en el blog en español, pero por razones de difusión mantendré el proyecto en inglés.

El proyecto aborda conceptos típicos en aplicaciones de medio tamaño, como: i18n, MVC, DAO, SOA, REST, testing (xUnit style) y documentation (Javadoc style).

Share

Tags: , ,


Jul 05 2012

Tips para mejorar el desempeño de tus sentencias en Oracle. (Parte 3)

Category: 21 Redes,BBDDLuz Ramón @ 7:00 am

Hola!

Continuando esta serie de Posts sobre el desempeño de sentencias en Oracle, veremos algunos Tips adicionales que nunca están de más conocer.

Fases de la ejecución de una consulta en Oracle:

Intentaré hacer un resumen del proceso:

1) Parse: En esta primera fase de “Parse” o “Análisis” Oracle verifica la sintaxis y la semántica de la consulta además de los privilegios, es decir, verifica si hemos escrito bien la consulta y si los objetos son accesibles y existen. Luego de ello empieza un proceso bastante interesante. Oracle verifica si ha habido un “Análisis” anterior de esta consulta. En este punto se manejan dos términos “Análisis Suave” (Soft Parsing) y “Análisis Duro” (Hard Parsing). El primero se refiere a cuando Oracle encuentra una versión anterior del Análisis y el segundo término se refiere a que no la ha encontrado y la debe construir. En esta fase se construye el plan de ejecución de la consulta.
Continue reading “Tips para mejorar el desempeño de tus sentencias en Oracle. (Parte 3)”

Share

Tags: , , , ,


Jun 26 2012

Definición de “listo” (definition of done ó DoD)

Category: MetodologíaHelder De Oliveira @ 9:50 am
La definición de “listo” (definition of done o DoD) es una simple lista de actividades que añaden valor verificable al producto (escribir código, comentar, pruebas unitarias, pruebas de integración, diseño, etc.).

El enfocarse en acciones que agregan valor le permite al equipo mantener el foco en lo que debe ser completado y eliminar las actividades sin sentido que solo complican el desarrollo de software.

La definición de “listo” es el principal mecanismo de reportes del equipo en su sentido más simple, permitiendo a cada miembro del equipo conocer el estado de las tareas del backlog: listas o no. 

Continue reading “Definición de “listo” (definition of done ó DoD)”

Share

Tags: , , , , ,


Jun 22 2012

Definición de “preparado” (definition of ready)

Category: MetodologíaHelder De Oliveira @ 9:47 am

En el mundo ágil existen dos conceptos fundamentales: definición de preparado (ready) y definición de listo (done). Nos concentraremos en el primero y dedicaremos un espacio aparte para el segundo.

La definición de preparado es el conjunto de acuerdos que permiten a cualquier persona involucrada en el proyecto conocer cuando una tarea o historia de usuario se encuentra lista para comenzar a ejecutarse o desarrollarse.

El ciclo de vida típico de una historia de usuario es el siguiente: Continue reading “Definición de “preparado” (definition of ready)”

Share

Tags: , , , , , , ,


Jun 18 2012

Horticultura en Bytes: Sembrando el Compromiso y Cosechando Productividad

Category: Metodologíaomrojasm @ 6:29 am

Greetings Programs!!!!

La pregunta de siempre al final de todo ciclo de desarrollo es como la de la canción del Mamut es:  ”¿Y qué pasó?”

Tenemos todos los jugueticos:

  • El Backlog ponderadito despues de una buena partida de Póker (Tenemos claras las tareas que van dentro de nuestra iteración)
  • El Sistema de (¿Des?) Control de Versiones.
  • Mr Jenkins y su integración continua.
  • Gestor de tareas y bugs, burndown chart, y todo lo que nos ayude a seguir el progreso del desarrollo.

¿Garantía de éxito? ¿Garantía de calidad? Seguro que sí, ¿Cierto? Continue reading “Horticultura en Bytes: Sembrando el Compromiso y Cosechando Productividad”

Share

Tags: , ,


Jun 13 2012

El discurso del ascensor (elevator pitch)

Category: MetodologíaHelder De Oliveira @ 9:55 am

El discurso del ascensor (elevator pitch), también conocido como conversación del ascensor, proviene del concepto norteamericano de resumir en la forma más rápida y simple posible una idea y su valor.

El concepto nace con la finalidad de dar nombre a aquel discurso necesario para explicar en aproximadamente lo que tarda un viaje en ascensor todo lo importante sobre un negocio, empresa o proyecto a quienes interesa que estén al tanto del tema, inversionistas, empresarios, accionistas, clientes, etc.

¿Cómo hacer un discurso de ascensor? Continue reading “El discurso del ascensor (elevator pitch)”

Share

Tags: , , ,


Jun 07 2012

Un equipo en melé

Category: MetodologíaHelder De Oliveira @ 10:25 am

Los equipos en Scrum (también conocidos como Scrum Team) no incurren en roles tradicionales asociados a la ingeniería de software, en lo que a esta se refiere, ni a ninguna otra clasificación tradicional de roles.

Es muy raro ver a un ingeniero de pruebas, un diseñador, un analista funcional o un arquitecto de sistemas en un equipo Scrum de verdad. Cada miembro del equipo trabaja en conjunto para alcanzar las metas trazadas en el sprint, desarrollando un alto grado de empatía, camaradería y sentido de pertenencia en un equipo multidisciplinar. Con multidisciplinar no se refiere del todo a que cada miembro del equipo  realiza todas las labores dentro de este, sino que el equipo cuenta con la capacidad de llevar a cabo múltiples disciplinas. Unos equipos optan por designar siertas actividades a quien más experiencia tenga en ellas, otros optan por la equidad de tareas y responsabilidades. Continue reading “Un equipo en melé”

Share

Tags: , , , ,


Jun 05 2012

Burndown chart: quemando tareas

Category: MetodologíaHelder De Oliveira @ 10:32 am

Un “Burndown Chart” es una representación gráfica del trabajo a realizar en el tiempo.

Las actividades que restan por hacer (Sprint Backlog) se encuentran en el eje vertical y el tiempo en el eje horizontal. A medida que el tiempo transcurre se irán percibiendo los cambios en el trabajo por completar. Es muy útil para predecir la fecha de culminación de un Sprint al culminar todas las labores, aunque al igual que su padre, el cuadro de mando integral (Balanced Scorecard), es ideal para visualizar y medir desviaciones en el alcance de objetivos.

Lo ideal es que permita visualizar: Continue reading “Burndown chart: quemando tareas”

Share

Tags: , , , ,


Next Page »