slide1

Alt1040. Noticias acerca de Internet, diseño, música, cine, opiniones, weblogs y medios

Es uno de los weblogs de tecnología más seguidos de la blogosfera hispana.

slide2

Bitelia. Blog de software, internet y servicios web

Software y aplicaciones para mejorar tu vida, guías de uso, trucos, listas, noticias y todo sobre tecnología.

slide3

Xataka. Publicación de noticias sobre gadgets y tecnología.

Últimas tecnologías en electrónica de consumo y novedades tecnológicas en móviles, tablets, informática, etc.

slide4

Wwwhatsnew. Aplicaciones, marketing y noticias en la web.

Servicios que os pueden ser útiles para dibujar, gestionar tareas, hacer amigos, encontrar restaurantes...

slide5

Fayerwayer. Discusiones y opiniones de lo ultimo en tecnología y gadgets

Con secciones dedicadas a Internet, Software o Redes Sociales es un referente a nivel de tecnología en español.

5 de octubre de 2016

Llega la tercera edición del Tech Experience Conference


¿Cansado de asistir a eventos en los que solo ofrecen un ponente y un buen catering? Hoy os quiero presentar un evento totalmente diferente a lo que hayáis asistido antes, la tercera edición del Tech Experience Conference.


Se trata de un evento dónde harás networking con otros profesionales a través de la tecnología y la gamificación durante una jornada de conferencias sobre innovación tecnológica, marketing digital y neuromarketing.

Algunos de los ponentes confirmados son Noelia Arroyo, directora de transformación digital de Grupo Prisa; Victor Ronco, director de marketing digital de Danone, y Jorge Jusdado, director de marketing de Philips.

Para fortalecer el networking entre los asistentes, la organización del evento ha preparado varias actividades de gamificación, por ejemplo: los asistentes al llegar al evento recibirán una carta de póker. El juego consistirá en encontrar quien tiene una carta igual que la tuya entre los asistentes y si lo consigues tendrás un masaje gratis!

Las Startups también tendrán un papel importante durante el evento.
Habrá un Startup Pitch Competition, pero no en un formato convencional con un jurado como estamos acostumbrados a ver, sino que, tú como asistente tendrás un papel importante. ¿Cómo? Se cogerán 30 personas aleatorias de la audiencia para participar en un experimento de neuromarketing en el que se les pondrán unos guantes especiales para medir sus emociones cuando están escuchando las Startups, y la ganadora será la que haya provocado más emociones positivas!

Sin duda, un evento donde el asistente será partícipe de todas las actividades del evento y tendrá una oportunidad única de conectar con el resto de asistentes y ponentes para hacer negocios.

Fecha del evento: 10 de noviembre en la Antigua Fábrica Estrella Damm de Barcelona.

Más información del evento en www.techexperienceconference.com/barcelona





A través de mi blog estoy sorteando 5 entradas general pass para el evento. Sólo tienes que rellenar éste formulario para participar. Mucha suerte!




Si no puede visualizar el formulario, acceda a la siguiente página:
https://docs.google.com/forms/d/e/1FAIpQLSeISAfsTLFJZK7_SUlBLwqAMWO9fEiVXCdeKEY2jApvYSYOpw/


26 de septiembre de 2016

¿Vivir para siempre? Google lo cree posible

¿Puede Google vencer a la muerte?
Ésto es lo que se preguntó la mítica revista Time en una portada de 2013, cuando el gigante de los buscadores anunció su intención de plantar cara al envejecimiento, a través del proyecto Calico, su compañía biotecnológica.


Y es que está convencido de que podemos vivir más y mejor, por eso está invirtiendo miles de millones dólares en ciencia, con el objetivo de revolucionar el mundo de la medicina.

Hace unos días la empresa de Sillicon Valley hizo pública su alianza con Sanofi, una farmacéutica francesa, para luchar contra la diabetes, una dolencia que afecta a 400 millones de personas en todo el mundo.
Las dos empresas han unido fuerzas para trabajar en pequeños aparatos electrónicos que permitan recoger y almacenar gran cantidad de datos, así como en software que utilicen esa información para encontrar nuevas fórmulas contra la enfermedad. Un mal que alcanzará los 592 millones de afectados en el año 2035, según la Federación internacional de la diabetes.



Este no es, ni mucho menos, el primer paso que ha dado Google en su lucha contra el desorden. Hace dos años presentó sus lentillas inteligentes con la intención de hacer el día a día de los diabéticos más sencillo.

Con el paso de los años, los científicos han investigado diferentes fluidos corporales que permitiesen conocer la glucosa en sangre -y evitar así a los pacientes la molestia de tener que pincharse varias veces al día- sin demasiado éxito.

Y como al buscador no le gusta quedarse atrás se puso las pilas e ideó en sus laboratorios semisecretos sus famosas lentillas, que constan de chips y sensores minúsculos y de una antena más fina que un pelo humano, capaces de medir los niveles de azúcar en sangre una vez por segundo.



Sin embargo, este no es el anuncio más sorprendente que ha hecho Google desde que su vocación científica comenzó.

El neurocientífico Bill Maris, ex presidente de Google Ventures -brazo inversor de Alphabet, que es la empresa matriz de Google-, dejó a todos boquiabiertos el año pasado cuando anunció que es posible vivir 500 años.

Su objetivo: "hacer que en 20 años la quimioterapia parezca algo primitivo", para esta tarea Google invirtió en 2015 más de 400 millones de dólares.

Aunque acapare toda la atención, Google no es la única empresa tecnológica con ganas de revolucionar el panorama científico.
Intel, uno de los grandes en Sillicon Valley, anunció hace unos días su unión con la farmacéutica Teva para mejorar la calidad de vida de los que padecen la grave enfermedad de Huntington.
Ahora, las dos empresas trabajan juntas para lanzar un wearable (tecnología ponible) que mide el progreso de la enfermedad.
Los pacientes deberán llevar un reloj inteligente y utilizar un móvil que incorpora una tecnología de detección, para medir de forma continua el funcionamiento del cuerpo y los movimientos.
Los datos recogidos por los dispositivos serán transmitidos de forma inalámbrica a la nube, y almacenados en una plataforma creada por Intel, para evaluar la gravedad de los problemas motrices.



Una nueva ola de weareables está por llegar, Apple, Samsung, están desarrollando potentes aplicaciones relacionadas con la salud.

Gracias a la constante investigación, las empresas tecnológicas están consiguiendo marcar la diferencia, como es el caso de Dell en su lucha contra el cáncer pediátrico.
Hace más de una década que la compañía tecnológica acumula datos en su plataforma de análisis genómico, lo que le permitió donar todo aquello que había acumulado en la nube a la investigación contra el neuroblastoma, un tipo de tumor muy raro, y consiguió así aumentar la capacidad de secuenciación y análisis del TGEN (siglas en inglés del Instituto de Investigación Genómica de Arizona) en un 1.200%.



Con la explosión de las nuevas tecnologías -cada vez más rápidas, más potentes y con más capacidad- se abre la puerta a un mundo de avances sin precedentes, que parece mostrar que el futuro de los descubrimientos médicos y científicos dependerá, en gran medida, de nuestra capacidad de procesar y analizar una cantidad masiva de datos (Big Data).

Las tecnológicas, que tienen un papel protagonista en esta tarea, ya han emprendido el camino para que un día, no tan lejano, todo esto sea posible.

* Artículo cortesía de Beatriz Díaz *


Beatriz Díaz Pérez


Redactora y corresponsal en Agencia EFE Linkedin




18 de julio de 2016

¿En qué idioma hablará el Internet de las Cosas?

Un término relativamente nuevo ha llegado para quedarse entre nosotros durante mucho, muchísimo tiempo es el "IoT", "Internet of Things" o, en perfecto castellano "Internet de las Cosas".
¿No te suena? En el artículo de hoy vamos a aclarar qué significa y qué trascendencia tendrá en nuestras vidas este paso tecnológico, pero también dedicaremos unas líneas a intentar dilucidar qué implicaciones tendrá el IoT en algunos temas tan importantes como son la traducción web, la desaparición de ciertos idiomas en Internet, el papel de las empresas españolas en este nuevo escenario tecnológico, etc.

Qué es el Internet de las Cosas


El término IoT significa, simplemente, la conexión digital de los objetos que utilizamos a diario con la red de redes, con Internet.
Parece un término nuevo, pero fue acuñado el último año del siglo pasado por una eminencia del MIT, Kevin Ashton, actual CEO de una de las empresas privadas con mayor crecimiento en los Estados Unidos desde su creación en 2010: Onnit Labs.

A finales de los 90, Ashton y otros investigadores ya veían venir el proceso lógico de la conexión de personas a través de Internet:

La conexión de las cosas con la red de forma autónoma e independiente para construir una sociedad digital en la que los objetos utilizaran el Big Data para facilitar la vida del ser humano.


Explicado de esta forma, parece que el Internet de las Cosas es pura ciencia ficción, pero muchos hogares y consumidores ya disfrutan de aparatos y objetos que intercambian información con la nube de forma autónoma e independiente al ser humano:

  • frigoríficos que detectan la presencia o ausencia de algunos alimentos determinados y hacen un pedido al supermercado.
  • zapatillas de deporte que recogen el número de kilómetros que recorre su propietario y los incorporan a una base de datos de rendimiento físico.
  • inodoros inteligentes que analizan la orina y alertan al centro médico si detectan alguna anomalía.
  • ...
La lista de dispositivos y capacidades es tan amplia como fascinante.
Ahora mismo estamos casi empezando, pero al parecer, de aquí a cinco años existirán en el mundo cerca de 50.000 millones de objetos conectados de forma autónoma a Internet, desde bombillas a ropa de deporte, pasando por frigoríficos, lavadoras, televisiones, sistemas de calefacción, etc.


Una revolución digital que globalizará aún más esta sociedad nuestra de cada día. Y esta reflexión nos lleva a otras no menos importantes:

¿La popularización del IoT significará en la práctica que desaparecerá nuestro idioma?

¿Cómo afectará el IoT a la traducción web actual?

¿En qué idioma se comunicarán los dispositivos entre sí y con la nube? ¿Sólo en inglés?.

El IoT hoy en día


A pesar de que el IoT "nació" el siglo pasado, todavía queda muchísimo por hacer y por decidir, entre ellas, el idioma en el que tendrá que redactarse la programación de los objetos para que se conecten digitalmente a Internet.
Actualmente los informáticos están utilizando los lenguajes de programación con los que se sienten más familiarizados como, por ejemplo Java, Javascript, C, C++, Python.

Pero la complejidad de la programación, lo ambicioso del proyecto y, por qué no decirlo, los miles de trillones de euros y dólares que generará la explotación del Internet de las Cosas ha provocado que tres pesos pesados del sector estén invirtiendo en desarrollar nuevos lenguajes de programación creados ex profeso para optimizar el IoT: Apple, la Fundación Mozilla y Alphabet, más conocida como Google Inc.

A pesar de que Apple se adelantara en su tiempo al desarrollo de dispositivos IoT ha sido la antigua Google la que está asombrando a propios y extraños sobre todo por la velocidad con la que está haciendo realidad sus proyectos e investigaciones.

Alphabet eligió el marco de la Feria Tecnológica más importante de Estados Unidos para dar el "bombazo IoT" del año: la CES 2016 de Las Vegas.
Allí, Google presentó a "Wave" y "Brillo", sus dos nuevas plataformas de comunicaciones para productos creados exclusivamente para el Internet de las Cosas.

¿Un par de ejemplos?: Kwikset, la cerradura sin llaves fabricada por Kwikset Corporation que funciona con móviles Android que se comunican gracias a la plataforma Wave o el sistema completo de control domótico (calefacción, alarma, etc.,) desarrollado por Harman utilizando los protocolos de comunicación de Brillo.

El IoT y los idiomas


Como te imaginarás leyendo el párrafo anterior, hoy por hoy podemos decir que el IoT habla sobre todo un idioma: el inglés.

¿Qué ocurre en España? ¿Hay desarrolladores y programadores IoT que estén pensando en español? ¿El tejido empresarial está apostando por esta interesante vía de presente y de futuro? Los datos que hemos encontrado nos hacen pensar que no.
De hecho, España está a remolque de esta tecnología incluso desde el punto de vista de la fabricación o la implantación de dispositivos IoT en las empresas.

Según un informe publicado el año pasado por la Consultora Accenture (https://newsroom.accenture.com/news/industrial-internet-of-things-will-boost-economic-growth-but-greater-government-and-business-action-needed-to-fulfill-its-potential-finds-accenture.htm) un 60% de las empresas de nuestro país ni siquiera se han planteado la posibilidad de que invertir en dispositivos IoT pueda revertir positivamente en sus cuentas de resultados.
De hecho, apenas un 4% de los gerentes y directivos consultados creen sinceramente que el Internet de las Cosas pueda aportarles algún beneficio, ni económico, ni de imagen de marca, ni de consolidación de reputación social corporativa.

Un dato curioso para terminar:

- existe un proyecto llamado "Observatorio del Internet de las Cosas" (http://iot-spain.com/), cofinanciado por el Ministerio de Industria, Energía y Turismo y el Gobierno Vasco en el marco del Plan Avanza 2. En su portal web se supone que tendríamos que encontrar todo tipo de información sobre el IoT en nuestro país, pero la última entrada de su web data del 9 de febrero del 2016.

Con este panorama: ¿qué lenguaje crees que hablará el Internet de las Cosas en el futuro? ¿El español?

* Artículo cortesía de Marta Barrero *



Marta Barrero


Responsable de Comunicación en Okodia | Grupo traductor

BIO

Me apasiona la tecnología, bailar y todo lo que tenga que ver con los idiomas. Sé que es una combinación rara, pero si lo piensas bien, puedes hacer las tres cosas a la vez. Si no fuera multitarea, no sería yo..

Twitter: @okodia
Facebook: facebook.com/okodia
Google Plus: plus.google.com/+Okodia
Linkedin: http://www.linkedin.com/company/okodia





13 de junio de 2016

Gestión de proyectos software con Git y Github

Desde su nacimiento en 2005, Git ha evolucionado y madurado para ser fácil de usar, es tremendamente rápido, completamente distribuido, muy eficiente con grandes proyectos como el núcleo de Linux (manejo eficiente de velocidad y tamaño de los datos) y tiene un increíble sistema de ramificación (branching) para desarrollo no lineal (miles de ramas paralelas).

GIT

GIT es un gestor de proyectos software desarrollado por Linus Torwalds para Linux y diseñado para desarrollo distribuido.

Cada desarrollador trabaja de forma independiente en su propio repositorio y sincroniza el repositorio con otro cuando lo necesita.
Uno de los repositorios puede utilizarse como repositorio de referencia.

Tutorial Web y eBook: http://git-scm.com/book/es

Proyecto, directorio y versión


El directorio del proyecto

  • Un proyecto se suele gestionar en un directorio (o carpeta): el directorio contiene todos los ficheros del proyecto.
  • Explorador de ficheros: muestra el contenido de un directorio gráficamente.
    Hacer clic sobre un objetos gráfico ejecuta un comando predefinido.
  • Terminal de comandos: ejecuta comandos en directorio de trabajo.
    El directorio de trabajo asociado es la base de las rutas (paths) relativas y los objetos se identifican con rutas (paths) absolutas o relativas.
Historia de un proyecto

  • Historia de un proyecto: es la historia de cambios en el directorio del proyecto.
  • Versión (Commit): punto de la historia del proyecto que puede ser restaurado (reconstruido).
  • Se debe consolidar versión en los puntos del desarrollo que deseemos poder volver atrás en el futuro.
  • Versiones frecuentes facilitan el mantenimiento y la legibilidad de un programa.
Árbol de versiones

  • La rama principal del proyecto se denomina master: es la historia de cambios en el directorio del proyecto.
    Una rama suele realizar un desarrollo separado.
  • Las ramas se suelen integrar en master, una vez acabadas.
Repositorio y Versión

  • Un repositorio git es un "directorio donde gestionar versiones".
    Se puede guardar o restaurar versiones. Las versiones se guardan en el directorio oculto .git
  • Versión (commit): directorio (proyecto) congelado en un momento determinado, incluyendo todos sus ficheros y subdirectorios.
Identificador de versión (SHA1)

  • Cada versión generada por GIT se identifica con un número aleatorio único (clave SHA1).
    Ejemplo: 973751d21c4a71f13a2e729ccf77f3a960885682.
  • GIT permite equipos de desarrollo distribuidos: los repositorios se pueden clonar sin problemas (ninguna versión en ningún otro repositorio utilizará el mismo identificador).
Colaboración y Firma

  • GIT esta pensado para trabajar en grupo: toda operación va firmada por su autor.
    Al configurar GIT se da el nombre y email del autor.
  • Un usuario puede copiar o clonar otro repositorio y continuar el desarrollo por su cuenta sobre la copia.
  • Dos repositorios pueden volver a sincronizarse.

Configurar GIT

# El comando "git config" permite manejar opciones de configuración. 

# Las opciones configuradas pueden afectar a distintos ámbitos (proyectos): 
#    - Para todos los proyectos en el sistema.  
#       Usar opción --system. La configuración se guarda en /etc/gitconfig
#    - Para todos los proyectos del usuario.  
#       Usar opción --global. La configuración se guarda en ~/.gitconfig
#    - Sólo para el proyecto actual.  
#       Sin opción. La configuración se guarda en .git/config 

# Consultar todas las opciones existentes: git help config

# Para firmar correctamente contribuciones y versiones debemos configurar:
$ git config --global user.name "Pedro Ramirez" 
$ git config --global user.email pramirez@dit.upm.es

# Consultar el valor de todas las opciones configuradas:
$ git config --list  
user.name=Pedro Ramirez 
user.email=pramirez@dit.upm.es
color.ui=true 

# Consultar el valor de una opción:
$ git config user.name  
Pedro Ramirez

Ayuda

# Ayuda en línea de comandos: 

$ git help          # Muestra lista con los comandos existentes 

$ git help comando  # Ayuda sobre comando especificado 

$git help add       # Ayuda sobre el comando add

$ git add --help    # Equivalente a anterior
$ man git-add       # Equivalente a anterior


# Manual de referencia, chuletas, videos, otros enlaces: 

http://git-scm.com/doc

http://ndpsoftware.com/git-cheatsheet.html 

https://na1.salesforce.com/help/doc/en/salesforce_git_developer_cheatsheet.pdf 

GITHUB

GITHUB es el portal de repositorios GIT: https://github.com

Ofrece un enfoque social y colaborativo: red social para compartir proyectos software.

Los repositorios públicos son gratis, los privados de pago: cuenta con más de 20M (Linux, Eclipse, jQuery, RoR, etc)

Gestión de organizaciones y proyectos software:

  • Soporta equipos de desarrollo distribuidos, abiertos o privados.
  • Uso y acceso muy sencillo a versiones, tareas, bugs, ...
  • Herramientas para desktop (MAC y Windows)
  • Incluye muy buenos tutoriales.

GITHUB: registro y ayuda

#   Lo primero es crear una cuenta y una vez creada, debemos seguir sus instrucciones para:

#  1) Configurar y conectar con GITHUB nuestro GIT local:

https://help.github.com/articles/set-up-git/

#  2) Instrucciones para crear y clonar repositorios:

https://help.github.com/articles/create-a-repo
 
#  3) Instrucciones para colaborar en proyectos software distribuidos:

https://help.github.com/articles/be-social/


Subir un repositorio local a GITHUB

# Para subir un repositorio local a GITHUB debemos:
 
#  1) Crear un repositorio vacío en GITHUB con New Repository

#  2) Configurar repo. remoto origin con repositorio vacío

$ git remote add origin https://github.com/pepe/proy1

#  3) Hacer push de rama master local a origin

$ git push -u origin master # -u "tracking reference"

Fork: Copiar un proyecto en GITHUB

# Fork permite copiar un repositorio (proyecto) en nuestra cuenta en GITHUB
# 
#  -> Una vez copiado (clonado) tenemos acceso a él y podemos evolucionarlo

Contribuir a un proyecto GITHUB

# La forma habitual de contribuir a un proyecto en GITHUB es seguir estos 4 pasos: 

#  1) Crear una copia del repositorio original en GITHUB con "Fork" en la cuenta propia 

#  2) Clonar la rama creada en nuestra cuenta en nuestro ordenador local 

p1> git clone https://github.com/pepe/proy1

#  3) Modificar el proyecto local, realizar commit y "push" a nuestra copia en GITHUB 

p1> ...........
p1> git add ... 
p1> git commit -m '.........'
p1> git push origin master 

#  4) Hacer "Pull Request" desde nuestra cuenta en GITHUB pidiendo al administrador del 
# repositorio original que introduzca nuestros cambios 

GITHUB App for MAC & for Windows


GITHUB App es una herramienta gráfica muy eficaz para gestionar proyectos git localmente en el PC. Solo está soportada para MAC y para Windows.

  • Permite ver y gestionar el directorio de trabajo del proyecto y los cambios realizados,
  • Ver las versiones de un proyecto (historia) y los cambios realizados en cada versión.
  • Ver y gestionar las ramas de un proyecto y su sincronización con repositorios remotos.
Descargar (e instalar) GITHUB para MAC: https://mac.github.com
Descargar (e instalar) GITHUB para Windows: https://windows.github.com


Extracto del curso "Desarrollo de servicios en la nube con HTML5, Javascript y node.js" impartido a través de la plataforma online MiríadaX.
El curso incluye también el despliegue de servicios de servidor en la nube e introduce técnicas básicas de ingeniería software.



6 de junio de 2016

Alojar páginas web con Google Drive no será posible a partir del 31 de agosto de 2016

Google lo lleva anunciando desde hace cerca de un año: "la función de alojamiento de páginas web desde Google Drive dejará de estar disponible a patir de agosto de 2016".
En su blog oficial, explica las razones y ofrece la posibilidad de compra de un dominio a través de su plataforma Google Domains.


Llevo haciendo uso de este servicio desde que Google lo anunció y me ha sido de mucha utilidad para compartir de forma pública algunos de los casos prácticos que expongo en los artículos de mi blog.

Y como no es conveniente dejar los deberes para el último momento, me he puesto manos a la obra y he migrado todos estos proyectos a otro repositorio de carácter público.

Como ya indicaba en el post de principios de 2014 ¿sabías que Google Drive permite alojar páginas web?:
"para la publicación de un sitio web lo ideal es disponer de hosting y dominio propios pero para compartir ficheros o páginas estáticas a modo de ejemplos, existen numerosos servicios gratuitos que cubren perfectamente esta funcionalidad".

Finalmente me he decantado por el servicio de alojamiento de repositorios de software GitHub porque cubre sobradamente mis necesidades.

Algunas razones de peso son:

  • GitHub es totalmente gratuito para alojar código open source, siendo estos repositorios de visibilidad pública.
    No obstante, cuenta con un plan de precios para los repositorios privados.
  • es el servicio elegido por proyectos de software libre como Linux, Eclipse, jQuery, reddit, Sparkle, curl, Ruby on Rails, node.js, ClickToFlash, Erlang/OTP, CakePHP, Redis, y otros muchos.
  • algunas de las grandes empresas de Internet, como Facebook, alojan ahí sus desarrollos públicos, tales como el SDK, librerías, ejemplos, etc.
  • dispone de un visor de código mediante el cual, a través del navegador, podremos consultar en un instante el contenido de un determinado fichero

¿cómo configurar Git?

Documentación de usuario: Set Up Git

Artículos que se han visto afectados por este cambio y cuyos ficheros públicos ya apuntan al nuevo directorio GitHub (ordenados de más reciente a más antiguo):

  • Como crear un índice para Blogger personalizable por Título o Categorías
    <div id="all-post" class="all-post"></div>
    <script>
    var conf = {
     sortBy:   'orderlabel',  // forma en que se muestran las artículos publicados
     lastPost: 10,            // últimos post (10) a los que les pongo una marca
     date:     1,             // 0:no aparece la fecha de publicación | 1:mostramos la fecha de publicación
     newPost: 'Nuevo!!',      // texto o marca que aparece en los últimos artículos
     newtab:   1              // 0:abre link en la misma ventana | 1:abre link en ventana nueva
    }
    </script>
    <script src="https://cdn.jsdelivr.net/gh/jmacuna/index-blogger@master/index-blogger.js"></script>
    <script src="[URL DE TU BLOG]/feeds/posts/default?max-results=9999&alt=json-in-script&callback=loadtoc"></script>
    

  • Calendario con todos los post publicados en Blogger
    <div id='calendar'><strong>Loading...</strong></div>
    <script>
    var conf = {
     bgcolor: '#1e4e7e', 
     newtab:  1,         // 0:abre link en la misma ventana | 1:abre link en ventana nueva
     tooltip: true,      // false:title por defecto | true:tooltip con css3
     start:   1,         // 0:Domingo | 1:Lunes
     days:    "Lunes|Martes|Miercoles|Jueves|Viernes|Sabado|Domingo",
     months:  "Enero|Febrero|Marzo|Abril|Mayo|Junio|Julio|Agosto|Septiembre|Octubre|Noviembre|Diciembre",
     date:    "Ir al mes actual"
    }
    </script>
    <script src='https://cdn.jsdelivr.net/gh/jmacuna/calendar-widget@master/create-calendar.js' type='text/javascript'></script>
    <script src='https://www.tecnoblog.guru/feeds/posts/summary?max-results=1000&alt=json-in-script&orderby=published&callback=createCalendar' type='text/javascript'></script>
    
  • Gadget para aumentar tu número de suscriptores - Blogger
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/jmacuna/subscription-feedburner@master/style.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.js"></script>
    <script>
    idleTime = 0;
    $(document).ready(function(){
     $limit = 5; //seconds
     if ($.cookie('test_status') != '1') {
      function timerIncrement() {
       idleTime = idleTime + 1;
       if (idleTime > $limit) {
        $('html, body').css('overflow', 'hidden');
        $('.subs-popup ').fadeIn('slow');
        idleTime = 0;
       }
      }
      // Increment the idle time counter every second.
      var idleInterval = setInterval(timerIncrement, 1000); // 1 second
      // Zero the idle timer on mouse movement.
      $(this).mousemove(function (e) {
       idleTime = 0;
      });
      $(this).keypress(function (e) {
       idleTime = 0;
      });
      $.cookie('test_status', '1', { expires: 30 });
     }
     $('.email-close').click(function() {
      $('.subs-popup').fadeOut('slow');
      $('html, body').css('overflow', 'auto');
      $limit = 9999;
     });
    });
    </script>
    
    <div class="subs-popup">
     <div id="newsletter">
      <div class="email-close">X</div>
      <div class="newsletter-wrap">
       <h4>Suscríbete y recibe<br/>contenido exclusivo</h4>
       <p>Las últimas novedades del blog<br/>directamente a tu email.<br/><br/></p>
       <form action="http://feedburner.google.com/fb/a/mailverify?loc=es-ES&uri=[FEED_DE_TU_BLOG]" method="post" onsubmit="$('.email-close').click();window.open('about:blank', 'popupwindow', 'scrollbars=yes,width=550,height=520');return true" target="popupwindow" novalidate="">
        <input name="uri" type="hidden" value="bloggertrix"/>
        <input name="loc" type="hidden" value="en_ES"/>
        <input type="email" value="" name="email" placeholder="Tu e-mail aqui..." required=""/><br/><br/>
        <input type="submit" value="Suscribirme" class="button-popup">
       </form>
      </div>
     </div>
    </div>
    
  • Comentarios con desplazamiento de texto para Blogger (efecto marquee)
    <table class="comments">
    <tr><td class="title">Últimos comentarios</td></tr>
    <tr><td><div class="scroller">
    <script type="text/javascript">
    var numComments  = 10,
        showAvatar  = true,
        avatarSize  = 40,
        roundAvatar = true,
        characters  = 40,
        showMorelink = false,
        moreLinktext = "More »",
        defaultAvatar  = "http://i.imgur.com/3QqaBeS.png",
        hideCredits = true;
    </script>
    <script src="https://cdn.jsdelivr.net/gh/jmacuna/comments-avatar@master/w2b_recent_comments_with_avatars.js"></script>
    <script src="[URL DE TU BLOG]/feeds/comments/default?alt=json&callback=w2b_recent_comments"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script src="http://www.jqueryscript.net/demo/jQuery-Plugin-For-Infinite-Any-Content-Scroller-scrollForever/scrollForever.js"></script>
    </div></td></tr>
    </table>
    <script type="text/javascript">$(document).ready(function({$(".scroller").scrollForever({dir:"top",container:"ul",inner:"li",speed:1000,delayTime:10,continuous:true,num:1});});</script>
    
Todos aquellos lectores del blog que utilicen alguno de los gadgets que comparto, deberán realizar ajustes para que las url públicas estén alojadas en https://cdn.jsdelivr.net en lugar de https://www.googledrive.com/host.


25 de abril de 2016

Metodologías ágiles para gestionar los proyectos y negocios del s. XXI

Cada vez son más los proyectos que siguen una metodología ágil (Scrum, XP, Crystal Clear, etc.).
Su crecimiento ha sido tal que este tipo de gestión es una práctica ya común en multitud de empresas y equipos de desarrollo software.
Los profesionales de la tecnología y del desarrollo software de hoy están obligados a conocer cómo se gestionan proyectos ágiles.


¿Qué es el desarrollo ágil de software?

El desarrollo ágil de software se refiere a métodos de ingeniería del software basados en el desarrollo iterativo e incremental, donde los requisitos y soluciones evolucionan con el tiempo según la necesidad del proyecto.
Así el trabajo es realizado mediante la colaboración de equipos auto-organizados y multidisciplinarios, inmersos en un proceso compartido de toma de decisiones a corto plazo.

Cada iteración del ciclo de vida incluye: planificación, análisis de requisitos, diseño, codificación, pruebas y documentación. Teniendo gran importancia el concepto de "Finalizado" (Done), ya que el objetivo de cada iteración no es agregar toda la funcionalidad para justificar el lanzamiento del producto al mercado, sino incrementar el valor por medio de "software que funciona" (sin errores). Fuente: Wikipedia

Construir software no es igual que construir un puente, un edificio o un coche.
Y ésto es así porque en ingeniería software, a diferencia de otras ingenierías tradicionales como la arquitectura, la industria o la ingeniería civil, no se puede separar tan claramente la fase de diseño de la de construcción.
Las ingenierías clásicas precisan mucho de un diseño previo a la construcción, el disponer de los planos del arquitecto siempre antes de empezar el edificio.
Los planos para construir son precisos y pocas veces varían, ya que la mayoría de los diseños de las ingenierías clásicas, arquitecturas, etc., pueden hacer un mayor uso de las matemáticas o la física.
Por tanto, existen dos actividades claramente diferenciadas: el diseño y la construcción.

Desde sus orígenes, la ingeniería del software intentó perseverantemente emular a las ingenierías clásicas.
Tener una fase de diseño muy separada de la codificación o lo que es lo mismo, que la codificación no comenzase hasta que terminase el diseño.
Que una vez que se hace un diseño éste no se modifique. De hecho, notaciones para "planos" como UML y ciclos de vida como el cascada puro (donde cada fase se hace una sola vez y no se pasa a la siguiente fase hasta que se termina la previa) nacieron con este objetivo.

En software, la experiencia nos dice que es muy difícil especificar los requisitos en una única y primera fase. Por la complejidad de muchas de las reglas de negocio que automatizamos cuando construimos software, es muy difícil saber qué software se quiere hasta que se trabaja en su implementación y se ven las primeras versiones o prototipos.

Otro aspecto a tener en cuenta es la diferente distribución de los costes del proyecto.

Por lo general, realizar un cambio en el producto final que construyen las ingenierías clásicas o la arquitectura es muy costoso en términos económicos.
Cambiar, por ejemplo, la posición de una columna en un edificio o realizar modificaciones a la estructura de un puente ya construido tiene un alto coste. Y de ahí que la arquitectura o las ingenierías clásicas pretendan lograr a toda costa diseños o planos de un alto nivel de detalle, que una vez que comience la fase de construcción no tengan que ser modificados.
Además, normalmente, en la arquitectura o en las ingenierías clásicas los costes de construir son muy elevados en comparación con los de diseñar. El coste del equipo de diseñadores es sustancialmente inferior al de la realización de la obra, del puente, edificio, etc.

Las anteriores pautas para costes no se comportan igual en el caso del software.
Por un lado, el software, por su naturaleza (y si se construye mínimamente bien), es más fácil de modificar. Cambiar líneas de código tiene menos impacto que cambiar los pilares de un edificio ya construido.
De ahí que existan numerosas propuestas que recomiendan construir rápido una versión software y modificarla evolutivamente (la técnica de refactorización trabaja sobre esta idea).
En software no existe esa división tan clara entre los costes del diseño y los de la construcción.

Diferenciar el cómo se construye software del cómo se construyen los productos físicos es uno de los pilares de las metodologías ágiles (M. Fowler, 2005).
Y es que en software, es frecuente que diseño y construcción muchas veces se solapen, y por ello se recomiende construir por iteraciones, por partes, y el uso de prototipos incrementales.

El ciclo de vida ágil es un ciclo de vida iterativo e incremental, con iteraciones cortas (semanas) y sin que dentro de cada iteración tenga porque haber fases lineales (tipo cascada).

Quizá el caso más popular es el de Scrum. Hace ya sus años, en el 85, y en la primera presentación oficial de Scrum, Ken Schwaber, uno de sus creadores, hablaba sobre el ciclo de vida de Scrum, y sus diferencias con los anteriores ciclos de vida.

Según comenta Ken Schwaber, el ciclo de vida en Cascada y el Espiral cierran el contexto y la entrega al inicio de un proyecto. La principal diferencia entre cascada, espiral e iterativo y los ciclos de vida ágiles, concretamente en Scrum, es que estos últimos asumen que el análisis, diseño, etc., de cada iteración o Sprint son impredecibles. Los Sprints, o iteraciones cortas, no son (o a priori no tienen porqué) lineales y son flexibles.
Pero cada metodología de las llamadas ágiles, FDD, Crystal, DSDM, XP, etc., matizará su ciclo de vida.

Un proyecto ágil lleva la iteración al extremo:

  • Se busca dividir las tareas del proyecto software en incrementos de una corta duración (según la metodología ágil, típicamente entre 1 y 4 semanas).
  • Cada iteración suele concluir con un prototipo operativo. Al final de cada incremento se obtiene un producto entregable que es revisado junto con el cliente, posibilitando la aparición de nuevos requisitos o la perfección de los existentes, reduciendo riesgos globales y permitiendo la adaptación rápida a los cambios.
Lo Principios Ágiles que diferencian un proceso ágil de uno tradicional son los siguientes:

  • La prioridad es satisfacer al cliente mediante entregas tempranas y continuas de software que le aporten valor.
  • Dar la bienvenida a los cambios. Se capturan los cambios para que el cliente tenga una ventaja competitiva.
  • Entregar frecuentemente software que funcione desde un par de semanas a un par de meses, con el menor intervalo de tiempo posible entre entregas.
  • La gente del negocio y los desarrolladores deben trabajar juntos a lo largo del proyecto.
  • Construir el proyecto en torno a individuos motivados. Darles el entorno y el apoyo que necesitan y confiar en ellos para conseguir finalizar el trabajo.
  • El diálogo cara a cara es el método más eficiente y efectivo para comunicar información dentro de un equipo de desarrollo.
  • El software que funciona es la medida fundamental de progreso.
  • Los procesos ágiles promueven un desarrollo sostenible. Los promotores, desarrolladores y usuarios deberían ser capaces de mantener una paz constante.
  • La atención continua a la calidad técnica y al buen diseño mejora la agilidad.
  • La simplicidad es esencial.
  • Las mejores arquitecturas, requisitos y diseños surgen de los equipos organizados por sí mismos.
  • En intervalos regulares, el equipo reflexiona respecto a cómo llegar a ser más efectivo, y según esto ajusta su comportamiento.






Extracto del curso "Agilidad y Lean. Gestionando los proyectos y negocios del s. XXI" impartido por Javier Garzás, profesor en la Universidad Rey Juan Carlos a través de la plataforma online MiríadaX

Certificado de participación: https://miriadax.net/files/10132/badge/66283a75-ef83-4738-915b-9a5a9244ed0f.pdf