¿Facebook podría comprar Opera Software?

Parece que Facebook podría comprar Opera Software.

Si se confirma además de darme una alegría :) , podría dar un vuelco al mercado de los navegadores y Opera podría entrar en competencia directa con Google y Microsoft.

Si estaba en los planes de Facebook tener un navegador, con la salida a bolsa se ha capitalizado bastante (16.000 millones de dólares según la fuente), y tiene liquidez suficiente para abordar la operación.

Auqnue Opera tiene una escasa presencia en los PCs si que está posicionado dentro de los dispositivos móviles.

El equipo responsable de Enyo abandona el proyecto de un WebOS libre y entra en Google

Parte del equipo encargado de Enyo ha abandonado la iniciativa para trabajar en Google, dejando a la plataforma abierta de aplicaciones en HTML5 de WebOS sin parte del equipo y su responsable original, Matt McNulty.

Las consecuencias aún no se pueden saber, pero es un obstáculo más para que se cumpla la agenda que planeaban en WebOS acerca de un relanzamiento del sistema programado para finales de este año.

WebOS nació mostrándose en dispositivos de HP como Hewlett Packard, pero la compañía terminó por abandonar la plataforma.

Se supone que los programadores que saltan del proyecto Enyo a Google trabajarán en los equipos de Android, ya que así mantendrían su rol original. Pero teniendo en cuenta que son expertos en HTML5 y la mayoría de servicios de Google se basan en la web, podrían ponerse a trabajar en cualquier cosa.

Por el momento, HP ya ha emitido un comunicado asegurando que la agenda de lanzamiento de WebOS se mantiene sin cambios.

Para saber más: http://www.theverge.com/2012/5/24/3042441/hp-enyo-google

Android vs Raspberry Pi

Como podéis ver en la imagen este dispositivo (MK802 PC) con aspecto de USB es en realidad un dispositivo Android:

Sus características son muy interesantes:

· Procesador Cortex-A8 de 1GHz.

· Sistema Operativo Android 4.0.

· 512 MB de RAM.

· 4 GB de almacenamiento interno (incluye ranura de tarjeta microSD).

· Capacidad de reproducir video a 1080p

· Salida HDMI

· Conectividad Wi-Fi.

· Soporta dual-boot (Android y Linux).

Y más interesante es aún su precio!!! 74 dólares sin gastos de envío (aceptan pre-orders).

¿Conseguirá desbancar a la Raspberry Pi que cuesta sólo 25$?

HTML 5 WebSockets to Enable Near Real-Time Applications

(Gracias Edu)

En este post nos cuentan un ejemplo del uso de WebSockets (con Atmosphere y Atmosphere JQuery Plugin) para pintar eventos RFID en tiempo real.

Esta misma funcionalidad la implementamos hace ya varios años con el increíble Jaxcent!!!

StatSCM y StatSVN

StatSCM es un plugin de Maven2 que genera información estadística sobre nuestro proyecto, como:

· Cómo crece nuestro código

· Quién está activamente trabajando en el proyecto

· Cuanto código aporta cada desarrollador

· Qué tags release se han hecho

· Qué ficheros se modifican más a menudo

StatSVN adicionalmente ofrece una vista gráfica de nuestro respositorio:

Para usarlo tenéis que añadir este repositorio en Maven:

 <pluginRepositories>
 <pluginRepository>
 <id>stat-scm-sourceforge</id>
 <url>http://stat-scm.sourceforge.net/maven2</url>
 </pluginRepository>
 <pluginRepository>
 <id>stat-scm-sourceforge-snapshot</id>
 <url>http://stat-scm.sourceforge.net/maven2-snapshots</url>
 </pluginRepository>
 </pluginRepositories>

Y añadir este stat-scm report en la lista de reports:

 <reporting>
 <plugins>
 ...
 <plugin>
 <groupId>net.sf</groupId>
 <artifactId>stat-scm</artifactId>
 </plugin> 
 ...
 </plugins>
 </reporting> 

Temas fundamentales en RUP

Aunque aplicables en general a cualquier proceso de desarrollo :)

  • Obtener correctamente los requisitos:
    • Hay que obtenerlos correctamente a través del modelado de casos de uso, el análisis, etc.
    • El mejor comienzo del Proceso Unificado está guiado por los Casos de Uso.
    • No hay que olvidar que los casos de uso son la ligazón entre todos los modelos del Proceso, por lo que un modelo de casos de uso inadecuado repercutirá en todo el proceso.
  • Obtener correctamente la arquitectura:
    • Cualquier proyecto de tamaño considerable tiene que estar centrado en la arquitectura.
    • La arquitectura permite la partición del sistema y el que estas particiones colaboren entre sí.
    • La arquitectura solidifica las interfaces entre las particiones, permitiendo que haya equipos trabajando de forma independiente a cada lado de la interfaz, y manteniéndola correcta.
    • La vigilancia de la arquitectura controla el proyecto desde un punto de vista técnico.
  • Usar componentes:
    • Los firmes interfaces de la arquitectura (así como las interfaces estándar de grupos estándar), son uno de los elementos que hacen posible el desarrollo basado en componentes.
    • Los bloques de construcción reutilizables reducen los costes de desarrollo, ponen los productos en el mercado de forma más rápida y mejoran la calidad.
  • Pensar y comunicarse en UML:
    • El desarrollo de software es algo más que escribir código.
    • UML (junto con otras características del Proceso Unificado) convierte el desarrollo de software en una disciplina de ingeniería (bueno, esto se llama también exageración :D ).
    • Es un lenguaje gráfico con el que la gente del software puede pensar, visualizar, analizar, comunicar y registrar.
    • Sin un medio de comunicación estándar como UML, habría gran dificultad en comprender lo que otras personas y equipos están haciendo y dificultades para transmitir la información a través de las fases y a las versiones y generaciones posteriores. Y hasta para reutilizar los artefactos entre proyectos.
  • Iterar: Las iteraciones y construcciones proporcionan ventajas:
    • tareas pequeñas,
    • grupos de trabajo pequeños,
    • una ligazón con la gestión de riesgos,
    • controles frecuentes,
    • y frecuentes realimentaciones.
  • Gestionar los riesgos: Es fundamental identificar los riesgos (críticos, significados, rutinarios), elaborar una lista de riesgos, y mitigarlos antes de que se manifiesten en el proceso de desarrollo software. Precisamente el enfoque iterativo será una herramienta fundamental para el control de estos riesgos.

Hacia Windows 8

Windows 1

Ni sabía que existía!!!

Windows 3 y 3.1

Yo conocí el NT 3.5 :)

Windows 95

Hasta Windows 7 mantuve el tema clásico ;)

Windows XP:

Windows Vista

Windows 7

Windows 8

Aunque tuve dudas después de mi Windows Phone me parece un gran acierto!

Leer más

Un poco de RUP

Entendiendo por proceso de desarrollo de software al conjunto de actividades necesarias para transformar los requisitos de un usuario en un sistema software podríamos decir que RUP es en la actualidad el proceso de desarrollo más completo, documentado e implantado.

Los aspectos definitorios de RUP se pueden resumir en 3:

· Dirigido por casos de uso

· Centrado en la Arquitectura

· Iterativo e incremental

FASES RUP:

· Concepción: su objetivo es establecer los requisitos de negocio que cubrirá el sistema identificando todas las entidades que interactúan con el sistema (personas, sistemas, etc.) y hacer una valoración de la viabilidad del proyecto.

· Elaboración: su objetivo es entender muy bien el problema desde el punto de vista del equipo de desarrollo. Lleva consigo la elaboración de la arquitectura marco del sistema y el diseño de la solución técnica, así como determinar el plan del proyecto e identificar los riesgos fundamentales del mismo.

Al final de la fase se tiene definida la arquitectura, el modelo de requisitos del sistema empleando los diagramas de casos de uso especificados en lenguaje UML, el plan de desarrollo y los estándares de calidad que se han de seguir en el proyecto o las herramientas que se han de emplear durante el transcurso del mismo.

· Construcción. En esta fase se profundiza en el diseño de los componentes y de manera iterativa se van añadiendo las funcionalidades al software a medida que se construyen y prueban, permitiendo a la vez que se puedan ir incorporando cambios.

Se podrán planificar entregas al final de cada iteración, momento en el que se recoge feedback del usuario final y en el que se proponen cambios. Tras el análisis del impacto que suponen los mismos se decide si el mejor momento en que incorporar dichos cambios al sistema. Al final de la fase se tiene un sistema completamente operativo y la documentación para entregar a los usuarios.

· Transición. La fase final del RUP se ocupa del traslado del software desde los entornos de desarrollo a los entornos de producción, en los que el usuario final hará uso del sistema. Dependiendo del tipo de proyecto podrá requerir de entornos intermedios (preproducción o de aceptación por usuarios, etc.) para su correcta validación, antes de su pase a producción.

Cada fase en RUP Cada fase en RUP puede descomponerse en iteraciones. El objetivo de cada iteración es desarrollar algún producto de software que funcione, que pueda ser mostrado y resulte significativo a todos los implicados (tanto internos como externos). En general, el software desarrollado por una iteración debería abarcar todos o la mayor parte de los subsistemas del proyecto. Se realizan todas las actividades (flujos del trabajo) del proceso.

Hay 2 Tipos de iteraciones:

· Iteraciones refinadoras: Amplían el nivel de detalle o refinan el producto de la iteración anterior.

· Iteraciones aditivas: Añaden funcionalidad, habitualmente se concretan mediante una selección de casos de uso.

FLUJOS DE TRABAJO O DISCIPLINAS RUP

Cada fase se completa con la realización de varias iteraciones en las que se desarrollan una serie de actividades, que el modelo RUP clasifica en 9 disciplinas que tienen más o menos importancia en función de lo cerca que se esté o no de la finalización del proyecto.

1. Modelado de Negocio:Comprender las necesidades del Negocio.

2. Requisitos:Traducir necesidades del negocio en comportamientos de un sistema automático.

3. Análisis y Diseño: Traducir requisitos en una arquitectura software.

4. Implementación: Crear software que encaje en la arquitectura y realice el comportamiento solicitado.

5. Pruebas:Asegurarse de que el comportamiento solicitado es correcto, y que todo lo solicitado está presente.

6. Configuración y Gestión del Cambio:Mantener traza de las distintas versiones de todos los productos.

7. Gestión del proyecto:Gestionar planificaciones y recursos.

8. Entornos: Establecer y mantener el entorno de desarrollo.

9. Despliegue: Todo aquello necesario para instalar el proyecto.

RESUMEN DEL PROCESO:

RUP EN PROYECTOS PEQUEÑOS Y MEDIOS

Sin embargo debido al gran nivel de detalle requerido en sus artefactos RUP en muchos casos RUP no se considera práctico para proyectos pequeños o cortos.

Por suerte RUP es más que un proceso, es un marco de trabajo genérico que puede y permite (debe) adaptarse a las necesidades de este tipo de proyectos al ser adaptables al contexto y necesidades de las organizaciones

Una de las claves para la aplicación efectiva de RUP en pequeños proyectos es cuidar el subconjunto de artefactos y mantenerlos concisos y libres de cualquier formalismo superfluo. Formalismos, procesos y documentación no son sustitutivos de la disciplina, habilidad o entendimiento.

DIRIGIDO POR CASOS DE USO

Un sistema software ve la luz para dar servicio a sus usuarios. Por tanto, para construir un sistema con éxito debemos conocer lo que sus futuros usuarios necesitan y desean: el término usuario representa alguien o algo (como otro sistema fuera del sistema en consideración) que interactúa con el sistema que estamos desarrollando.

Una interacción de este tipo es un caso de uso (fragmento de funcionalidad del sistema que proporciona al usuario un resultado importante).

Los casos de uso representan los requisitos funcionales. Todos los casos de uso juntos constituyen el modelo de casos de uso, el cual describe la funcionalidad total del sistema.

Los casos de uso no son sólo una herramienta para especificar los requisitos de un sistema. También guían un diseño, implementación y prueba; esto es:

guían el proceso de desarrollo.

además le proporcionan un hilo conductor.

Los casos de uso guían el proceso aunque se desarrollan a la vez que la arquitectura del sistema.

Los casos de uso guían la arquitectura del sistema y la arquitectura del sistema influye en la selección de los casos de uso. Por tanto, la arquitectura del sistema como los casos de uso maduran según avanza el ciclo de desarrollo.

CENTRADO EN LA ARQUITECTURA

El concepto de arquitectura software incluye los aspectos estáticos y dinámicos más significativos del sistema.

La arquitectura se refleja en los casos de uso, también se ve influida por muchos otros factores, como:

· la plataforma en la que tiene que funcionar el software (arquitectura hardware, sistema operativo, sistema de gestión de bases de datos, protocolos para comunicaciones de red),

· los bloques de construcción reutilizables de que se dispone (por ejemplo, un marco de trabajo para interfaces gráficas de usuario),

· consideraciones de implantación,

· sistemas heredados,

· y requisitos no funcionales (por ejemplo, rendimiento, fiabilidad).

La arquitectura es una vista del diseño completo con las características más importantes resaltadas, dejando los detalles de lado.

El valor de una arquitectura depende de las personas que se hayan responsabilizado de su creación

Cómo se relacionan casos de uso y la arquitectura?

Debe haber interacción entre los casos de uso y la arquitectura. En realidad, tanto la arquitectura como los casos de uso deben evolucionar en paralelo.

  • Por un lado, los casos de uso deben encajar en la arquitectura cuando se llevan a cabo.
  • Por otro lado, la arquitectura debe permitir el desarrollo de todos los casos de uso requeridos, ahora y en el futuro.

ITERATIVO E INCREMENTAL

El desarrollo de un producto software comercial supone un gran esfuerzo que puede durar años.

Es práctico dividir el trabajo en partes más pequeñas o mini-proyectos. Cada mini-proyecto es una iteración que resulta en un incremento.

Las iteraciones hacen referencia a pasos en el flujo de trabajo, y los incrementos, al crecimiento del producto. Para una efectividad máxima, las iteraciones deben estar controladas; esto es, deben seleccionarse y ejecutarse de una forma planificada.

Los desarrolladores basan la selección de lo que se implementará en una iteración en dos factores:

· En primer lugar, la iteración trata de un grupo de casos de uso que juntos amplían la utilidad del producto desarrollado hasta ahora.

· En segundo lugar, la iteración trata los riesgos más importantes . Las iteraciones sucesivas se construyen sobre los artefactos de desarrollo tal como quedaron al final de la última iteración. Al ser mini-proyectos, comienzan con los casos de uso y continúan a través del trabajo de desarrollo subsiguiente, análisis, diseño, implementación y prueba, que termina convirtiendo en código ejecutable los casos de uso que se desarrollaban en la iteración.

Qué es un Registro de Servicios

La adopción de una orientación a Servicios en una organización permite que esta sea más flexible y rápida a la hora de crear una nueva funcionalidad disminuyendo los costes de desarrollo.

Una organización más o menos grande puede perfectamente disponer de cientos o miles de estos servicios (además estos servicios pueden depender unos de otros e interactuar entre sí).

Si no se tiene cuidado y no se dispone de la metodología y herramientas necesarias, esta ventaja potencial de la orientación a Servicios será un gran problema..

Por eso es tan importante la reutilización de Servicios, de modo que las funcionalidades de negocio puedan crearse a través de la composición de servicios de bajo nivel (Servicios Técnicos) que forman otros de alto nivel (Servicios de Negocio).

Y para poder conseguir esa reutilización de Servicios (usar un servicio ya hecho en lugar de desarrollarlo) se necesita una herramienta donde registrar esos servicios ya existentes de modo que la próxima persona interesada en un servicio de ese tipo pueda encontrarlo.

Esta herramienta es lo que se conoce como Registro de Servicios y su funcionalidad básica es actuar como índice de los servicios desplegados en una organización.

Contendrá al menos:

  • Endpoint del Servicio: localización del Servicio
  • Clasificación del Servicio
  • Metadatos que describan el servicio y permitan buscarlo ágilmente
  • Configuración del despliegue y el acceso (como el proxy)
  • Información sobre como desplegar este servicio en entornos
  • Relación entre Servicios para poder hacer análisis de impacto

El ecosistema JEE es uno de los que más ha explorado el concepto de Registro y existen varios productos tanto comerciales como open source que cubren esta funcionalidad:

¿Chrome es el navegador más usado del mundo?

Pues depende de la fuente que revisemos.

Según esta semana el navegador de Google se ha convertido en el navegador más usado del mundo superando a Internet Explorer que llevaba años siempre el primero.

El alza de Chrome lo está dando en Sudamérica y Asia.

En Europa y África Firefox sigue siendo el más popular.

Een Oceanía y Norteamérica gana Internet Explorer.

Algunos datos:

· En Sudamérica Chrome tiene casi un 50% de participación

· En Asia Chrome alcanza un 34% de participación frente a un 33% de IE.

· En China IE tiene el 72%.

Según IE sigue siendo aún el navegador más usado con más de un 50%:

Seguir

Get every new post delivered to your Inbox.

Únete a otros 160 seguidores