¿No sabes programar? Ya es hora de que aprendas

Mires donde mires, el software está en todas partes Si los ordenadores ya están en todas partes, nada hacer pensar que no lo estarán en el futuro. ¿Quieres dedicarte a la agricultura? ¿al entretenimiento? ¿prefieres trabajar en una fábrica? ¿mejor en una oficina? Sea lo que sea, tendrás que interactuar con un ordenador (o una máquina que contenga uno) y, dentro de él, habrá un software programado por alguien. Nuestro mundo es cada vez más dependiente de las aplicaciones software. Así pues, entender cómo se crea el software (es decir, saber programar) te permite entender y usar mejor (casi) todo lo que te rodea. De igual manera que nos interesamos por la composición de los alimentos que consumimos (p.ej. cuántas calorías tiene, cuál es el origen de los ingredientes, etc.), ¿por qué no interesarnos también por cómo está hecha una app o una web? Tener este interés y conocimiento nos permitiría ser exigentes y críticos con todo el software con el que interactuamos, al igual que lo somos con los alimentos que comemos. Hoy en día, la mayoría de las personas se limita a aceptar el software con el que interactúa, no se plantea si está bien o no, si puede ser mejor o no, etc. Esta aceptación ciega seguramente se deba a la falta de un aprendizaje en esta materia. Un deporte llamado programar Programar es como practicar un deporte o como tocar un instrumento. Para dominarlo debes entrenar/ensayar. Así pues, cuantas más horas le dediques, mejor serás. Como se suele decir, a programar se aprende programando. Y como cualquier deporte o instrumento, se puede practicar desde temprana...

Las Smart Cities han llegado para quedarse

Después de varios años en los que el concepto Smart ligado a las ciudades no ha estado exento de debate, tanto por las connotaciones que podían hacer pensar que antes las ciudades “no eran tan inteligentes”, como porque la tecnología se abría camino entre ciudad y ciudadanos sin tener referentes de cómo hacerlo, cada vez más se apuesta por avanzar hacia la Ciudad Inteligente o Smart City, también conocida por alguna otra nomenclatura como Ciudad Digital o Smart Citizens. Lo mejor del caso es que todos podemos participar de una u otra forma en este “nuevo” contexto, ya sea de forma activa, siendo parte del cambio, o bien beneficiándonos de los resultados obtenidos de diferentes acciones realizadas, porque todo ahorro (p. ej. uso de iluminación más eficiente), mejora (p.ej. relación del gobierno local con la ciudadanía) o cambio (p. ej. integración de la tecnología en el paisaje urbano) nos afecta. Quizás no debería de extrañarnos esta evolución, especialmente si tenemos en cuenta que grandes verticales como Energía, Movilidad o Residuos son temas complejos que afectan a una ciudad de forma importante y, en general, a todo el territorio. Ejemplos de la importancia que las administraciones públicas locales dan a este hecho se traduce en colaboraciones, compartición de buenas prácticas, etc. Por ejemplo, de una forma más “local” se podría encontrar el soporte que da la Diputación de Barcelona a diferentes municipios, yendo más allá de la ciudad y pasándose a hablar de regiones inteligentes o Smart Region. Otro ejemplo que abarca una región geográfica más “amplia” sería la Red Española de Ciudades Inteligentes (RECI), que según su propia definición ha...

Frameworks de JavaScript en el lado del cliente en 2017

En un post anterior ya hablamos sobre la evolución del desarrollo web del lado del cliente. Tal como anunciamos entonces, hoy es el turno de los frameworks del lado del cliente. Los frameworks no son nuevos en el desarrollo de aplicaciones de gran envergadura. De hecho, la mayoría de lenguajes consolidados tienen una gran variedad de frameworks. Por ejemplo en el mundo Java son ampliamente conocidos Java Server Faces (JSF), Struts o Spring; en PHP encontramos Laravel, Yii o Symfony. Las principales ventajas que aportan los frameworks son las siguientes: Desarrollo rápido. Crear un proyecto desde cero suele conllevar un elevado coste en tiempo. Por eso, los frameworks proporcionan la estructura del proyecto y un conjunto de bibliotecas preconfiguradas que ahorran tiempo en el comienzo de los nuevos proyectos. Muchas tareas son delegadas a los frameworks permitiendo a los desarrolladores centrarse exclusivamente en las funcionalidades de su software. Incorporación/Rotación de nuevos miembros a los equipos de desarrollo. Uno de los mayores problemas en el desarrollo de software es la rotación de miembros en los equipos de desarrollo, puesto que la incorporación de un nuevo miembro conlleva un coste en aprender la arquitectura del proyecto. Esto es minimizado utilizando un framework, ya que éste obliga a adaptarse a una arquitectura concreta, de modo que cualquier persona que conozca el framework podrá incorporarse rápidamente al desarrollo de cualquier aplicación basada en ella (puesto que conoce la manera de trabajar del framework), minimizando el coste para la empresa. Seguridad/Rendimiento. Los frameworks suelen ser creados y mantenidos por equipos de desarrollo diferentes y externos a nuestra organización. Esto permite que esta organización esté...

Evolución del desarrollo web del lado del cliente

En los últimos años ha habido una gran demanda de desarrolladores de software debido a la inclusión de los sistemas informáticos en prácticamente todo los aspectos del día a día de las personas. A las clásicas demandas de tecnologías tales como C, C++, JAVA, .NET, SQL han surgido un nuevo elenco de nuevas tecnologías tales como JavaScript, ECMAScript, nodeJS, AngularJS, React, Angular 2.0+, VueJS, ember, gulp, webpack, TDD, BDD, CI, CD, etc. El nuevo conjunto de tecnologías que se solicitan como puestos de trabajo pertenecen al desarrollo de aplicaciones web. Una de las mayores críticas de los profesionales del sector (Ingenieros y desarrolladores en general) es el rápido cambio de tecnologías que sufre el desarrollo Web en el lado del cliente (o front-end). Historia del lenguaje de programación JavaScript Antes de poder afrontar los últimos avances en el desarrollo de aplicaciones Web hay que comprender por qué y cómo se ha llegado a esta situación, y para ello se va a presentar la evolución que ha sufrido el desarrollo del lado del cliente hasta llegar a nuestros días (Julio 2017). Hay que retomarse a los orígenes de la Web cuando existían principalmente dos navegadores Web populares para los usuarios: Internet Explorer y Netscape. Internet Explorer hasta hace poco ha sido el navegador por excelencia de la compañía Microsoft y es sobradamente conocido por la mayoría de los lectores, hoy en día ha sido sustituido por Microsoft Edge. Menos conocido es el navegador Netscape, el cual fue el primero que plantó cara al dominio de Internet Explorer y del cual deriva hoy en día Mozilla Firefox. Para el desarrollo de scripts...

¿Cómo está hoy la enseñanza de la programación en la infancia?

Ya hemos hablado en este blog del aprendizaje de la programación en la infancia. En este artículo vamos a hacer un poco de historia de la enseñanza de la programación en la escuela en España, después daremos una visión general de la situación actual, tanto en España como en Europa, y acabaremos centrándonos en lo que pasa en Cataluña, como botón de muestra de cuál es la realidad. La enseñanza de la programación en las escuelas no es algo nuevo. A mediados de los 80, el proyecto Atenea del gobierno español dotaba a los centros escolares de equipos y programas para introducir la informática en la educación. Entre estos programas estaban los lenguajes de programación Logo y Basic. En aquellos momentos muchas escuelas aprovecharon los equipos y los lenguajes que tenían disponibles para dar clases de programación a sus alumnos. Sin embargo, en los 90 se puso en duda la utilidad de la programación en el aula y en años posteriores se introdujo la ofimática y se dejó de lado la programación. Esta situación se mantuvo así hasta bien entrada la primera década del 2000, cuando la aparición de programas como Scratch (2005) y la popularización de la expresión pensamiento computacional (2006) volvieron a dar valor al aprendizaje de la programación en la escuela. En Europa, la European Schoolnet, una institución compuesta por los 31 ministerios de educación de la Unión Europea, publicó un informe en el 20141 donde puede leerse que la programación formaba parte del currículum de 12 países: Bulgaria, Chipre, República Checa, Dinamarca, Estonia, Grecia, Irlanda, Italia, Lituania, Polonia, Portugal y Reino Unido. La mayoría de estos países incluyen...

Una nueva contribución encaminada a facilitar la gestión de nodos multiprotocolo de Guifi.net

(Trobareu versió en català més avall) Durante el primer semestre de 2017, Eloi Carbó, uno de los estudiantes de TFM del Máster Universitario en Software Libre de la UOC, ha desarrollado un proyecto de investigación y desarrollo de software en el contexto de las redes abiertas en general y de Guifi.net en particular. Esta red implementa diferentes protocolos y paradigmas técnicos para interconectar usuarios situados en tramos de red diferentes. Uno de los problemas que tienen que afrontar los administradores es la correcta integración entre estos tramos de red con diferentes tecnologías de comunicación. El proyecto “LEDE Firmware optimization for wired deployments using BGP and BMX6 for routing by enhancing and extending Bird Daemon’s configuration and UI integration” pretende abordar dos problemas fundamentales: En primer lugar, depurar y completar con nuevas funcionalidades las herramientas disponibles para configurar de forma gráfica, mediante una interfaz web, determinados nodos de red que emplean BGP, uno de los protocolos que hacen posible las comunicaciones entre proveedores de acceso a Internet. Esto permitiría a los administradores gestionar la configuración de los diferentes protocolos sin necesidad de acceder a línea de comandos, cosa que generalmente puede ser un impedimento para administradores menos experimentados. Además, con esta interfaz se consigue esconder la complejidad de configuración bajo una interfaz amigable, eliminando la necesidad de aprender la sintaxis específica de la herramienta utilizada (Bird Daemon). En segundo lugar, investigar cuál sería la mejor manera de modificar el código fuente de uno de los programas empleados a tal efecto (Bird Daemon), para añadir integración con nuevas herramientas de supervisión y control de las comunicaciones y así obtener información de...