Últimos Comentarios

lunes, 5 de octubre de 2015

Introducción a la programación

Si quieres un programa para realizar pseudocódigos, a continuación tienes un enlace donde puedes bajarte el programa PSeInt.

Introducción a la programación con PSeInt

En el siguiente vídeo tienes un ejemplo de uso del programa PSeInt.



También hay quien utiliza los diagramas de flujo como herramienta alternativa al pseudocódigo, para la representación de algoritmos. Si es de tu interés, aquí tienes algunos enlaces útiles. Aquí abajo tienes el primero de cuatro vídeos sobre este programa. Los siguientes vídeos los puedes reproducir cuando acabe éste.


El programa freeDFD se suele usar en la introducción a la programación mediante Diagramas de Flujo.


martes, 21 de julio de 2015

4 libros que todo programador debe leer



Los médicos tienen el Juramento Hipocrático, los programadores tenemos “The Clean Coder: A Code of Conduct for Professional Programmers”.

Robert C. Martin, nos da lleva de la mano por todos los aspectos no puramente técnicos de la profesión, este libro es un condensado de experiencia y sabiduría, un viaje completo por la experiencia profesional de la industria del desarrollo de software, recomendable para programadores, analistas, ingenieros de calidad, managers, lideres, y todo aquel involucrado en la misma.

Este libro responde a preguntas tales como:

¿Cómo lidiar con jefes irracionales y calendarios apretados?

¿Cómo superar el bloqueo de programador?

¿Cómo manejar la presión en los proyectos?

¿Cuándo decir que “No”, cuando decir que “Si” y que significa este compromiso?

¿Cómo administrar tu tiempo?

Cita destacada:

“La escuela puede enseñar la teoría de la programación. Pero la escuela no te enseña y no puede enseñarte  la disciplina, la práctica, y la habilidad de ser un artesano de software.”

Las maquinas son esclavos de nuestra voluntad, las personas no; el trabajo en equipo o el trabajo de dirigir uno es complicado, este libro “Practices of an Agile Developer: Working in the Real World” nos enseña cómo ser mejores desarrolladores y como comunicarnos efectivamente entre profesionales en un entorno Ágil. Si pudiera describir este libro en una sola frase, esta sería: “Como ser un profesional asertivo”. El libro está escrito en un lenguaje claro, directo y muy disfrutable.

Este es uno de muchos consejos que tiene este libro:

“Culpar a alguien no arregla los errores, en lugar de señalar personas, señala posibles soluciones. Es el resultado positivo lo que cuenta” (página 14)




The Pragmatic Programmer” este libro nos muestra el camino a la excelencia en la programación, un la belleza del desarrollo de software, arte y ciencia en una amalgama, este libro hace que te enamores de tu profesión si ya disfrutas la programación.

Citas destacadas:

– “Consejo #1: preocúpate por tu arte, sentimos que no hay ningún punto en el desarrollo de software a menos que nos preocupemos por hacerlo bien”.
– “Como programador, eres en parte oyente, mitad asesor, parte intérprete, y parte dictador”.
– “No hay respuestas fáciles. No hay tal cosa como una mejor solución, ya sea una herramienta, un idioma o un sistema operativo. Sólo puede haber sistemas que son más apropiados en un determinado conjunto de circunstancias”.

– “Una buena idea es un huérfano sin una comunicación efectiva”.
– “Una inversión en conocimiento siempre paga el mejor interés”.
– “Un gran software hoy, es a preferible a un software perfecto mañana”.

Think Like a Programmer” un libro muy interesante que nos presenta problemas y cómo atacarlos, el autor nos muestra de manera magistral cómo resolver problemas complejos, de una forma sencilla y entretenida; es una lectura divertida que nos muestra cómo es la mente de un programador. ¿Este libro me hará un mejor programador? ¿Va a enseñarme a escribir mejor código? La respuesta es No. Sin embargo, este libro te enseñará lo que estás haciendo mal en tu código, cómo racionalizarlo, y cómo dar un paso atrás, tomar un respiro y volver a evaluarlo para bien o para mal.

Autor: The Unknown Programmer







Fuente: Scio

domingo, 7 de junio de 2015

El Mejor Programador del Mundo

Pero antes de todo ¿Quien es un Programador?

Un programador es aquella persona que escribe, depura y mantiene el código fuente de un programa informático, es decir, del conjunto de instrucciones que ejecuta el hardware de una computadora para realizar una tarea determinada. 

La programación es una de las principales disciplinas dentro de la informática. En la mayoría de los países, programador es también una categoría profesional reconocida  y en un futuro no muy lejano la Programación sera parte de la Curricula escolar.

Los programadores también reciben el nombre de desarrolladores de software, aunque estrictamente forman parte de un equipo de personas de distintas especialidades (mayormente informáticas), y siendo que el equipo es propiamente el desarrollador.


Piensa en ti mismo, en como eres, en las cosas que haces, en como programas, en las herramientas que utilizas, y contesta a esta pregunta:

¿qué te hace falta para ser el mejor programador del mundo?

Es una buena pregunta, ¿verdad? Bueno, en realidad es la típica pregunta que se hace en las entrevistas. De este tipo de preguntas que no tiene una respuesta única pero que sirve para ver como el entrevistado reacciona y que camino coje para buscar la respuesta.

Y es que la definición de buen programador es tan ambigua. ¿Es mejor programador alguien que codifica muy rápido o quizás alguien que codifica mucho más lento pero lo que hace siempre funciona?, ¿Es mejor programador alguien que conoce muchísimas herramientas o quizás alguién muy especializado en un lenguaje o sistema concreto?, ¿Es mejor programador alguien que conoce muchísimos lenguajes o alguién que conoce uno sólo a la perfección? ¿Es un buen programador alguien que conoce muchísimos patrones, buenas prácticas y domina la ingeniería o alguién que no conoce nada de eso pero que tiene un instinto nato que hace que todo salga bien? ¿Es mejor programador alguien que trabaja en equipo o alguien que quiere hacer todo el sólo? ¿Es mejor programador alguien que es muy social o alguien que es muy arisco pero muy superior codificando?



Demasiadas preguntas abiertas para el especificar un buen programador. 

¿Sería el programador ideal alguién con la vitalidad de un chico de 18 años y la experiencia de un hombre de cincuenta? Es muy posible. Sin embargo es pedir un imposible.

Se podría decir que el mejor programador del mundo necesita estar en la mejor empresa del mundo, para dar a conocer sus creaciones.

El ingeniero de software Yevgeniy Brikman ha publicado un interesante post en su blog Don’t Panic en el que explica que la cuestión no es saber programar, sino aprender a pensar como un auténtico informático, también seria un requisito para ser el mejor programador.

Y a ustedes, ¿qué les hace falta para ser el mejor  programador del mundo?

Fuente: itechnode.com

martes, 2 de junio de 2015

Qúe lenguaje de programación aprender en primer lugar???

Cada lenguaje de programación ofrece algo distinto y tiene puntos a favor y en contra. Incluso es posible que dependiendo del lugar del mundo en el que vivas algunos lenguajes sean más populares que otros.

Un diagrama detallado para ayudar a los novatos para elegir su primer lenguaje de programación.


Niveles de un Programador

Con frecuencia vemos ofertas de trabajo en donde nos peden un analista programador senior, y muchos nos quedamos con la duda de qué es lo que quiere decir lo de "seniro", con este artículo tratamos de despejaros las dudas sobre lo que piden normalmente en las ofertas de empleo:

Experiencia laboral

Cantidad de años de experiencia laboral en informática.
No cuentan los trabajos prácticos realizados ni trabajos dentro de otras actividades.
Junior: Menos de 2 años de experiencia.
Semi Senior: De 2 a 6 años de experiencia.
Senior: Más de 6 años de experiencia.

Conocimientos técnicos

Principalmente referido a las herramientas, tecnologías, lenguajes de programación, paradigmas de programación, base de datos, arquitecturas, etc. que deba utilizar para cumplir sus labores.
Junior: Para desempeñarse suele requerir acompañamiento. El código que genera puede presentar mayor cantidad de bugs de lo esperado. Probablemente no maneja todas las herramientas que se necesitan para la tarea.
Semi Senior: Técnicamente autosuficiente. Puede desarrollar funcionalidades más complejas y ejecutar proyectos de mayor envergadura. Pero no es un crack y todavía comete errores “evitables”.
Senior: Es referente técnico dentro del equipo. Su conocimiento le permite colaborar en definiciones arquitectónicas y desarrollar los proyectos más desafiantes. Su código funciona, es bueno y fácil de mantener.

Conocimientos funcionales

Relacionado a los procesos, metodologías, estándares, circuitos requeridos para cumplir sus labores.
Junior: Para desempeñarse suele requerir cierto nivel de acompañamiento. No conoce todos los procesos, ni los estándares. No es experto en los temas propios del negocio.
Semi Senior: Maneja los circuitos lo suficiente como para desempeñarse. Respeta los estándares y metodologías. Conoce buena parte de los procesos del negocio.
Senior: Ayuda a definir procesos, metodologías, estándares y circuitos. Por supuesto cumple los existentes.

Otra forma de verlo sería:

Niveles: el análisis, diseño, creación de aplicaciones y convertir ideas en solución informática. Pero que funciona desempeña cada nivel, les muestro a continuación: 

Junior o Nivel 1


A menudo suele recibir instrucciones detalladas de que debe hacer, puede escribir parte del código de un software o realizarlo completo. 

Un junior es normalmente un desarrollador inicial, alguien que empieza a dar sus primeros pasos en el ambiente de la creación de aplicaciones o que recién sale de la universidad sin experiencia laboral previa. El Junior es frecuentemente puesto como pasante y por esto sus funcionen suelen verse limitadas. 

A menudo un Junior no suele interactuar con los clientes o futuros usuarios de la aplicación. Suele dejarse manejar por la presión y por esto no se le encarga labores de duty sobre aplicaciones en producción ni proyectos con premura o corto deadline. 

El periodo en el que se considera Junior puede estar hasta los 2, 3 y 4 años (dependerá en algunos casos de la empresa) de vida laboral en el área. Aunque inicialmente un Junior es tomado para modificar aplicaciones en la mayoría de los casos las empresas suelen preferiblemente ponerlos a hacer pequeñas aplicaciones como parte de su evaluación. 


Senior o Nivel 2



Normalmente recibe una lista de requerimientos para un proyecto en el cual puede que trabaje solo o tenga algún(os) Juniors de asistenté(s) en un proyecto. Se toma la libertad de adecuar los requerimientos y genera un project plan dividido en fases. El Senior no necesita instrucciones en todos los detalles como los Junior, suele ingeniársela para investigar detalles puntuales que quizás no fueron especificados en los requerimientos. 

No es necesario tenerle tanta vigilancia en el cumplimiento de sus metas. 

En cierta medida la mayor diferencia entre un desarrollador senior y un junior radica en su autonomía en la ejecución de sus funciones y pese a su experiencia laboral el senior suele manejar mejor la presión. 

Un senior experimentado suele ser a partir de los 4 años, algunas personas y empresas consideran el espacio entre los 2 y 4 años de experiencia como semi-senior pues no se considera que sus capacidades sean completamente optimas. 


Analista o Nivel 3 


El analista en muchos casos suele ser el puente entre los developers y el cliente; en muchos de los casos cumple la función de team-leader o de project manager; suele ser quien levanta los requerimientos de nuevas aplicaciones, administra recursos y tiempo dentro de su equipo. 

El analista a menudo tiene una clara idea de que puede o no hacer su equipo y cuales son sus límites. Es la persona que se sienta con el cliente, revisa sus ideas para convertirlas en requerimientos y las lleva a alternativas viables. 

Siendo justo y llevando esta descripción al plano laboral pudiera decirse que un analista no necesariamente es un developer pues en algunos casos es una persona que conoce las funciones de los developer, tienes nociones de las herramientas pero no desarrolla. 


Analista Desarrollador o Nivel 4



Este nivel tiene lo mejor de los dos mundos pues un Analista Desarrollador suele ser un Senior con las cualidades y capacidades del analista antes mencionado. 

En este nivel se suele tener una idea más aterrizada de cada requerimiento y el plan de acción suele ser más acabado y preciso en la práctica pues también desarrollar es parte de su día a día. 

Un Analista Desarrollador sabe que herramientas son mejores para cada tarea y por ende sus resultados suelen ser mejores o sus resultados más exactos que los de los Analistas. 

Existe un segmento “Analista Desarrollador Senior” que suele diferenciarse de los anteriores por sus altas capacidades o mejor dominio de la implementación de sus aplicaciones. 


Arquitecto de Software o Nivel 5



Los Arquitectos de Software son quienes determinan las reglas de negocio al momento de implementar una nueva aplicación, no solo se limitan a mirar en el entorno de desarrollo las herramientas y tecnologías a utilizar sino que evalúan y proponen upgrade a nuevo hardware para los sistemas que van a crear. Fuera de lo que puedan pensar los Junior y Senior para los Arquitectos de Software la creación de aplicaciones es un arte. Cuando un Junior piensa en la palabra “Arquitecto” imagina un individuo con grandes maquetas en la cual está impregnada la concepción de su infraestructura, esto mismo hacen los Arquitectos de Software aplicado al desarrollo. 

El trabajo y responsabilidad de los Arquitectos de Software es más grande en cierta medida pues deben hacer las predicciones de cuanto hardware es necesario para correr la nueva aplicación que crearán en base a mediciones de carga o pruebas de stress. 

La Arquitectura de Software, tiene que ver con el diseño y la implementación de estructuras del software, desempeño del sistema, la escalabilidad y portabilidad de forma adecuada para satisfacer las necesidades del negocio. 



Fuentes: taringa.net , diegosalama.com










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.


miércoles, 15 de abril de 2015

Los 5 requisitos para ser un buen programador

¿Realmente reunes los requisitos para trabajar en el campo de la programacion de manera profesional? 

Lo que debes tener en cuenta es que un buen programador no se hace de la noche a la mañana, es el resultado de mucho esfuerzo, sacrificio, dedicación,  compromiso y !muchos errores!. 


Algunos requisitos que se deberian tomar en cuenta para llamarse un “buen programador” a nivel profesional.

INTERACCIÓN:

Se puede hablar de interacción en varios niveles: el programador debe ser capaz de trabajar en un equipo donde compartir opiniones, aceptar sugerencias e intercambiar ideas. Y al mismo tiempo, debe ser capaz de empatizar con aquellas otras personas que desconocen el mundo de la programación pero necesitan de sus soluciones. Primer error: el programador no es ese informático que está todo el día encerrado en una habitación con un ordenador.

ANÁLISIS Y SÍNTESIS:

Este profesional debe ser capaz de analizar el problema al que se enfrenta, sintetizar la información que ha recibido y elegir los datos con los que comenzar el trabajo. Segundo error: el programador no trabaja de forma estandarizada.

CONOCIMIENTOS:

Debe tener una formación que lo capacita como tal. Un buen programador más que saber el cómo, sabe el por qué de las cosas. No es lo mismo saber cómo solucionar un problema, que saber realmente cómo funciona esa solución. Tercer error: El programador no es un libro cerrado.

CREATIVIDAD:

El buen programador debe tener creatividad para obtener soluciones factibles, rápidas y sencillas a problemas complicados. En un mismo lenguaje de programación puede encontrar varias formas de solventar una situación. Cuarto error: Los ordenadores son cuadriculados, los programadores no.

INQUIETUD

Un buen programador siempre se sigue formando, busca nuevas formas de enriquecer su trabajo, y es curioso por naturaleza. Algo que repercutirá de forma muy positiva en su trabajo. Quinto error: el programador no es un friki, el programador sigue aprendiendo.

Ahora solo te queda responder… ¿Eres un buen programador?

domingo, 29 de marzo de 2015

Android Programación Aplicaciones (Curso en youtube)

Hoy  compartimos un material que sin lugar a dudas será muy útil para complementar nuestro conocimiento asociado al sistema operativo Android.


¿Como nos enseñaran estos cursos?

Muchos hoy día han aprendido el Desarrollo de aplicaciones Android: copiando y pegando códigos. Sin embargo existen multitud de cursos en youtube, entre los que destaca este de una universidad de España

Enlace Youtube de los 57 Cursos:

https://www.youtube.com/playlist?lis...A5zUfpOjY6NYDv

1/57 de algunos ejemplos



Son 57 Video Cursos que poseen explicaciones muy precisas y fáciles de asimilar.

sábado, 28 de marzo de 2015

Conoces Spring Framework???

¿Que es Spring Framework?

Spring es un framework para el desarrollo de aplicaciones y contenedor de inversión de control, de código abierto para la plataforma Java.

La primera versión fue escrita por Rod Johnson, quien lo lanzó junto a la publicación de su libro Expert One-on-One J2EE Design and Development (Wrox Press, octubre 2002). El framework fue lanzado inicialmente bajo la licencia Apache 2.0 en junio de 2003. El primer gran lanzamiento fue la versión 1.0, que apareció en marzo de 2004 y fue seguida por otros hitos en septiembre de 2004 y marzo de 2005. La versión 1.2.6 de Spring Framework obtuvo reconocimientos Jolt Awards y Jax Innovation Awards en 2006.3 4 Spring Framework 2.0 fue lanzada en 2006, la versión 2.5 en noviembre de 2007, Spring 3.0 en diciembre de 2009, y Spring 3.1 dos años más tarde. La versión actual es la 4.0 que fue anunciada en enero y lanzado en Diciembre de 2013.

Si bien las características fundamentales de Spring Framework pueden ser usadas en cualquier aplicación desarrollada en Java, existen variadas extensiones para la construcción de aplicaciones web sobre la plataforma Java EE. A pesar de que no impone ningún modelo de programación en particular, este framework se ha vuelto popular en la comunidad al ser considerado una alternativa, sustituto, e incluso un complemento al modelo EJB (Enterprise JavaBean).

Enlaces de interés

Pagina oficial del desarrollador.

Nuevas características en Spring Framework 4

Libros y otros recursos
Introducing Spring Framework: http://it-ebooks.info/book/3645/
Pro Spring MVC with Web Flow: http://it-ebooks.info/book/875/
Pro Spring Security: http://it-ebooks.info/book/2364/
Spring in Action 3er Edition: http://it-ebooks.info/book/968/

lunes, 2 de marzo de 2015

Iniciación a Java

Una web muy recomendada para aquellos que se están iniciando en la programación Java:



CONTENIDO:

    1 - Instalación de Java
    2 - Instalación del editor Eclipse
    3 - Pasos para crear un programa con Eclipse
    4 - Objetivos del curso y nociones básicas indispensables
    5 - Errores sintácticos y lógicos
    6 - Estructura de programación secuencial
    7 - Estructuras condicionales simples y compuestas
    8 - Estructuras condicionales anidadas
    9 - Condiciones compuestas con operadores lógicos
    10 - Estructura repetitiva while
    11 - Estructura repetitiva for
    12 - Estructura repetitiva do while
    13 - Cadenas de caracteres en Java
    14 - Declaración de una clase y definición de objetos.
    15 - Declaración de métodos.
    16 - Estructura de datos tipo vector.
    17 - Vector (Tamaño de un vector)
    18 - Vectores paralelos
    19 - Vectores (mayor y menor elemento)
    20 - Vectores (ordenamiento)

    21 - Vectores (ordenamiento con vectores paralelos)
    22 - Estructura de datos tipo matriz
    23 - Matrices (cantidad de filas y columnas)
    24 - Matrices y vectores paralelos
    25 - Matrices irregulares
    26 - Constructor de la clase
    27 - Clase String
    28 - Colaboración de clases
    29 - Herencia
    30 - Interfaces visuales (componentes Swing)
    31 - Swing - JFrame
    32 - Swing - JLabel
    33 - Swing - JButton
    34 - Swing - JTextField
    35 - Swing - JTextArea
    36 - Swing - JComboBox
    37 - Swing - JMenuBar, JMenu, JMenuItem
    38 - Swing - JCheckBox
    39 - Swing - JRadioButton
    40 - Estructuras dinámicas

    41 - Estructuras dinámicas: Listas
    42 - Estructuras dinámicas: Listas tipo Pila
    43 - Estructuras dinámicas: Listas tipo Pila - Problema de aplicación
    44 - Estructuras dinámicas: Listas tipo Cola
    45 - Estructuras dinámicas: Listas tipo Cola - Problemas de aplicación
    46 - Estructuras dinámicas: Listas genéricas
    47 - Estructuras dinámicas: Listas genéricas ordenadas
    48 - Estructuras dinámicas: Listas genéricas doblemente encadenadas
    49 - Estructuras dinámicas: Listas genéricas circulares
    50 - Recursividad: Conceptos básicos
    51 - Recursividad: Problemas donde conviene aplicar la recursividad
    52 - Estructuras dinámicas: Conceptos de árboles
    53 - Estructuras dinámicas: Inserción de nodos y recorrido de un árbol binario
    54 - Estructuras dinámicas: Implementación en Java de un árbol binario ordenado
    55 - Plug-in WindowBuilder para crear interfaces visuales.
    56 - Plug-in WindowBuilder problemas resueltos
    57 - Clase Graphics y sus métodos
    58 - Gráficos estadísticos
    59 - JDBC con MySQL
    60 - Alta y Consulta de una tabla de MySQL

    61 - Baja y modificación de datos de una tabla de MySQL
    62 - Instalación del "Eclipse IDE for Java EE Developers" y el servidor "Apache Tomcat"
    63 - Servlet
    64 - Recuperación de los datos de un formulario HTML en un servlet
    65 - Llamada a servlet desde un hipervínculo (con y sin parámetros)
    66 - Redireccionamiento a otro sitio o página desde un servlet


Empezando a trastear Android

Entre la multitud de paginas y video tutoriales que existen por ahí, os recomendamos:



Tutorial 1

Tutorial 2

Así hasta 9 tutoriales que podrás encontrar en la página anteriormente enlazada.

miércoles, 11 de febrero de 2015

Instalación del ERP Odoo 8

Para instalarlo bajo Ubuntu 14, no tenéis más que agregar al repositorio de Ubuntu la siguiente librería:

deb http://nightly.odoo.com/8.0/nightly/deb/ ./

Una vez hecho esto, mediante el terminal, ejecutamoso las siguientes instrucciones:

sudo apt-get update
sudo apt-get install postgresql
sudo apt-get install odoo



Y listo; al igual que para su versión anterior entramos a este ERP introduciendo en el navegador:

localhost:8069

Para instalarlo bajo Windows, directamente nos bajamos el archivo ejecutable desde la web:



Para ampliar información:


martes, 27 de enero de 2015

Verificación de NIF o NIE válido

Un posible código podría ser este:

public static boolean isNifNie(String nif){
 
   _log.debug("NIF "+nif);
   //si es NIE, eliminar la x,y,z inicial para tratarlo como nif
   if (nif.toUpperCase().startsWith("X")||nif.toUpperCase().startsWith("Y")||nif.toUpperCase().startsWith("Z"))
nif = nif.substring(1);
 
Pattern nifPattern =
Pattern.compile("(\\d{1,8})([TRWAGMYFPDXBNJZSQVHLCKEtrwagmyfpdxbnjzsqvhlcke])");
Matcher m = nifPattern.matcher(nif);
if(m.matches()){
String letra = m.group(2);
//Extraer letra del NIF
String letras = "TRWAGMYFPDXBNJZSQVHLCKE";
int dni = Integer.parseInt(m.group(1));
dni = dni % 23;
String reference = letras.substring(dni,dni+1);
 
if (reference.equalsIgnoreCase(letra)){
_log.debug("son iguales. Es NIF. "+letra+" "+reference);
return true;
}else{
_log.debug("NO son iguales. NO es NIF. "+letra+" "+reference);
return false;
}
}
else
return false;
}