Últimos Comentarios

domingo, 24 de mayo de 2015

Picture, el nuevo lenguaje que reduce 1000 líneas de código a 50


Durante décadas, los lenguajes de programación han basado su funcionamiento en las matemáticas y la lógica.
Tendemos a ver los ordenadores como unas máquinas inteligentes, pero en la práctica son las máquinas más tontas del mundo. Se limitan a ejecutar un programa, y ese programa no es más que una lista de órdenes (el código) que le dice exactamente lo que tiene que hacer. El programa contempla todas las opciones posibles, para que el ordenador no quede atrapado en un callejón sin salida.
"Si ocurre esto, haz aquello. Si ocurre esto otro haz esta otra cosa". Y así en un bucle infinito que no deja ningún cabo suelto.
Es una técnica eficaz, pero en tareas complejas exige mucha potencia de proceso y muchos miles de líneas de código.
Es por eso que los informáticos llevan tiempo desarrollando nuevas formas de programar, que rompan las limitaciones actuales. Una de las tendencias más innovadoras de los últimos años es la programación probabilística, que no sigue la lógica, sino la intuición y las probabilidades. En definitiva, se basa en aplicar la inteligencia artificial a la programación.

Con la programación probabilística no le dices al ordenador lo que tiene que hacer, sino quele obligas a pensar. Le das una serie de directrices básicas, y le ordenas que las ponga en práctica, en función de los datos que tenga. La máquina aplicará la inferencia, es decir, decidirá el algoritmo más adecuado porque es el más probable que funcione, o porque ha funcionado en otras ocasiones. Tal como ocurre con el cálculo de probabilidades, como más datos tenga menos errores cometerá y más se acercará a la solución correcta.
Es lo que se conoce como Machine Learning o Máquina de Aprendizaje, y ya se está aplicando en modelos reales de negocio. El buscador de Google, los filtros de spam o los coches sin conductor emplean técnicas de programación que aprenden y mejoran en función de los datos que capturan. A medida que el buscador de Google acumula más webs y más relaciones entre ellas, ofrece datos más precisos en las búsquedas. Los filtros de spam se vuelven más inteligentes según los avisos sobre emails atacantes o emails seguros que reciben. Un coche autónomo estudia el entorno en tiempo real y toma decisiones sobre la velocidad, el frenado o la dirección en función de los datos que recibe del entorno, y de lo que ocurrió en anteriores ocasiones en que recibió esos datos.
Por ejemplo, si se encuentra con un coche parado en la carretera en una calle con aparcamientos interpreta que está aparcando, en lugar de averiado, porque eso es lo que ocurrió las últimas veces que pasó por esa calle. Son los datos los que le dirán si tiene o no razón: si detecta un triángulo de aviso en el pavimento, entonces no está aparcando, está averiado.
¿Qué objetivos tiene usar la Programación Probabilística? Es más sencilla y rápida de programar porque requiere menos código, y necesitas menos datos. Por tanto, es más barata, más rápida, y exige menos requisitos de hardware.

Picture, el lenguaje para Máquinas de Aprendizaje

El último ejemplo de programación probabilística es el lenguaje Picture, desarrollado por el Instituto Tecnológico de Massachusetts (MIT)  que presentará en la conferencia CVPR el próximo mes de junio.
Gracias al uso de la inteligencia artificial y la probabilidad, Picture es capaz de llevar a cabo tareas con 50 líneas de código, para las cuales un lenguaje tradicional necesitaría al menos mil líneas.
La forma más sencilla de entender cómo funciona Picture es usar el ejemplo que los propios programadores han puesto en práctica para demostrar su eficacia: un programa para convertir una foto de un rostro en 2D, en una imagen 3D.

Un lenguaje tradicional necesitaría una gran cantidad de código para decirle al ordenador cómo convertir una imagen 2D en 3D. Cómo renderizar cada píxel, en función de su posición, perspectiva o color, para llevarlo a la tercera dimensión.
Con la programación probabilística de Picture, el programador sólo le da a la máquina una serie de directrices básicas: un rostro tiene dos objetos distribuidos simétricamente (los ojos), con otros dos objetos más centrados, bajo los primeros (la nariz y la boca). Estas directrices son sencillas de programar y requieren poco código. Después, el programa recibe datos en forma de rostros convertidos con anterioridad de 2D a 3D, y en función de esos datos "aprende" el proceso. Utilizando la inferencia, genera los algoritmos más probables para convertir el rostro 2D a 3D, y los aplica a su trabajo. Como más datos reciba (más rostros ya convertidos) tendrá más elementos para calcular la probabilidad, y por tanto el resultado final será más perfecto.
Tal como se puede ver en la anterior imagen, los resultados obtenidos son muy satisfactorios.
La Programación Probabilística aún está dando sus primeros pasos, pero es fácil darse cuenta de su trascendencia. Obliga a los programadores a olvidarse de todo lo que conocen para aplicar mecánicas de diseño de software completamente nuevas.
Aún más importante, es el germen de la inteligencia artificial aplicada a la programación.
El diccionario define la inferencia como "una evaluación que realiza la mente entre distintas proposiciones". La programación probabilística obliga a los ordenadores a usar la inferencia y el estudio de las probabilidades.

Enseña a las máquinas a pensar.
Son las primeras aplicaciones prácticas de los programas que aprenden de su entorno, toman decisiones y optan por una u otra propuesta en función de cual sea lo más probable que ocurra. Como hacemos nosotros.
Las implicaciones de estas nuevas técnicas de programación son asombrosas. Tienen la capacidad de cambiar la informática, el funcionamiento de los ordenadores, y el comportamiento de los robots. Aún no somos capaces de atisbar hacia dónde nos llevarán, pero es fácil darse cuenta de la revolución que suponen, aunque necesitaremos unos cuantos años para descubrirlo.

Fuente: computerhoy

viernes, 22 de mayo de 2015

Oracle y la comunidad celebran los 20 años de Java

Oracle, los usuarios y la comunidad mundial de desarrolladores están celebrando los 20 años de Java. A día de hoy, Java actúa como la espina dorsal de software que afecta tanto a nuestro trabajo como a la vida personal. Desde innovaciones en big data empresarial, cloud, social, móvil e Internet de las Cosas a los coches conectados, los teléfonos inteligentes y los videojuegos, Java continúa ayudando a los desarrolladores a superar los límites de la innovación tecnológica.
Java ha crecido y evolucionado hasta convertirse en una de las tecnologías más importantes y fiables de nuestra industria hoy. Quienes han elegido Java han sido recompensados muchas veces con el incremento en rendimiento, escalabilidad, fiabilidad, compatibilidad y funcionalidad”, dijo Georges Saab, vicepresidente de Desarrollo de la Plataforma Java en Oracle. “El ecosistema Java ofrece excepcionales bibliotecas, entornos, y recursos para ayudar, por igual, a los programadores novatos y expertos. El desarrollo en sí de Java se da en la transparente comunidad OpenJDK. Con la considerable inversión de Oracle y de otros en la comunidad, esperamos que los próximos 20 años sean de evolución y crecimiento”.
Presentado en 1995, Java es el lenguaje de programación elegido por 9 millones de desarrolladores y hoy opera en 7.000 millones de dispositivos. La mejora de la seguridad vial y del aire, recoger información de los océanos del mundo para aplicaciones científicas, incrementar la calidad de los cultivos de cereales y cuantificar la ayuda para alimentar a las personas hambrientas, simular el cerebro humano y el sistema músculo-esquelético, y los juegos son algunos de los interesantes proyectos mundiales que utilizan la tecnología Java.
Los desarrolladores de empresa pueden elegir entre un ecosistema de 30 implementaciones Java EE 6 y Java EE 7 compatibles de 12 fabricantes. Además, más de 125 millones de dispositivos basados en su capa intermedia en Java han sido desplegados y más de 10.000 millones de tarjetas Java han sido enviadas desde su presentación.
“Los lenguajes de programación no siempre tienen una larga vida, y los que lo hacen, no siempre gozan de salud”, dijo Al Hilwa, IDC program director for Application Development Research.“Pero Java ha resistido la prueba del tiempo y el test de una amplia gama de aplicaciones que la usan, desde grandes sistemas de empresa hasta pequeños dispositivos de juegos”.
El universo Java
Bajo la gestión de Oracle, dos versiones principales de la plataforma han sido suministradas: Java 7 y Java 8 , y Java 9 está previsto para 2016. El Proceso de la Comunidad Java (JCP) es más abierto y transparente que nunca antes, y sirve como un elemento integral de participación de la comunidad en la continua evolución de la tecnología. La Comunidad OpenJDK , el lugar para colaborar sobre una implementación de código abierto de la plataforma Java, Standard Edition, está atrayendo continuamente nuevos participantes a su ya amplia base de participación.
En marzo de 2014, Oracle anunció la disponibilidad de Java SE 8 tras recibir la aprobación final en el Java Community process. Está versión, la cual incluye la mayor actualización del modelo de programación Java desde que la plataforma fue presentada en 1995, fue desarrollada en colaboración con la OpenJDK Community. Poco después, en abril de 2014, la Java Platform, Micro Edition 8 (Java ME 8) y las versiones relacionadas de Oracle’s Java Embedded products estuvieron también disponibles tras su aprobación final en el Java Community Process. Con una plataforma Java 8 consistente a través de dispositivos embebidos, escritorios, centros de datos y cloud, los clientes pueden desarrollar aplicaciones más rápido, procesos y análisis de datos en tiempo real; y actuar en eventos tan pronto como se producen.
Marcando el comienzo de la próxima era de Java
Oracle y la comunidad Java están ahora centrados en el suministro de las nuevas innovaciones en Java 9. La característica prevista clave de este comunicado es Project Jigsaw, que persigue modularizar la plataforma para que sea escalable para una amplia gama de dispositivos, facilitar a los desarrolladores la construcción y el mantenimiento de las librerías y aplicaciones de gran tamaño, y mejorar la seguridad, el mantenimiento y el rendimiento. Otras características previstas para Java 9 incluyen Java Shell, una herramienta interactiva para la evaluación de fragmentos de Código de Java; un nuevo HTTP client API para soportar HTTP/2 y Web Sockets; un puerto para ARM AArch64 architecture en Linux; y una variedad de actualizaciones para las APIs existentes junto con algunas mejoras significativas de rendimiento.
“Java toca directa o indirectamente a todos los seres humanos de este planeta. Es el pegamento que permite operar con éxito al móvil o al banco en áreas remotas del mundo, entretiene a millones de personas con juegos como Minecraft, y acciona el motor económico de nuestros mercados globales”, dijo Martijn Verburg, co-leader of Java User Group, London. “Es extremadamente importante que esta plataforma sea gestionada por un líder que comprenda la importancia de Java para el mundo, y Oracle hace un excelente trabajo al colaborar con una comunidad de usuarios altamente diversa, desarrolladores, proyectos open source y grandes empresas. Estoy deseando ver lo próximo que va a plantear la próxima generación de ingenieros. Usando Java, las posibilidades parecen infinitas”.
Para conmemorar los 20 años de Java, Oracle Certification está ofreciendo un 20% de descuento en todos los exámenes de certificación Java. La oferta está disponible globalmente hasta el 31 de diciembre de 2015. Los candidatos deben proveer el código promocional Java20 en el momento del registro. Para más detalles pinche aquí.

Fuente: muycomputerpro.com

jueves, 21 de mayo de 2015

OFERTA DE EMPLEO DE PROGRAMADORES Y ANALISTAS PARA SEVILLA



Empresa ubicada en la Isla de la Cartuja necesita los siguientes perfiles:

1 Analista Programador (Ref: #CFP-AP)

    indispensable experiencia en EJB 3
    indispensable experiencia en JPA
    indispensable experiencia en JSF
    deseable experiencia en servicios web (rest,soap)
    deseable experiencia en Oracle
    deseable experiencia en refactoring
    deseable conocimiento en pruebas unitarias

2 Programadores (Ref: #CFP-P)

    indispensable experiencia en Java (con algún framework MVC)
    deseable experiencia en EJB 3
    deseable experiencia en JPA
    deseable experiencia en JSF
    deseable experiencia en servicios web (rest,soap)
    deseable experiencia en Oracle
    deseable conocimiento en pruebas unitarias

1 Analista Programador (Ref: #SIG-AP)

    indispensable experiencia en Java (con algún framework MVC)
    indispensable experiencia en hibernate
    indispensable experiencia en JSF
    deseable experiencia en servicios web (rest,soap)
    deseable experiencia en Oracle
    deseable experiencia en refactoring
    deseable conocimiento en pruebas unitarias

4 Programadores (Ref: #SIG-P)

    indispensable experiencia en Java (con algún framework MVC)
    deseable experiencia en hibernate
    deseable experiencia en JSF
    deseable experiencia en servicios web (rest,soap)
    deseable experiencia en Oracle
    deseable conocimiento en pruebas unitarias


2 Analistas Funcionales (Ref: #AF)

    Experiencia en UML y gestión de requerimientos, y trato con Clientes
    Valorable experiencia uso Enterprise Architect
    Experiencia en ERPs y aplicaciones web, especialmente basadas en Facturación y Contabilidad,

Logística (preferiblemente hospitalaria), Catalogación, Contratación Administrativa, Acuerdos de Consumo
    Conocimientos SOA
    Conocimientos Testing
    Deseable conocimientos paradigma J2EE, y PL/SQL


La fecha de incorporación sería el 15 de Junio.
Las personas interesadas pueden contactar con Yolanda Brotrons
E-mail.- yolanda.brotons@experienceis.com
Tlf. 34618279646

Fuente: ORIENTA MANCOMUNIDAD DE ÉCIJA

sábado, 2 de mayo de 2015

Odoo: más que un ERP

Odoo revoluciona el mundo de las aplicaciones yendo más allá de un ERP. Es el único software en el mundo que integra todos los canales de venta: tienda online, terminal punto de venta y ventas directas.