Etiqueta: programacion

web.xml ignorando WebServlet

Un truco relámpago en el caso de que os encontréis con problemas al desplegar Servlets a una aplicación con ficheros web.xml que utilizan versiones que no deben. Si al utilizar la anotación WebServlet el servidor de aplicaciones os responde con que no conoce el recurso solicitado seguramente es porque esteis usando una versión del motor de despliegue de aplicaciones que no se lleve bien con la anotación. Para solucionarlo solo tenéis que ver la etiqueta web-app de vuestro web.xml. Si véis en la especificación una versión inferior a la 3.0 ahí tenéis vuestro problema. Esto puede ocasionar también otra serie de problemas. Aquí tenéis un web-app usando una declaración para el motor de despliegue 3.0, que directamente ignora el web.xml. <web-app version=”3.0″ xmlns=”http://java.sun.com/xml/ns/javaee” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=”http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd”>

Publicado en howtos Etiquetado con: , ,

Catalina_base y catalina_home en Apache Tomcat

Hoy me despisté un poco porque instalé el paquete de Netbeans J2EE que ya incluye ya un servidor GlassFish y Apache Tomcat. Estuve un rato trasteando con la configuración de Tomcat y me enfadé un poco porque ningún cambio parecía tener efecto; entonces es cuando me di cuenta de que netbeans por defecto establece la variable de entorno catalina_base a un valor distinto de catalina_home. Tras ver el problema me costó muy poco toparme con esto que explica de que va esa variable llamada catalina_base. Si estáis muy perdidos en toda esta jerga, voy a empezar desde el principio. Catalina es el codename del contenedor de servlets del Tomcat, catalina_home es una variable de entorno que debería apuntar al directorio de instalación y configuración del tomcat. Dependiendo del entorno en el que trabajéis (principalmente del sistema operativo y la infraestructura de vuestros sistemas) la instalación del Tomcat estará repartida de una forma u otra, pero el catalina_home va a estar presente en todas las instalaciones (aunque hay formas alternativas de trabajar con Tomcat). El caso es que el sistema va siempre a buscar las configuraciones del servidor en catalina_home. ¿Siempre?, aquí es donde yo metí la pata… solo usará catalina_home si la

Publicado en howtos Etiquetado con: , ,

Ejemplo de UML para el análisis de un proyecto

Es habitual que tras adquirir conocimientos de UML o AOO queramos poneros en práctica, pero nos vemos apabullados porque no sabemos por donde empezar. Como siempre, la práctica es lo que nos va a dar los conocimientos, pero siempre viene bien tener un pequeño punto de partida y este pequeño ejemplo de UML que os traigo puede ayudaros para ello. Los proyectos, evidentemente, son “de juguete” y su única finalidad es estar ahí para ofrecer un apoyo didáctico, pero puede servirnos para dar los primeros pasos necesarios para introducirnos en el mundo del UML. Descargar PDF  

Publicado en howtos Etiquetado con: ,

Guía de colecciones en Java

Lo que me motivó a escribir esta guía de colecciones en java es el inmenso tamaño del framework de colecciones que puede echar para a atrás a cualquier programador que se ponga a investigar las APIs sin ordenar un poco las ideas. Hay tantas interfaces e implementaciones que es fácil perderse y no saber que usar en cada momento. Esta pequeña guía de colecciones en Java pretende explicar, de manera sencilla, que las colecciones en Java y que implementación sería mejor que usases para cada caso. Este va a ser un post extenso, así que voy a ser tan amable de proporcionaros una pequeña tabla de contenidos. Tipos de colecciones en java Listas Sets Maps Colas Listas ArrayList LinkedList Vector CopyOnWriteArrayList Sets HashSet LinkedHashSet TreeSet EnumSet CopyOnWriteArraySet ConcurrentSkipListSet Maps HashMap LinkedHashMap TreeMap EnumMap WeakHashMap HashTable ConcurrentHashMap Colas ArrayDeque LinkedBlockingDeque LinkedList PriorityQueue PriorityBlockingQueue Diagramas de clases Diagrama de clases: Listas Diagrama de clases: Sets Diagrama de clases: Maps Diagrama de clases: Colas Notas finales

Publicado en howtos Etiquetado con: ,

Curso de JavaScript para profesionales

Se va a celebrar en Madrid un curso de javascript profesional orientado a todos los que quieran consolidar sus conocimientos del lenguaje y dejar de tratarlo como “brujería”, cosa que se que muchos hacen. El curso ronda los ~400€, pero todo su material ha sido liberado y es gratuito. Podéis obtenerlo en este perfil de github (que yo ya he clonado a la velocidad de la luz). El temario es interesante y toca temas como patrones de diseño y MVC.  A continuación, el temario: Conceptos Objetos, clases y mensajes Las palabras mágicas: this y arguments Herencia funcional Cadena de prototipos Simulando herencia clásica Herencia de prototipos Mixins Clausuras Programación funcional Javascript es funcional Funciones de orden superior y clausuras Callbacks: asincronía Funciones que devuelven funciones Composición: bind, defer, throttle, curry Memoization Promesas y futuros Underscore.js Patrones y principios de diseño Tell, Don’t Ask S.O.L.I.D. Patrones de organización Parámetros por defecto, parámetros con nombre Módulos y Namespaces Controlando el acceso: propiedades privadas Patrones de creación de objetos Factorías Singleton Patrones de abstracción Iteradores Decorador / fachada Estrategia Inyección de dependencias Proxy Patrones de interacción Pub/Sub u observador Mediator Comando y cadena de responsabilidades Hydra Aplicaciones JavaScript usando backbone.js DOM, eventos, AJAX: El

Publicado en howtos Etiquetado con: , ,

Libro de arquitectura JEE gratuito en castellano

Cecilio Álvarez Caules es un SCEA que ha escrito un libro de arquitectura JEE gratuito en castellano. Podéis descargarlo gratuitamente de aquí. Una lectura apuesto que bastante enriquecedora, en breves le echaré un ojo. Fuente

Publicado en howtos Etiquetado con: , , ,

Recursos para aprender programacion

Os pongo varios enlaces con páginas que ofrecen material para aprender programacion a casi cualquier nivel. La perseverancia es lo que consigue la experiencia, así que no dejéis de echarle un ojo. Learn to code the hard way: Una página que ofrece varios libros que intentan obligarte a poner en práctica todo lo que explican. La práctica es la mejor manera de aprender. Su libro de Python cosecha muy buenas críticas. Free tech books: Ebooks gratis de tecnología, no solo limitados a aprender programacion. Tiene algunos libros que son referentes en su materia. Codeacademy: Una manera diferente de aprender la sintaxis básica de varios lenguajes de programación: mediante logros. Dedícate a aprender en su curso online y a conseguir cumplir los pequeños desafíos de cada uno. Google code university: No hay mucho material, pero es de una calidad excelente. Muchas charlas y webcasts, ideal para dar un paso más allá. Cursos gratuitos de la MIT: Cursos que la MIT pone a libre disposición de quien quiera. No solo de informática. OpenCulture: Pocos, pero interesantes recursos sobre temas bastante especializados. CodingBat: Similar a CodeAcademy, pero se centra en solucionar problemas lógicos en Java y Python. Todo a través del navegador. Udacity: Lecciones

Publicado en howtos Etiquetado con: ,

Liberan el codigo fuente del Doom 3: BFG edition

¡El codigo fuente del Doom 3 ahora es GPL! Los buenos de Bethesda han sacado una actualización para el Doom 3: BFG edition y, no contentos con eso, han decidido liberar el codigo fuente del Doom 3, que ahora está disponible para que cualquiera lo baje de GitHub. Modders felices, programadores felices, estos de Bethesda a veces nos dan regalitos muy buenos. El código en CPP se libera bajo una GPL y es una versión del juego que no contiene la integración con Steam o renderización de vídeos Bink. Echadle un ojo y recordad que el juego está a la venta en Steam. Fuente

Publicado en ocio Etiquetado con: ,

Recopilación de artículos CC sobre programación

Via barrapunto veo que Esteban Manchado Velázquez, Joaquín Caraballo Moreno y Yeray Darias Camacho han publicado una recopilación de artículos CC sobre programación en formato libro. El libro está alojado en GitHub en tiene varios formatos (pdf, ePub y html). Completamente gratuito y muy recomendable lectura. Ya tenéis que hacer el el fin de semana.

Publicado en howtos Etiquetado con: ,

Enlace dinamico en Java

Ayer mismo os hablaba del polimorfismo en POO y como lo implementa Java. Espero que el post fuese ilustrador, pero con él pretendía asentar las bases para hablar del Enlace dinámico en Java. Permitidme que os aclare que en la lengua de Shakespeare esto se llama Dynamic Binding. Si cometéis el mismo error que yo y pretendéis buscar información sobre el tema usando las kewywords Dynamic Linking  estaréis leyendo sobre un tema muy distinto. Aclarado esto, vamos al grano… ¿Qué es el enlace dinamico en Java? Si recordáis el post anterior, cuando hablabamos del polimorfismo de asignación, os decía que cualquier variable tiene un tipo estático y un tipo dinámico. Esto significa que una misma variable tiene dos tipos: un tipo que se interpreta en tiempo de ejecución (tipo dinámico) y un tipo que se interpreta en tiempo de compilación (tipo estático). Se que esta definición no aclarará mucho, así que vamos a intentar entenderlo paso a paso y con ejemplos. Al acabar, espero que la definición la entendáis mucho mejor. Empecemos poniendo la base de nuestro pequeño ejemplo. Supongamos que tenemos estas clases: abstract class DriverBD { abstract public boolean conectar(String host, int puerto, String bd); abstract public boolean desconectar();

Publicado en howtos Etiquetado con: ,