Entradas

Introducción a J2ME

Imagen
J2ME es la plataforma enfocada a la aplicación de la tecnología Java en dispositivos electrónicos con capacidades computacionales y gráficas muy reducidas, tales como teléfonos móviles, PDAs o electrodomésticos inteligentes. Esta edición tiene unos componentes básicos que la diferencian de las otras versiones, como el uso de una máquina virtual especial (debido a que requiere sólo unos pocos Kilobytes de memoria para funcionar) en vez del uso de la JVM clásica, inclusión de un pequeño y rápido recolector de basura y algunas otras diferencias. Es una buena opción en software libre para movilidad. Este esquema, puede considerarse un poco simplista, ya que cada plataforma está orientada a distintos ámbitos de aplicación, pero en cualquier caso nos sirve para poder afirmar que J2ME usa hasta 37 clases provenientes de java.lang, java.io y java.util (J2SE). La principal diferencia es aportada por las clases de javax.microedition (que están en J2ME, pero no en J2SE). Entorno de Ejecución J2ME...

Venta en Gradas

Imagen
Venta en Gradas fue el proyecto que me mantuvo ocupado (muy ocupado) durante el verano pasado. El objetivo era que los asistentes a un partido de fútbol pudieran realizar pedidos desde sus asientos en las gradas del Ramón Sánchez-Pizjuán. Actualmente, varios operarios repartidos por las gradas, portan PDAs y mediante una interfaz sencilla e intuitiva realizan pedidos de productos asociados a una zona del estadio, una fila y un asiento. Simultáneamente se imprime un ticket-resguardo para el cliente (a través de una impresora portátil bluetooth que lleva cada operario) con estado pendiente, y un ticket análogo en la impresora de la barra más próxima. En ésta se prepara el pedido, que otro operario lleva a la Zona-Fila-Asiento indicados. En el momento de entregar el pedido, se realiza el intercambio de tickets, quedándose el cliente con el que tiene estado "entregado". La arquitectura de la aplicación es la siguiente: El software del cliente se desarrolló en .NET C#, y se usó un...

Scrum para Dummies

Introducción Scrum es un marco de referencia para desarrollo ágil de productos. Esta metodología se puede aplicar a procesos de producción de distintos sectores, yo me centraré en el de Desarrollo de Software. Desarrollo tradicional vs Desarrollo Ágil Especialización vs Equipo Multidisciplinar Fases vs Solapamiento Requisitos detallados vs Visión del producto Seguimiento del plan vs Adaptación a los cambios Las metodologías tradicionales se ven como una carrera de relevos, en el que cada miembro es responsable de una fase, y hasta que no se termina una fase, es imposible comenzar las siguientes. En cambio, las metodologías ágiles son más como un partido de Rugby, en el que el empuje conjunto del equipo es importantísimo para el éxito. De hecho, Scrum significa melé. Ya comparé en un post anterior estos dos tipos de metodologías. ¿Por qué Scrum? El cliente puede ver resultados desde el primer momento. Se ahorra el tiempo que en las metodologías tradicionales se d...

Huelga Ingeniería Informática

Son varios los compañeros (y sin embargo amigos ;-)) que me llevan pidiendo mi opinión sobre las reivindicaciones de la Ingeniería Informática desde hace algún tiempo. Ya me "he dejado querer" bastante, así que en este post, intentaré expresarme de la manera más clara posible. Como titulado, pienso que a nivel académico, la Ingeniería Informática se debe tratar como el resto de Ingenierías. Si bien, creo que hay muchas carencias en los temarios que se imparten, y la Universidad debería adaptar el currículo, para que los titulados salieran con algunos conocimientos, que en mi opinión, son indispensables. Sobre los contenidos que deberían recogerse se podría escribir mucho, y me lo pongo como tarea para futuros posts. En éste, me quiero extender sobre las competencias y atribuciones profesionales del Ingeniero Informático. En cuanto al nivel académico parece que los Directores y Decanos, ya tienen bastante controlado el tema . En primer lugar, y para los despistados, me gustarí...

Lenguajes: Pasado, Presente y Futuro

Escribo este post al hilo del artículo que he leido en dosideas.com. En él, se habla de las habilidades que debería tener un programador para tener un currículum relevante en los próximos cinco años: 1. Uno de los "3 Grandes" (Java, .NET, PHP) 2. Aplicaciones Ricas de Internet (RIA - Rich Internet Applications) 3. Desarrollo web 4. Servicios web 5. Habilidades humanas 6. Un lenguaje de programación dinámico y/o funcional 7. Metodologías ágiles 8. Conocimiento de dominio 9. "Higiene" de desarrollo 10. Desarrollo móvil A partir de este artículo, estuve debatiendo con algunos compañeros y saqué algunas conclusiones que quiero plasmar aquí. Pienso que el artículo es un poco mejorable, dada la arbitrariedad con la que se han escogido los conocimientos a adquirir. De hecho, muchas de esas habilidades hay que tenerlas en el presente (yo cumpliría de 9 a 10). Me voy a centrar en el punto 1, uno de los "3 Grandes" (Java, .NET, PHP). Antes de hablar de "gran...

Oracle compra Sun

Noticia muy importante, y muy inesperada, al menos para mí: Oracle ha comprado Sun. Se esperaba que lo hiciera IBM, que al mantener una doble línea (software libre y privativo), la operación se interpretaba como una gran apuesta de IBM por el software libre. Tras consumarse la operación de Oracle, que como todos sabemos, apuesta por la venta de productos por licencia, la historia cambia radicalmente. Tendremos que estar muy atentos a los próximos movimientos. En mi opinión puede ocurrir lo siguiente: Que Oracle vaya retirando progresivamente el soporte de Sun a sus tecnologías (Java, MySQL, LWUIT, Netbeans…). En ese caso podría ocurrir: - Que algunas administraciones públicas cambien su política de software libre y se adapten a software privativo. En mi opinión, esto es improbable, pero de suceder, deberíamos apostar por software propietario más maduro, como .NET, por ejemplo. - Que los nuevos proyectos se sigan realizando en software libre (Python, PostgreSQL, por ejemplo). En ese c...

Bases de Datos: Pasado (Oracle), Presente (MySQL), Futuro (¿db4o?)

En los últimos tiempos, tanto el gobierno británico como el alemán han apostado firmemente por invertir en Software Libre realizando progresivamente migraciones de sus sistemas propietarios. En mi visita al Delivery Center de Accenture en Málaga , me aseguraban que las licencias de software propietario se habían encarecido un 25 por ciento en 2008. Costes en software propietario que ya eran bastante elevados en 2007. Unos de los productos propietarios más ampliamente extendidos, incluso donde se ha apostado decididamente por Software libre, es el sistema de gestión de bases de datos Oracle. Sus virtudes principales son su robustez, su seguridad, y su soporte. Sus principales defectos son su lentitud, su complejidad y la gran cantidad de recursos que consume. A estos defectos habría que añadir su alto coste, tanto de licencias, como de mantenimiento, requiriendo personal formado específicamente para administrar este tipo de base de datos. Creo que el fin de la época dorada de Oracle h...