Código Fuente y Tienda para Android

October 23rd, 2008

Poco antes de que se ponga a la venta oficialmente el T-Mobile G1, el primer móvil con Android, Google hace público el código fuente de Android, tal como exige la licencia de algunos de sus módulos.

Justo antes de que se ponga a la venta oficialmente el T-Mobile G1, el primer móvil con Android, Google hace público el código fuente de Android, tal como exige la licencia de algunos de sus módulos.

Es una de las primeras plataformas móviles que está disponible de forma íntegra, que permitirá a los usuarios y desarrolladores sin ninguna restricción y con la única condición de contribuir con la plataforma.

Hoy se ha lanzado Android Market, la tienda de aplicaciones para este terminal.

Los desarrolladores podrán registrarse y subir sus programas a partir del próximo lunes 27, para ello deberán de pagar 25 dólares, una vez cumplido este requisito podrán poner a disposición de la comunidad todas sus aplicaciones, sin necesidad de validación o aprobación.

A partir de comienzos de 2009, también podrán comenzar a distribuir sus aplicaciones de pago, por cada venta se llevarán el 70 %, el resto irá a las operadoras y a la gestión de la facturación, Google dice que no se quedará con ninguna parte.

Lanzado oficialmente Mono 2.0

October 7th, 2008

Ayer 6 de Octubre ha salido oficialmente Mono 2.0. Entre otras características y mejoras, Mono 2.0 da soporte para C# 3.0 y Linq. Además se ha completado la implementación de Windows.Forms 2.0, ASP.NET 2.0 (con todos sus respectivos controles) entre otras APIs. Así que sólo queda descargarlo aquí y cacharrear con él.

Por cierto y como curiosidad, a la hora de elegir la plataforma para la descarga, es posible descargar una imagen de VMWare con openSUSE 11.0 con Mono 2.0 incluido, ideal para no perder el tiempo montandolo y poder probarlo directamente.

Google Chrome

September 3rd, 2008

Google acaba de presentar su browser, Google Chrome:

La versión beta ( hay algún servicio de Google que no sea beta? ;) ) se puede descargar de:

link

Como adelanto publicaron el fin de semana pasado un comic que detalla cada una de las nuevas características y es la mejor forma de conocer el navegador y sus características, es bastante técnico y visual al mismo tiempo:

link al comic

En vez de detallar las features como en todos los blogs del universo propongo discutir qué impacto pueden tener algunas features y qué opináis de la “fragmentación de la web”, para abrir el tema:

Una de las características más comentadas es el aislamiento entre los distintos tabs abiertos, cada uno corre en su propio proceso y el browser actúa como “coordinador”. Con ésto se tienen aislados los espacios de memoria de cada tab y un cuelgue en uno no afectará a otro… pero a cambio cada uno de los tabs tendrá su propio tamaño mínimo de stack, el código que use se cargará repetidas veces en cada proceso… y toda comunicación entre tabs y con el “browser coordinador” será mucho más costosa al ser “remota”.

El motor de javascript, V8, lo venden como la próxima maravilla del mundo: corre en una máquina virtual, entiendo que se precompila a un bytecode en vez de interpretarse, contiene heurísticas para detectar paths de ejecución repetidos y optimizarlos… veremos si sufre de problemas de compatibilidad con otros browsers( que posiblemente sean porque éste sea más fiel a un Standard que otros ).

La cantidad de browsers que una aplicación web debe soportar sigue creciendo y creciendo, desde distintas versiones del mismo navegador a los distintos navegadores disponibles. Todos hemos sufrido páginas webs que no funcionan bien en algún browser, incluso hemos visto o participado en webs donde el código cliente tiene 2 ramas, una para IE y otra para FF…

Dónde está aquella supuesta facilidad de despliegue y esa multiplataforma cuando puedes tener 8-12 browsers distintos y donde sabes que en algún momento saldrá otra versión de algún otro que será más o menos standard y tendrás que retocar-actualizar-probar tu aplicación web.

Todo esto lleva a otra discusión, cómo hemos partido de “la web original”, una arquitectura pensada para transmitir cadenas de texto con formato y mostrarlas por pantalla ( algo así como un visor de documentos simples remoto, sin estado ) a una plataforma de de aplicaciones a base de capas y capas y cantidades inmensas de “pequeños hacks” donde cada uno a ido por su lado. Esa es la historia de la web para lo bueno y para lo malo :)

Y otra batallita distinta va a ser opinar sobre los intereses de Google, claramente es un paso más en intentar llegar a un Sistema Operativo Web, que corra sobre cualquier SO. Está claro que la transición entre la “página web” donde se mostraba texto con un formateo muy básico y la “aplicación web” necesita avanzar muchos aspectos del browser.

JPA/Hibernate, Persistencia de objetos en Java - Sesión KIT (25 de septiembre)

August 29th, 2008

Dentro de la actividad del KIT, el próximo 25 de septiembre Jesús Jiménez Jabón presentará la sesión “JPA/Hibernate, Persistencia de objetos en Java”.
La sesión tendrá lugar en las oficinas de Media Net y comenzará a las 17:30 horas.

El índice tentativo de la misma será el siguiente:

* Presentacion: Breve presentacion del indice a tratar
- Persistencia
* Introducion (Historia)
* Definicion
* Capas de Persistencia (Arquitectura y alernativas)
* Requisitos de un Framework de Persistencia
* Esquema de persistencia “relacional-objetos” (Problemas y ventajas)
* Modelos de Dominio y Metadatos

- JPA (Java Persistence API)
* Ubicación J2SE y J2EE
* Integracion con servicios Java EE (JTA, JNDI, JMX)
* Relacion de JPA con Subsistemas de Persistencia Java (JDO, SDO, EJB3, TopLink, Hibernate)
+ Caracteristicas a tener en cuenta en la eleccion de un Subsistema de persistencia
* Conceptos JPA (Apoyados en un ejemplo sencillo)
+ Mapeo de entidades
+ Mapeo de relaciones - Tipos
+ Entity Manager
+ Queries
+ Unidades de persistencia
+ Gestión de transacciones

* Integracion de JPA con Spring Transaction
* Hands-On: Ejemplo de uso y despliegue

- Hibernate (Proveedor de Persistencia para JPA)
* Definicion
* Proyectos asociados a Hibernate (Core, Annotations, Shards, Validator…)
* Integración de JPA e Hibernate
* NHibernate (.NET Framework)

La sesión es abierta, todo aquel que esté interesado podrá asistir, siempre y cuando cumpla con las normas de asistencia y la confirme antes del próximo 23 de septiembre. Si alguien estuviera interesado en asistir, pero por las circunstancias de su proyecto no pudiera confirmarlo hasta después del día 23, que lo indique de todos modos para que se le reserve plaza.

MONO, .NET en Linux - Sesión KIT (11 de septiembre)

August 29th, 2008

Dentro de la actividad del KIT, el próximo 11 de septiembre David Fernández e Iván Alonso presentarán la sesión “MONO, .NET en Linux”.
La sesión tendrá lugar en las oficinas de Media Net y comenzará a las 17:30 horas.

El índice tentativo de la misma será el siguiente:

* Por qué MONO?
- Multiplataforma
- Libre

* Funcionamiento
- Introducción
- EStándar ECMA
- Espacios de nombres/librerías
+ Desensamblado
+ Ingeniería inversa

* Relación/Reacción Microsoft
- Proyectos que apoya (ej.: Moonlight)
- Proyectos que no apoya
+ Patentes (Windows Forms)

* Modo de uso
- IDEs
+ Linux: MonoDevelop, SharpDevelop…
+ Windows: Visual Studio…
- Normas para desarrollo de aplicaciones multiplataforma
- Modificaciones en código (adaptaciones)
- RoadMap
- Caso de éxito de proyectos en Mono

* Hands-On
- Calculadora multiplataforma

La sesión es abierta, todo aquel que esté interesado podrá asistir, siempre y cuando cumpla con las normas de asistencia y la confirme antes del próximo 9 de septiembre. Si alguien estuviera interesado en asistir, pero por las circunstancias de su proyecto no pudiera confirmarlo hasta después del día 9, que lo indique de todos modos para que se le reserve plaza.

Depurando servicios WCF

July 30th, 2008

Aunque a estas alturas de la vida parezca mentira, depurar un servicio de WCF “selft-hosted” en Visual Studio 2008 da muchos dolores de cabeza. Para empezar, cuando estás depurando la aplicación aparece un maravilloso dialogo que te avisa que no vas a poder depurar el código del servicio (aun cuando no fueras a hacerlo!). Si, ignorando la advertencia, intentas hacer un “step into”, descubriras que el entorno no te permite meterte dentro y pasa a la siguiente instrucción.

Para conseguir hacerlo funcionar hay que realizar dos sencillos pasos (una vez que los conoces, claro):
1. Habilitar la depuración de servicios WCF en la máquina. Por defecto, el framework no permite hacer depuración remota de los servicios WCF. Esto es una característica que aumenta la seguridad y el rendimiento de estos. Lo malo es que somos desarrolladores y en nuestras máquinas queremos hacer de todo. La solución es bien sencilla:
a. Abrir el fichero “machine.config”. Su ubicación es: %windir%\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config. Cuidado con lo que tocamos, esto es parte del core del framework. Si hacemos lago mal podemos dejarlo KO.
b. Buscar el nodo: configuration/system.servicemodel/commonBehaviours
c. Comentamos los dos nodos contenidos tanto en “endpointBehaviors” como en “serviceBehaviors”. Recordatorio: es un XML, los comentarios son del tipo

2. Editar la configuración de la solución de VS para que arranque múltiples proyectos al depurar:
a. Abrimos las propiedades de la solución y accedemos a “Common Properties/Starup Project”
b. Seleccionamos “Multiple Startup Projects”
c. Marcamos como “Start” todos los proyectos de WCF que queramos depurar. Nota: Para evitar que nos aparezca el cliente de pruebas (sobre todo si no vamos a probar el servicio por separado), basta con eliminar los argumentos de la línea de comandos del proyecto en cuestión.

Bueno, ha sido largo y seguramente bastante tedioso, pero confío en que os ayude y os haga más llevadero vuestros desarollos.

Salu2 y hasta la próxima,
C#

He leído: Foundations Of Programming Building Better Software

July 7th, 2008

Y os lo recomiendo, es un ebook gratuito, muy profesional, donde en 78 paginas muy amenas se tratan por encima muchas de las técnicas de desarrollo modernas:

Agile Development, Domain Driven Design, Persistance, Dependency Injection, Unit Testing, ORM Mappers así como fundamentos de programación como Memoria, Excepciones y el Patrón Proxy componen los temas principales del libro.

El link es http://codebetter.com/files/folders/codebetter_downloads/entry179694.aspx

Google Trends for Websites

June 23rd, 2008

Google Trends compite con AlexaGoogle continúa haciendo cada vez más herramientas y utilidades para los usuarios en Internet. De hecho, ayer mismo ha anunciado una nueva funcionalidad para Google Trends, Google Trends for Websites. Esta utilidad ahora no solo permite buscar información sobre las búsquedas en Google, sino estimar (y comparar) el tráfico de uno o más sitios, de manera similar a como lo hacen Alexa, Compete o Quantcast.

Read the rest of this entry »

10 pesadillas de la usabilidad que deberías evitar

June 19th, 2008

He encontrado un artículo que considero bastante interesante ya que nos comenta los errores mas comunes en la usabilidad de las páginas web. A parte de explicar los errores muestra ejemplos para que se puedan identificar con facilidad.

Deberías evitar:

  1. Formularios de login ocultos
  2. Pop-ups para presentación de contenido
  3. Arrastrar en lugar de navegación vertical.
  4. Enlaces invisibles
  5. Ruido o sobrecarga visual
  6. Zonas sin salida
  7. bloques de contenido unos encima de otros.
  8. Navegación dinámica
  9. Menus desplegables
  10. Imágenes animadas

Os recomiendo ver el artículo original en Nerv ya que una imagen vale más que mil palabras

Javapolis y Adobe AIR

June 18th, 2008

Javapolis es una de las conferencias anuales sobre Java, que tiene lugar a principios de diciembre y es organizada por el Belgian Java Users Group.
Desde hace un par de años comenzaron a ofrecer online las presentaciones que tenían lugar en la conferencia a través de un servicio llamado Parleys, y la novedad ahora es que han creado una aplicación explotando las posibilidades de la plataforma Adobe AIR que da acceso directo a esta charlas, en lugar de un interfaz web más convencional.
Si observáis veréis que es exactamente la misma aplicación tanto la que se está ejecutando dentro de un navegador, como la que tenéis en vuestros escritorio si decidis instalarla.
Si tenéis un rato echad un ojo a las presentaciones, que algunas son muy interesantes, como por ejemplo ésta que muestra cómo utilizar Spring en un entorno de pruebas unitarias.