mayo 2013 – Instituto FOC | Informática ONLINE | FP Informática ONLINE

¿Que es JSON?

JSON (JavaScript Object Notation)es un formato ligero de intercambio de datos muy presente en javascript aunque podemos ver que este tipo de formatos se puede extender a lenguajes como C, C++, C#, Java, Perl yPython.

Su principal características es las simplicidad que tenemos para leer y escribir información por parte de los des arrolladores y por parte de nuestras máquinas.

JSON esta formado por:

  • Una vector/colección formado por pares de nombre/valor. En algunos lenguajes este tipo de vector/colección se le conoce como array asociativo, diccionario o tabla hash.
  • Una lista ordenada de valores.

Por ejemplo vamos a diseñar un sistema en javascript para automatizar los mensajes de error de un formulario a través de JSON. Para ello vamos a crear las siguiente variable JSON:

var infPersonal={"edad" : "35",    "ciudad" : "Madrid, ES",    "genero" : "hombre"}

En el caso de que que queramos acceder a esa información solo tendriamos que hacer lo de la siguiente forma:

alert(infPresonal.edad);

Si os fijáis el acceso exactamente igual que cuando accedemos a un atributo publico en C# o Java.

Como en otros lenguajes realmente infPersonal es un array donde dentro podemos incluir cualquier otro tipo de objeto. Este tipo de formato nos va ayudar mucho para definir, sobre todo en javascript, constantes o elementos que vamos a utilizar para hacer nuestras páginas web dinámicas como representación de gráficas.

 

 

Novedades para el programador de Android en el pasado Google IO

Google IO 2013Mucha gente quedó algo defraudada con el pasado Google IO ya que no se presentó ninguna nueva versión de Android ni ningún terminal. Como ya dijimos, claramente fue una edición para profesionales y más aún para desarrolladores.

A pesar de esto, son muchas las novedades que se anunciaron y que aparecerán en próximas versiones.

Y precisamente una de las novedades es que Google está apostando por ir reduciendo el problema de la coexistencia de las diferentes versiones, para ello se va a potenciar el hacer el software aún más estratificado, añadiendo más valor e importancia a los diferentes apis que ya existen desde versiones antiguas (como la 2.2 Froyo). Con esto y haciendo más ligera la ejecución se busca mejorar la experiencia tanto en las nuevas versiones como en las versiones antiguas.

Con esto se consigue alargar la vida de los terminales más antiguos, permitiéndoles a la vez acceder a funcionalidades más recientes, dentro de sus escasos recursos. Por otro lado facilita la labor del desarrollador que no tiene que hacer diferentes versiones de las aplicaciones para cada nivel de API ni se le obliga a elegir una rango de Versiones a las que destinar su aplicación.

En cualquier caso, este no va a ser un cambio rápido, sino que será en el medio plazo cuando veamos los frutos de esta política.

Donde sí que se vieron cambios que casi con total seguridad veremos en la siguiente versión 4.3 será en los diferentes frentes:

  • Bluetooth 4.0: mayor ahorro energético, más posibilidades multimedia. Google ha decidido dejar de usar BlueZ (el stack bluetooth de linux) por un desarrollo propio BlueDroid, acelerando así la incorporación de nuevas funcionalidades
  • Mejor rendimiento gráfico: una firme apuesta por el uso de las GPU de varios cores y su utilización en la paralelización de los gráficos. También se han introducido mejoras en la manera en al que re renderizan los layouts. Hasta ahora el orden en el se incluían los Views eran determinante en la velocidad de repintado, ahora, se optiza este repitando dependiendo de los tipos de Views y la configuración de la GPU.
  • Nueva versión del acceso a la cámara que próximamente permitirá generar grabaciones continuas y que utilizará intensivamente la GPU para mejorar el rendimiento.

Ordenadores cuánticos a la vuelta de la esquina

cuantica

 

Un equipo de ingenieros australianos de la Universidad de Nueva Gales del Sur (UNSW) han descubierto como representar un bit mediante el núcleo de un átomo de silicio, lo que promete grandes mejoras para procesamiento  de datos en ultra poderosas computadoras cuánticas del futuro.

En el artículo publicado en ‘Nature’, los expertos describen cómo leyeron y escribieron información mediante la orientación magnética (spin) de un electrón en un átomo de fósforo integrado en un chip de silicio.

“Hemos adaptado la tecnología de resonancia magnética nuclear, comúnmente conocida por su aplicación en el análisis químico y la imaginería por resonancia magnética, para el control y lectura del espín nuclear de un átomo en tiempo real”, dice el Profesor Andrea Morello de la Escuela de Ingeniería Eléctrica y Telecomunicaciones en UNSW.

El núcleo de un átomo de fósforo es un imán muy débil, que puede apuntar en dos sentidos naturales, ya sea “arriba” o “abajo”. En el  extraño mundo cuántico, el imán puede existir en dos estados al mismo tiempo – una característica conocida como superposición cuántica.

Las posiciones naturales son equivalentes al “cero” y “uno” de un código binario, tal como se utiliza en los ordenadores clásicos. En este experimento, los investigadores controlaron la dirección del núcleo, en efecto, “escribir” un valor en su espín, y luego “leer” el valor de salida – convirtiendo el núcleo en un cubit en  funcionamiento.

“Logramos una fidelidad de lectura del 99,8 %, lo que establece un nuevo punto de referencia para la exactitud de cubit en dispositivos de estado sólido”, dice el profesor Andrew  Dzurak, quien también es director del Fondo Nacional de fabricación australiana en UNSW, donde se hicieron dispositivos.

La precisión de los cubits de espín nuclear del equipo de la UNSW hace que muchos lo consideren como el mejor bit cuántico actual – un solo átomo en una trampa electromagnética dentro de una cámara de vacío. El desarrollo de esta tecnología conocida como “trampa de iones” fue galardonado con el Premio Nobel 2012 de Física.

Fuente: Actualidad Informática

Abierto plazo matriculación Ciclos FP de Grado Superior de Informática

Ya se encuentra abierto el plazo de matrícula para el curso 2013/14  para los ciclos de Grado Superior de Informática de imparte el Instituto FOC, en concreto:

– Administración de Sistemas Informáticos en Red

– Desarrollo de Aplicaciones Multiplataforma

Desde el año 2004 el  Instituto FOC ofrece la nueva modalidad de enseñanza reglada on-line  que permite acceder a la Formación Profesional Específica con la ventaja del sistema on-line, que permite al alumno seguir  el curso a su ritmo y sin horarios.

Esta titulación oficial junto con otras certificaciones informáticas profesionales (Microsoft, Cisco, Linux LPI) incluidas en el curso,  ayudarán al alumno/a en su desarrollo profesional y laboral,  valiéndose de numerosos contenidos prácticos y apoyado en todo momentro por un equipo de docentes especializados en la formación a distancia,

Además de la doble titulación los ciclos incluyen otros aspectosa a tener en cuenta como la descarga de software original Microsoft y la realización de clases on-line en directo.

Más información en: www.foc.es

 

Mejora del Centro de Desarrollo de Microsoft

Desde la página de GenBetaDev nos anunciaron el pasado 19 de Mayo la  nueva imagen del Centro de Desarrollo de Microsoft.

En ella destacan la nueva división de los desarrollos en cuatro bloques:

Además de renovar la imagen de la web también han ampliado la documentación disponibles para los desarrolladores según el nivel de conocimientos.

Como novedad destacable es la incorporación de herramientas para desarrollo para los dispositivos iOS.

Nuevo entorno de desarrollo para Android: Android Studio

Este pasado Google I/O ha estado marcado por las noticias para desarrolladores.

Parece que Google ha optado por separar en dos actos distintos las noticias para usuarios normales y para un público más técnico.

Hasta el pasado, en todos los Google I/O se habían presentado nuevas versiones de Android y terminales. En esta ocasión cuando se le preguntó al presentador del acto por noticias de Android para el gran público, la respuesta fue de que de eso se hablaría después.

Sí que han sido muchas las noticias para público profesional. La mayoría relacionadas con diferentes APIs de servicios de Google.

Android Studio

Una de las noticias que más ha llamado la atención ha sido la presentación de Android Studio, un nuevo entorno de desarrollo para Android. Hasta ahora las primeras críticas de los programadores más profesionales están siendo bastante buenas, aunque hay que dejar claro que se trata de una versión alpha con un número de versión de 0.1 (hay que recordar que Google tradicionalmente etiqueta sus productos con versiones muy bajas aunque el estado de su desarrollo sea moderadamente avanzado).

Aún así muchos programadores aseguran haber migrado su desarrollo (lo cual nos hace dudar de su profesionalidad, ningún profesional pasa su entorno de producción a uno nuevo calificado como alfa).

La instalación no puede ser mas sencilla:

  • Descargamos el la versión correspondiente (disponible desde el principio para Windows, Mac OS y Linux)
  • Hacemos doble clic y seguimos los pasos del instalador. En caso de existir problemas (en Windows 7 y 8 se están detectando), normalmente se solucionan estableciendo adecuadamente la variable JDK_HOME al directorio donde está instalado Java (Mi Equipo>Propiedades>Propiedades avanzadas>Pestaña Avanzada>Variables de entorno)

A partir de aquí, para crear un proyecto basta con seleccionar New Project o si queremos importar un proyecto previamente desarrollado con Eclipse tendremos que usar la opción de exportar previamente (incorporada en la última versión de ADT)

Mis primeras impresiones es que realmente sorprende para ser una versión alfa. Por citar un ejemplo en la parte de control de código encontramos 5 tipos  de repositorios distintos, por supuesto git, github, svn ….

Próximamente veremos cómo hacer nuestro primer proyecto.

 

ARM, la ‘navaja suiza’ de los procesadores

 

arm

ARM (Advanced RISC Machine) nació como una arquitectura para uso en ordenadores y dispositivos embebidos. En la actualidad se ha ampliado enormemente los dispositivos en los que se integra: se utilizan en teléfonos y tabletas, por supuesto, en reproductores y grabadores de vídeo (DVD, Blu-Ray, etc.), videoconsolas portátiles o incluso en modems y routers de comunicación. Pero también en televisores, frigoríficos, lavadoras o lavavajillas, en teléfonos DECT o incluso en coches. Los aspiradores robot e incluso juguetes como Lego Mindstorms NXT utilizan un procesador ARM. Además, ARM también se usa como chips en microcontroladores de gestión de dispositivos, como por ejemplo un disco duro tradicional o un SSD.

En Wikipedia podemos encontrar una amplia lista que con las arquitecturas y los núcleos que han existido a lo largo de la historia de ARM, desde la primera ARMv1 (núcleo ARM1) hasta la actual ARMv7 (núcleos Cortex-A, Cortex-M y Cortex-R) o incluso la próxima arquitectura ARMv8 (con los Cortex-A50) que ya ha sido diseñada y cuyos primeros productos se esperan para el 2013.

ARM no es solo un procesador, es un tipo de arquitectura, en la que también otros fabricantes han creado sus procesadores basándose en ARM, como por ejemplo Qualcomm (y sus ARMv7 Snapdragon, modelos Scorpion y Krait), NVidia (Tegra en todas sus vertientes), Apple (ARMv7 en los últimos A6 y A6x) o Samsung (y sus Exynos, hasta ahora todos basados también en ARMv7).

qualcomm

Una de las principales características de ARM es que utiliza relativamente pocos transistores en comparación con arquitecturas. Esto le permite ofrecer un rendimiento aceptable con un consumo energético muy bajo, y con lo que además hache que fabricar un procesador ARM sea también notablemente más barato.

Fuente: Xataka

Formación Profesional en Europa

Un 47% de los europeos se decanta por la Formación Profesional después de sus estudios obligatorios, pero solamente el 27% de los jóvenes de entre 15 y 24 años la recomendaría a sus coetáneos, lo que indica que la FP aún no cuenta con una imagen positiva.

 En España y Portugal, el porcentaje de jóvenes que se decanta por la FP es sólo el 24%, la tasa más baja de Europa, seguida de Malta (27%) y muy lejos de países como Países Bajos (76%) , Eslovaquia (70%) o República Checa (66%).

Estos datos los ha hecho públicos la Comisión Europea y proceden del informe Eurobarómetro sobre las “Actitudes frente a la educación y la formación profesionales”. La Comisaria Europea de Educación, Cultura, Multilingüismo y Juventud, Androulla Vassiliou, ha señalado que “invertir en la educación y en la Formación Profesional es también uno de los mejores modos de luchar contra el desempleo juvenil. Si creamos una Formación Profesional de alta calidad daremos un gran impulso al desarrollo personal de los jóvenes y les permitiremos adquirir el tipo de competencias específicas que los empresarios necesitan”.

Vassiliou también señaló que hay que “seguir mejorando la orientación profesional y mejorar la comunicación con los jóvenes, para que sean conscientes de la elevada demanda de profesionales cualificados”.

Cuando se les pregunta a los encuestados sobre qué imagen se tiene de la Formación Profesional en su país, un 71% responde que positiva, mientras que el 23% la considera negativa. El mayor porcentaje de respuestas negativas se ha registrado en Malta (92%), seguida de Finlandia (90%) y Austria (88%), al contrario que en Eslovenia y Países Bajos (50%).

Aunque existen diferencias entre un país y otro, la media de matriculaciones ha ido disminuyendo cada año. En 2010, los ministros de Educación de 33 países europeos, junto con representantes de la patronal, los sindicatos y la Comisión Europea aprobaron el “Comunicado de Brujas”, diversas medidas destinadas a hacer la FP más accesible y adecuada a las necesidades del mercado de trabajo, con objetivos comunes hasta 2020 y un plan de acción hasta 2014.

Por otro lado, el programa Leonardo da Vinci ha conseguido que más de 600.0000 jóvenes europeos desde 1995 hayan tenido prácticas en el extranjero. También ha financiado 110.000 intercambios de formadores y más de 3.000 proyectos dedicados a modernizar el sector.

Fuente:  empleojoven.es

¿Que es y para que nos sirven los TDD?

Un TDD (Test Driven Development) es una técnica de desarrollo software en la que primero pensamos en las pruebas que vamos a realizar y luego aplicar técnicas de refactorizamos para tener un código limpio.

Para elaborar estas pruebas lo que realizas primero son las pruebas unitarias que vamos a realizar y a continuación, en base a estas pruebas, realizamos la implementación de nuestro código. Después aplicamos la refactorización a nuestro código para tener una implementación lo mas limpia posible.

Vamos a realizar un ejemplo concreto para ver como aplicamos esta técnica

Supongamos que tenemos una aplicación donde estamos implementando la gestión de nuestro carrito de la compra. En nuestro carrito de la compra vamos a poder insertar cualquier articulo, y por cada articulo que nosotros añadamos se deberá actualizar el importe total. Tendremos en cuenta que si introducimos un elemento que ya se encuentra en  nuestro carrito lo que realizaremos es un incremento de las unidades.

Partimos de las siguientes clases:

La clase Item que nos va a servir para almacenar los distintos elementos del carrito

class Item
    {

        private String _nombre;

        private Decimal _pUnidad;

        private int _ctdad;

        public String Nombre
        {
            get { return _nombre; }
            set { _nombre = value; }
        }

        public Decimal PrecioUnidad
        {
            get { return _pUnidad; }
            set { _pUnidad = value; }
        }

        public int Ctdad
        {
            get { return _ctdad; }
            set { _ctdad = value; }
        }

        public Item()
        {
            Nombre = «»;
            Ctdad = 0;
            PrecioUnidad = 0;
        }

        public Item(String _n, int ctdad, Decimal precio)
        {
            Nombre = _n;
            Ctdad = ctdad;
            PrecioUnidad = precio;
        }

    }

Y la clase Carrito para gestionar los elementos que vamos añadiendo al carrito:

 class Carrito
    {

        private List<Item> carrito;
        private Decimal _precTotal;        

        public Carrito(){
            carrito = new List<Item>();
            _precTotal = 0;            
        }
        
    }

 

Si seguimos las normas del TDD primero vamos a diseñar las pruebas unitarias para los distintos requisitos que vamos a cumplir:

1.- Comprobar que el importe total es de 0 cuando no tenemos ningún elemento en la cesta.

La prueba unitaria que nosotros tendremos que realizar es la siguiente:

[TestMethod]
 public void CestaCompraVacia()
 {
 // Comprobamos
 Carrito c = new Carrito();
 Assert.AreEqual(0, c.ItemsCarrito); // Comprobamos que hay cero elementos
 Assert.AreEqual(true, c.carritoVacio); // Comprobamos que el precio es 0
 }

Ahora en nuestro código dentro de nuestra clase que gestiona el carrito completaremos su código con los siguientes propiedades:

public bool carritoVacio
 {
 get { return carrito.Count == 0; }
 }

public int ItemsCarrito
{
get { return carrito.Count; }
}

2.- Comprobamos que cuando insertamos un elemento se actualiza el precio total y el número de artículos

En este caso la prueba unitaria a realizar seria la siguiente:

public void Añadir1ItemCesta()
 {
 // Comprobamos
 Carrito c = new Carrito();
 c.AddItem(new Item("CD's Virgenes",1,5));
 Assert.AreEqual(5, c.PrecTotal);
 Assert.AreEqual(1, c.ItemsCarrito);
 }

Como el método de ItemsCarrito ya lo tenemos implementando como resultado de la prueba anterior lo único que tenemos que realizar es la propiedad para obtener el precio total

public Decimal PrecTotal
 {
 get { return _precTotal; }
 set { _precTotal = value; }
 }

y el método para añadir elementos al carrito:

public void AddItem(Item it)
{
_precTotal += it.PrecioUnidad * it.Ctdad;
carrito.Add(it);         
}

 

3.- Comprobamos que cuando insertamos varios elementos se actualiza el precio total y el número de artículos teniendo en cuenta que podemos incluir elementos repetidos.

        [TestMethod]
        public void AñadirVariosItemCesta()
        {
            // Comprobamos 
            Carrito c = new Carrito();
            c.AddItem(new Item("CD's Virgenes", 1, 5));
            c.AddItem(new Item("CD's Virgenes", 1, 5));
            c.AddItem(new Item("CD's Virgenes", 1, 5));
            c.AddItem(new Item("DVD's Virgenes", 1, 10));
            Assert.AreEqual(25, c.PrecTotal);
            Assert.AreEqual(2, c.ItemsCarrito);
        }

Si observamos, aparentemente podemos ejecutar la prueba para ya que tenemos todos los métodos y propiedades a utilizar correctamente. Al ejecutar la prueba veremos que esta prueba no la supera ya que cada item que hemos añadido los considera como un objeto nuevo. Por lo que tendremos que modificar el método AddItem para que compruebe si el item existe y en caso de que existe modificar la cantidad almacenada.

Para ello vamos a incorporar un método de busqueda de productos y modifcaremos el método AddItem de la siguiente forma:

private Item estaItem(String nombre)
        {
            
            foreach (Item it in carrito){
                if (it.Nombre == nombre)
                    return it;
            }
            return null;
        }

        public void AddItem(Item it)
        {
            Item encontrado = estaItem(it.Nombre);
            if (encontrado!=null)
            {
                encontrado.Ctdad += it.Ctdad;
            }
            else
            {                
                carrito.Add(it);
            }
            _precTotal += it.PrecioUnidad * it.Ctdad;
        }

Podemos observar que con esta técnica de desarrollo tenemos un control mas seguro sobre el cumplimiento de los requisitos que si primero desarrollamos y luego realizamos las pruebas.

 

Próximamente nuevo estándar de acceso seguro a la web: HSTS

En breve se establecerá como estándar (a día de hoy es una propuesta) el nuevo protocolo HSTS (HTTP Strict Transport Security protocol), se trata como su propio nombre indica, de un nuevo protocolo de acceso a los contenidos en la web que se unirá a los ya existente HTTP y HTTPS, poniendo especial énfasis en la seguridad.

El acceso a una página web utilizando el protocolo HTTPS (versión segura de HTTP) nos garantiza que se utilizan certificados para autentificar la identidad del servidor y  comunicaciones TLS para garantizar la encriptación de los datos.  No obstante existía la posibilidad de incluir enlaces no seguros ( de tipo HTTP),  los cuales  podían dar una falsa sensación de seguridad al usuario al estar en una página previamente autentificada con certificados.

El protocolo HSTS viene a rellenar este hueco: cuando accedamos a una página bajo este protocolo, no se podrá acceder desde su contenido a enlaces que no sean seguros, es decir no se podrán incluir enlaces de tipo HTTP.  En el caso de incluirlos, sus URLs se convertirán directamente a HTTPS y en el caso de que estas URL no soporten el estándar de seguridad, por ejemplo porque su certificado no está avalado por una autoridad certificadora reconocida, se mostrará un aviso al usuario sin acceder a su contenido.

Dos son los casos más habituales que se resolverán con este protocolo:

  • El caso de páginas seguras pero que incluían contenido de terceros y por tanto se podían introducir enlaces inseguros.
  • Las páginas que utilizaban un página de login insegura (usando HTTP) para una vez logado el usuario pasar a una conexión segura (HTTPS). Si usan HSTS , tendrán que utilizar un contexto seguro desde el principio.

Esperemos que este protocolo llegue a mejorar la seguridad de la red.

 

La Universidad de York investiga discos duros de hasta 200GBps

laser

 

Hoy en día, nos encontramos discos duros con interfaz SATA III, con tasas de transferencia de hasta 600 MBps. Pero esto puede ser ridículo si tenemos en cuenta las últimas investigaciones de la Universidad de York, donde han descubierto un nuevo método de grabación mediante impulsos de calor.

Los investigadores han descubierto una tecnología que permitiría una velocidad de transferencia de datos de unos 200GBps, lo que conseguiríamos multiplicar por 300 la tasa de transferencia del actual SATA III, y además se conseguirían discos duros con 10 veces más capacidad que los actuales.

Hasta ahora los discos duros han sido normalmente magnéticos y se escribían y leían por medio de campos magnéticos. Esta nueva tecnología se basa en un nuevo sistema de grabación de la información mediante pulsos de calor, pulsos ultra cortos que se realizan mediante un láser, y que haría cambiar la orientación magnética norte/sur de parejas de nanopartículas magnéticas, que representarían los unos y ceros.

Además, según los científicos de este descubrimiento, aseguran que es el método más eficiente en cuanto a consumo energético, ya que no solo se limitaría a un consumo ultrareducido, sino que con esta tecnología se puede aprovechar el calor desprendido por otros componentes para su funcionamiento.

Fuente: http://www.softmixed.com/podrian-crearse-discos-duros-de-hasta-200gbps-n-801

Acceso a la Universidad desde la FP

Los Técnicos Superiores de Formación Profesional tienen acceso directo a todas las enseñanzas universitarias de Grado.

La nota de admisión se obtiene haciendo la media entre los módulos del ciclo formativo.15983_wpm_lowres

En el caso de aquellos estudios en los que la demanda de plazas sea superior a la oferta (concurrencia competitiva), las solicitudes se ordenarán en función de la nota de acceso de cada estudiante.

En caso de empate, tendrá acceso preferente la persona cuyo título de Formación Profesional de grado superior esté adscrito a la misma rama de conocimiento que los estudios universitarios que se quieran cursar.

En el caso de querer mejorar la nota media de admisión, los titulados superiores de Formación Profesional pueden presentarse a la Parte Específica de la PAU.

¿En qué consiste esta parte específica? Consta de exámenes sobre materias de modalidad.
El alumno decidirá cuántos ejercicios realiza, hasta un máximo de 4. Pero sólo contarán las calificaciones de dos materias que estén relacionadas con la rama del conocimiento de la titulación a la que desea acceder el alumno, por lo que lo más recomendable es que se presente a exámenes de materias que realmente domine. Es decir que puede examinarse de dos, tres o cuatro materias y se le puntuarán las dos en las que haya obtenido una calificación mayor.  Las notas de la fase específica caducan a los 2 años.

La fórmula para obtener la nota de acceso en este caso es la siguiente:

Nota Media del ciclo formativo + Materia 1 + Materia 2

Materia 1, Materia 2: las dos materias en las que haya obtenido una calificación más alta entre las realizadas en la parte específica x 0,1 ó 0,2 (según cada Universidad)

 

Jolt Awards – Premios de la Insdustría del Software

Desde hace un tiempo la revista Dr.Dobb’s  se encarga de premiar a la industria del software con los premios denominados los Jolt Awards

Para este año 2013 podemos destacar los premiados en:

La mejor librería para la programación  este año se  ha llevado el premio «Infragistics NetAdvantage Ultimate 2012 Volume 2»  esta libreria es una recopilación de componentes windows, abarcando desde el diseño de windwos forms a xaml e incluyendo soporte para controles para dispositivos moviles. Para el desarrollo para dispositivos moviles vemos que soporta para la programación en Windows Phone, Android e IOS.

Ademas incorporar una herramienta de diseño rápido de interfaz a través de la cual nos a ser muy útil para el diseño de prototipos para el usuario final.

Entra las librerías que han quedado finalistas nos encontramos las siguientes:

En el apartado de mejor herramienta para la codificación se lo ha llevado el software «JetBrains IntelliJ IDEA 12.0 Ultimate» Esta versión destaca por incluir  una interfaz de usuario para el diseño de aplicaciones Android, un compilador más rápido, soporte para las nuevas funcionalidades de Java anunciadas. Ademas de incluir soporte para las distintas herramientas de control de versiones incorporando la integración con GIT y Team Foundation Server 2012.

Entra las herramientas de codificación que han quedado finalistas nos encontramos las siguientes:

Por último, para terminar el articulo de hoy solamente me queda felicitar a los ganadores de este año.

Novedades sobre programación en Android

androidVarias novedades en el mundo de la programación para Android:

  • Google presenta nuevas guías de diseño de aplicaciones para tablets. Se trata de facilitar a los desarrolladores el adaptar sus aplicaciones al formato de los tablets, consiguiendo así que mejorar la  experiencia de usuario en los grandes formatos, una de las mayores críticas que reciben siempre Android.
  • Se ha incluido en Google Play la posibilidad de adjuntar imágenes de las aplicaciones en tablets de 7 y de 10.  De esta forma se sabrá qué aplicaciones están mejor adaptadas a estos formatos.
  • Disponibles las traducciones de los tutoriales de Android en español. Un conocido portal los ha traducido facilitando así el acceso a muchos usuarios que no dominan la lengua de Shakespeare.
  • Del 15 al 17 de Mayo se celebrará el Google I/O Extended donde se rumorea que se presentará Android 4.3 y algunos dispositivos Android de Motorola, empresa ahora propiedad de Google.

DDR4 próximamente en el mercado

En el CES de Las Vegas de 2013 ya se han podido ver las primeras demostraciones de la nueva generación de memorias RAM (DDR4) para ordenador que sustituirán a las actuales DDR3.

Las primeras demostraciones de DDR4 utilizaba modulos de 4 GB a 2133Mhz, que serán los más básicos de la familia DDR4, pero se espera que alcancen 4266Mhz de velocidad y con menor voltaje que las actuales DDR3. Además  la capacidad de estas memorias serán modulos de 4GB, 8GB y 16GB. Al igual que en diseños anteriores, el formato será el mismo aunque físicamente algo diferentes para no poder utilizarse en los mismos slots de memoria de las otras especificaciones.

La fecha de lanzamiento al mercado de las memorias DDR4 es todavía una incognita, pero se espera que a principios de 2014 podamos encontrarlas ya en el mercado junto con tecnología compatible.

GTD para estudiantes

GTD (Getting Things Done) es un método de gestión y organización de actividades creado por David Allen centrado en el almacenamiento, seguimiento y revisión de todas las tareas.  La clave está en la organización y revisión sistemática de la planificación, que permite llevar un control del trabajo a realizar.
Allen sostiene que nuestra memoria es limitada y no podemos recordar todo lo que hay que hacer en cada momento, por lo que es necesario un lugar donde almacenar todas esas ideas y eliminar el estrés  de pensar continuamente en el trabajo inacabado.
La productividad personal tiene mucho que ver con  averiguar cómo poder controlar todo este trabajo inacabado para que no nos genere estrés, de una forma que, a su vez, sea lo suficientemente creíble para nuestra mente como para que ésta acepte dejar de ser ella quien gestiona nuestros compromisos.
El método GTD  permite además enfocar con claridad esta organización, puedes ver tu mundo desde los ángulos óptimos y puedes tomar decisiones con confianza sobre que hacer (y no hacer) en cada momento.
Los principios esenciales de GTD son los siguientes:

Recopilar

Es fundamental acostumbrarse a utilizar una Bandeja de Entrada para capturar todo lo que va surgiendo día a día: deberes, tareas, trabajos en grupo, eventos deportivos, hacer la colada, libros a leer… Un libreta para anotar cosas en cualquier sitio y una bandeja física para papeles, apuntes y documentos son suficientes para empezar. Ya revisarás estas cosas más tarde. De momento, el objetivo es recopilarlo todo.

Piensa que añadir sólo la fecha de presentación de un trabajo o la de un examen a un calendario es una invitación a la procrastinación, a no hacer nada hasta que esa fecha esté tan cerca que tendrás que pasar tres noches sin apenas dormir para poder cumplir.

Procesar

Procesa tu Bandeja de Entrada al menos una vez al día. Define un proyecto para todo aquello que requiera más de una acción—como estudiar para un exámen o hacer un trabajo—. Si algo tiene una fecha límite, añade el recordatorio correspondiente a la Agenda, pero define también una primera próxima acción para hacer cuanto antes.

Define acciones muy específicas. La acción «Estudiar para un examen»  también invita a procrastinar, porque es genérica. Puedes descomponerla, por ejemplo, en  «Reviasr los apuntes», «Repasar las clases», «Resumir la unidad 1″…. etc. Así tendrás una visión más clara del alcance del proyecto y podrás empezar a afrontarlo con tiempo suficiente.

Tendrás un buen número de actividades de carácter periódico, del tipo  «Clases de programación los martes a las 18:00». Busca un sistema que te permita definir este tipo de tareas en tu Agenda de forma sencilla y automatizada.

Organizar

Una buena organización te permitirá finalizar más tareas en menos tiempo y ser más productivo. Asigna a cada acción el contexto en que debe realizarse: clase, casa, biblioteca, laboratorio, ordenador… Puedes usar una hoja de papel para cada contexto, en la que vas anotando las acciones correspondientes.

Clasifica todo el material de referencia correctamente, por cursos, asignaturas y temarios. Organízalo físicamente en carpetas que puedas reconocer al instante, y tener a mano en el momento en que las necesites.

Revisar

Revisar todo el sistema con la frecuencia adecuada es otro hábito fundamental para que esto funcione. Debes revisar cada día todas las tareas inevitables, que son las que están en tu Agenda.

Un vez a la semana—el Domingo es el día perfecto—revisa tu Agenda para los próximos días y comprueba cómo va cada uno de tus proyectos abiertos. Añade nuevas acciones a la lista de Próximas Acciones si es necesario y define fechas límite de compromiso personal para las acciones de los proyectos que se te estén yendo de las manos.

Hacer

Cada día debes centrarte primero en las acciones obligatorias de la Agenda. El resto del tiempo, coge la lista de acciones que deben hacerse en el contexto en que te encuentras y escoge entre ellas la que te parece más importante en ese momento.

Fuente: http://facilethings.com/blog/es/students

¿Qué lenguaje de programación (Java, C# y PHP) es mejor para aprender a programar?

Desde hace tiempo llevo escuchando la discusión sobre que lenguaje es mejor para aprender a programar. Las opciones que mas escogidas son Java, C# y PHP.

Algunos de los argumentos que nos puede convencer para elegir java son los siguientes:

  1. Java es fácil de aprender
  2. Java es un lenguaje orientado a la programación orientada a objetos
  3. Java tiene un API muy potente que nos proporciona , entre otras, el pode realizar operaciones de Entrada y Salida (I/O), de networking, manejo para parsear documentos XML  y  interacción con las base de datos.
  4. Herramientas de desarrollo muy potentes y gratuitas como Eclipse y NetBeans
  5. Una amplia librerías de código Open Source como pueden ser Hibernate, Spring, ….
  6. Java tiene comunidad detrás amplia que nos proporciona soporte para cualquier problema que tengamos
  7. Java es Gratis.

Lo argumentos que nos pueden decantarnos por c# son los siguientes:

  1. La utilización de Delegados (Delegates) y Eventos (Events). Su manejo es algo mas sencillo de utilizar que el uso de los listener en java para la gestión de los eventos.
  2. No dispone de una descripción de las excepciones anidadas. En java cada vez que se produce una excepción se nos informa de todo el detalle que se ha visto involucrado en la propagación de la excepción. En C# esto no es así, simplemente se nos indica la excepción que se produce y la causa. Este nos facilita a la hora de depurar errores.
  3. El uso de propiedades nos hace el identificar mejor que son los atributos internos de una clase de los elementos, a nivel público, con los que se interactua con la clase.
  4. Es mas flexible a la hora de organizar el código. En C# no tenemos que seguir la jerarquía de paquetes a la hora de crear nuestras clase ni tener que definir un archivo por clase o interfaz. C# en este aspecto nos da total libertada para que organicemos nuestro código acorde con nuestro desarrollo.
  5. C# es un lenguaje orientado a la programación orientada a objetos

Y por último veamos las razones por las que elegir o en defensa para aprender a programar en PHP:

  1. Podemos trabajar conjuntamente con HTML para el diseño de nuestras aplicaciones.
  2. Es muy intuitivo de aprender.
  3. Desde la versión PHP 5 ya es considerado como un lenguaje orientado a la programación orientada a objetos.
  4. Disponemos de Frameworks para la elaboración de aplicaciones webs bastantes potentes
  5. La gran mayoría de aplicaciones web se basan en PHP (WordPress, Joomla, Drupal, Magento, …)

Para aprender a programar sin duda debemos escoger Java por la rectitud a la hora de aplicar las normas de la programación orientada a objetos.

Ahora para el desarrollo de una aplicación nos deberemos ajustar siempre a los requisitos que nos imponga el cliente.

 

Desarrollando juegos multiplataforma con libGDX

La semana pasada hablábamos sobre un curso de programación de videojuegos y esta semana, continuando con el tema vamos a presentar una librería que nos va a facilitar enormemente el desarrollo de juegos. Aún más, al tratarse de un librería multiplataforma nos va a permitir portar nuestro juego a windows, linux, android, HML5, iOS (requiere monotouch que es de pago), Mac OS X,…

Se trata de libGDX, una librería opensource. Podemos encontrar una gran comunidad detrás lo que nos garantiza que será sencillo encontrar quién nos ayude a solucionar nuestro problemas cuando estos lleguen.

Nos va a permitir usar de forma sencilla gráficos, sonido, animaciones, mapas y escenas 2D, cálculos de álgebra y geometría ya implementados, OpenGL, … y api de 3D en desarrollo. Podéis consultar las características en este enlace.

Se programa en Java, y existe abundante documentación