Tras unos días más trasteando con mi HTC Desire quiero compartir con vosotros dos nuevas aplicaciones Android que han pasado a formar parte de mi lista de aplicaciones Android recomendadas.

La primera de ellas es de búsqueda. Ya os recomendé en mi lista anterior varias aplicaciones Android excelentes para buscar por todo tipo de criterios y elementos, buscar por texto, por imágenes, por sonidos, por posición… y sólo me quedaba poder buscar por gestos, escribiendo directamente sobre la pantalla. Para ello he encontrado y recomiendo Gesture Search. Esta aplicación llega directamente de la mano del equipo de Google Labs, y permite buscar y localizar rápidamente elementos entre nuestras aplicaciones, contactos, bookmarks y música con tan sólo escribir sobre la pantalla parte de su nombre.

Google Gesture Search

Y en segundo lugar otra aplicación de Google Labs. Esta vez enfocada más hacia el ocio, y más concretamente al deporte (sí, Android también sirve para practicar deporte). La aplicación en cuestión se llama My Tracks, y permite ir registrando en tiempo real nuestra posición, utilizando el GPS de nuestro dispositivo, y visualizando estadísticas como la distancia, tiempo, velocidad, elevación o la pendiente mientras realizamos nuestro deporte preferido, ya sea running, senderismo, ciclismo…

Tanto al final de nuestro recorrido, como en cualquier momento podemos visualizar sobre Google Maps la ruta que hemos seguido hasta el momento, nuestra posición actual, las estadísticas acumuladas hasta ese punto y gráficos con la evolución de nuestra velocidad y la elevación del terreno. Y una de las características que más me han gustado, puedes configurar la aplicación para que de forma periodica te diga a viva voz (anuncios de voz) tus estadísticas en cada momento (distancia recorrida, tiempo invertido y velocidad media).

Google My Tracks

Además, como motivación adicional esta aplicación es open source, por lo que si eres atrevido, y con los conocimientos necesarios, puedes incluso adaptarla a tus necesidades si descubres que le falta alguna característica de vital importancia para ti. Por mi parte, intentaré que en los anuncios por voz me indique también el tiempo medio por kilómetro, y me registre de forma periódica estadísticas parciales cada cierto número de kilómetros (por ahora esta opción es manual). Os mantendré informados si consigo avances.

, , , , ,

Hace algo más de un mes decidí dar el salto a un móvil con sistema operativo Android y he de decir que  a día de hoy estoy más que satisfecho. En mi caso el elegido ha sido un HTC Desire, hermano gemelo del Nexus One de Google, y toda una preciosidad en todos los sentidos.

Una de las ventajas más destacadas de este tipo de móviles es la enorme cantidad de aplicaciones que tienes disponibles para descargar, de forma gratuita y en el tiempo que tardas en hacer un click en el Android Market.

Y como viene siendo habitual en muchos blogs, yo tampoco quiero ser menos y voy a publicar mi lista de aplicaciones Android recomendadas, que no digo que sean las mejores, pero sí las más interesantes en mi caso particular. Las separo en categorías:

Aplicaciones Android de Productividad

Mi mala memoria me obliga a disponer de utilidades que me permitan hacer anotaciones rápidas y mantener una lista de tareas pendientes. Si sois como yo, éstas dos aplicaciones cubren sobradamente ambas necesidades:.

  • Astrid Task/ToDo List. La lista de tareas más completa y versátil. Prioridades, etiquetas, avisos, alarmas…
  • Note Everything. Notas de texto, voz, y dibujadas sobre la pantalla.

Aplicaciones Android de Referencia

Para poder buscar en cualquier lugar y de cualquier forma: por texto, por voz, por sonidos, por imágenes, por posición…

  • Búsqueda por voz. Permite realizar búsquedas por voz en Google, con una precisión espectacular.
  • Google Goggles. Permite realizar una búsqueda en Google a partir de una foto tomada con el móvil. También permite fotografiar un texto y traducirlo a cualquier idioma sin tener que teclearlo.
  • Wapedia. Permite realizar búsquedas en Wikipedia u otras Wikis alternativas.
  • Traductor de Google. Traduce textos entre más de 50 idiomas. Con síntesis de voz incluida.
  • Bliquo / Qype / Places Directoy. Búsqueda de puntos de interés cercanos a tu ubicación actual (bares, restaurantes, cines, monumentos, …).
  • Layar / Wikitude. Aplicaciones de realidad aumentada. Por decirlo de alguna forma, muestran información en tiempo real sobre la imagen que está tomando la cámara del móvil en cada momento.
  • Shazam. Búsqueda del título y álbum de cualquier canción que esté sonando [fuera del móvil].

Aplicaciones Android para Gestión de Ficheros y Aplicaciones

Necesarias para gestionar las aplicaciones y los ficheros almacenados en el móvil.

  • ES File Explorer. El mejor administrador de archivos que he encontrado para Android. Proporciona todas las opciones básicas para explorar y gestionar los ficheros contenidos en la memoria principal y en la SD, así como también en otros PCs de la red, servidores FTP y dispositivos bluetooth, descomprime ficheros zip, y otras muchas funciones.
  • ES Task Manager. Un administrador de tareas para detener las tareas en segundo plano que ya no son necesarias. No es el mejor ni el más famoso pero se integra bien con ES File Explorer y cumple su función básica.
  • Barcode Scanner. Lector de códigos de barras y códigos QR para buscar y descargar aplicaciones. Imprescindible.
  • Dropbox. Aplicación oficial del conocido servicio del mismo nombre que ayuda a sincronizar cualquier carpeta con tu disco virtual en internet. Fantástico cuando necesitas acceder a determinados ficheros desde varios PCs y dispositivos.

Aplicaciones Android para Comunicación y Redes Sociales.

No soy una persona que utilice demasiado las aplicaciones de mensajería instantánea y las redes sociales de moda, pero aún así es cierto que en ocasiones hago algún uso de ellas.

  • Facebook for Android. Aplicación oficial de Facebook para Android.
  • Tuenti Móvil. Aplicación oficial de Tuenti para Android.
  • Peep. Ésta es la aplicación para Twitter que incluye HTC en sus móviles. No es pública, por lo que dudo que se pueda instalar en otras marcas. Para el uso que hago de este servicio me basta con esta aplicación, pero si haces un uso más intensivo de Twitter puede que te interesen algunas de estas otras dos: Twicca y Seesmic.
  • Flickr. Para el servicio Flickr también me conformo con la integración que hace HTC en sus móviles. ¿Me recomendáis alguna opción mejor?
  • Meebo IM. Éste es un cliente de mensajería instantanes capaz de conectar con los servicios más populares en este campo: MSN Messenger, Yahoo Messenger, Google Talk, Jabber, ICQ, e incluso Facebook.
  • WordPress. Aplicación oficial de WordPress para gestionar blogs construidos con esta plataforma. No es nada espectacular, pero funciona. ¿Alguna alternativa mejor?

Aplicaciones Android para Reproducir Música y Video.

  • Reproductor de Música. Pues como reproductor de música también continúo utilizando el reproductor por defecto que integra HTC con su interfaz Sense. Pero eso sí, como de esto sí hago un uso más frecuente estoy evaluando otros reproductores multimedia como Meridian (por ahora el mejor, con búsqueda de letras, edición etiquetas, …), Zimly, MixZing, doubleTwist, o incluso la versión de RealPlayer para Android.
  • Reproductor de Video. Todos los anteriores son capaces de reproducir tanto música como video. Pero ninguno de ellos es capaz de reproducir contenidos en formato Divx o Xvid. Para poder hacer esto último, para mí la opción es clara: RockPlayer. La versión gratuita muestra una “R” roja en la esquina superior izquierda que no impide para nada ver la reproducción. De cualquier forma, si estáis dispuestos a pagar por ella os aseguro que vale todos y cada uno de los 9.99 dólares que cuesta. Reproduce con fluidez videos en formato Divx/XVid sin tener que convertirlos a otro formato ni resolución.
  • Descarga de Música. Para descargar música directamente al móvil está disponible la aplicación Music Junk. No se trata de ninguna aplicación P2P (no permitidas por la mayoría de las operadoras de telefonía), sino que busca los ficheros de música en descarga directa en diversos sitios de internet. Funciona bastante mejor de lo que suena.
  • Ringdroid. Permite recortar y editar cualquier fichero de música, por lo que resulta ideal para crear tus propios tonos de llama.

Mapas y Navegadores GPS para Android

  • Mapas. En este apartado la solución por excelencia viene de serie con el sistema operativo Android, y es que Google Maps dificilmente podrá ser superado por cualquier otra aplicación de terceros. Al margen de esto, para complementar Google Maps, también está disponible una versión para Android del espectacular Google Earth, que al menos en el HTC Desire funciona con bastante fluidez.
  • Navegación GPS. Hasta hace bastante poco, para disfrutar de algún buen navegador GPS en un móvil Android había que recurrir a alguna aplicación de pago como Copilot o Sygic. Sin embargo, con la última actualización de Google Maps se añadió Google Maps Navigation, un navegador GPS gratuito que cubre bastante bien las funciones básicas de este tipo de aplicaciones. Además tiene la ventaja (o el inconveniente si no tienes contratada una tarifa plana de datos) de tomar los mapas directamente de internet, con lo que siempre estarán lo más actualizado posible.

Navegadores Web para Android

Navegadores para Android existen varios: Dolphin, Skyfire, Opera Mini, y alguno más menos popular. Sin embargo, ninguno de ellos ha conseguido convencerme lo suficiente como para dejar de utilizar el navegador por defecto de Android, ni siquiera Opera Mini con su fama de rápido (que lo es), pero que en mi opinión tiene algunas carencias que lo descartan, como por ejemplo el no aceptar gestos en pantalla para hacer zoom, o su curiosa [y desafortunada] forma de mostrar ciertas [muchas] páginas web. Eso sí, habrá que estar atentos a la evolución de estos navegadores.

Visores de Documentos para Android

Por la salud de mis ojos, intento siempre no tener que leer ningún documento en la pantalla de mi móvil, pero cuando he tenido que hacer alguna consulta rápida me ha bastado con el visor de PDFs por defecto del sistema (también existe una versión de Adobe Reader para Android) y la aplicación QuickOffice para visualizar documentos Word, Excel y Powerpoint.

De cualquier forma, si te gusta leer en tu móvil te recomiendo la aplicación Aldiko Book Reader para descargar y leer libros electrónicos en formato ePub.

Otras aplicaciones para Android

Ya esto queda a la imaginación y las necesidades de cada uno, hay miles de aplicaciones para elegir. En mi caso utilizo también por ejemplo la aplicación BBVAMovil para consultar los cajeros y oficinas BBVA más cercanos a mi ubicación actual, o como curiosidad para echar un rato la aplicación Google Sky Map para ver información sobre las estrellas, galaxias y constelaciones a las que apuntas con la cámara del móvil, espectacular en mi humilde opinión.

Espero que esta lista de aplicaciones os sirva a muchos de vosotros para completar vuestras colecciones particulares.

http://es.androlib.com/android.application.com-taptu-wapedia-android-xwt.aspxWapedia
, , , ,

Hoy he descubierto por casualidad un blog que puede interesar a todos aquellos que estén empezando a aprender cositas sobre Windows Presentation Foundation (WPF). Se trata del blog de Oskar Alvarez, que desde que empezó a escribir artículos hace escasamente un mes, lleva ya publicadas más de una treintena de entradas, a modo de tutorial de introducción a WPF.

Tras leer algunas de ellas, os puedo decir que merece la pena echarles un vistazo, no por su exhaustividad, sino precisamente por todo lo contrario. Son entradas cortitas hablando sobre los temas más destacados de WPF, e intercalando ejemplos que ayudan a comprender mejor los conceptos. Y todo en español, que siempre es de agradecer.

Encontraréis por ejemplo una introducción a la arquitectura básica de WPF, algunas notas iniciales sobre XAML, layouts y contenedores en WPF (Canvas, StackPanel, DockPanel, WrapPanel …), uso de distintos controles en WPF como el Ribbon o el Grid, shapes, transformaciones, animaciones, data binding, integración y relación de WPF con otras tecnologías como WCF o Silverlight, y todo lo que se os pase por la cabeza.

Y esto parece sólo el principio, porque Oskar está imparable y seguro que nos tiene preparadas más entradas interesantes sobre esta tecnología. Os animo a visitar su blog.

De paso, os recuerdo también uno de los recursos de referencia a la hora de buscar información sobre Windows Forms y WPF en general (noticias, tutoriales, manuales, ejemplos…): http://windowsclient.net

, , ,

Tras unos días jugueteando con el recién estrenado Wolfram|Alpha, he de decir como conclusión que me ha dejado un sabor de boca un tanto agridulce.

Y que nadie me entienda mal, no esperaba más de esta nueva herramienta, pero como ingeniero informático, como amante de la inteligencia artificial, y como gran entusiasta del tratamiento automático del lenguaje natural, aún me quedaba esa ilusión de que alguien, en algún momento de un futuro no muy lejano, fuera capaz de ir un paso más allá de los motores de búsqueda tradicionales, donde como todos sabemos Google sigue manteniendo su reinado indiscutible. No ha ocurrido así en esta ocasión, Wolfram|Alpha no ha traido consigo ninguna revolución en este campo, y de ahí el mal sabor de boca, pero resulta innegable que Stephen Wolfram ha iniciado un nuevo camino [en mi opinión prometedor] hacia ese objetivo.

Os pongo en antecedentes para quien aún no haya oído hablar del tema. ¿Conocéis a Stephen Wolfram? ¿Os suena quizá la compañía Wolfram Research? ¿Habéis utilizado alguna vez la aplicación informática Mathematica? Los que hayáis estudiado cualquier titulación técnico-científica seguro que habéis respondido afirmativamente a alguna de las preguntas anteriores. Para los que no, puedo contaros que Wolfram Research es la compañia que desarrolla la aplicación Mathematica, que puede considerarse como una de las herramientas de cálculo matemático más importantes de la actualidad con millones de usuarios, y Stephen Wolfram es la cabeza pensante que hay detrás de esa aplicación y de esa compañía. Pues bien, después de varios años de desarrollo, Wolfram|Alpha representa el nuevo proyecto de Stephen Wolfram, y se enmarca dentro del campo de los motores de búsqueda.

Wolfram|Alpha se planteó como un proyecto ambicioso, como un motor de búsqueda que, lejos de limitarse a ofrecer una lista de enlaces relacionados con el concepto buscado, fuera capaz de dar respuestas directas a preguntas sobre hechos concretos realizadas en lenguaje natural. Y no sólo eso, sino algo mucho más interesante, que fuera capaz de hacer “cálculos” con la información disponible, es decir, que tuviera la capacidad de inferir nuevos conocimientos más complejos [que no existan de forma explícita entre la información disponible] a partir de otros de los que sí se dispone, todo con el objetivo de generar una respuesta directa, correcta y completa a la pregunta del usuario. Como se puede comprobar estos objetivos van mucho más allá de lo que es, al menos a día de hoy, el “todopoderoso” Google.

Después de la presentación en sociedad del proyecto, ¿cuánto de lo que se prometía es cierto, y cuánto ha quedado de momento en el tintero? Pues es dificil de contestar a esto, todo depende del punto de vista que se utilice.

¿Es capaz de responder Wolfram|Alpha a preguntas directas escritas en lenguaje natural? Sí, pero con matices. En primer lugar, hay que decir que por el momento tan sólo entiende inglés, pero aún escribiendo en ese idioma el éxito de la respuesta dependerá mucho de la construcción de la pregunta, teniendo a veces que reformularla en varias ocasiones. La búsqueda de palabras clave sigue funcionando mejor que el lenguaje natural. Aún así hay que reconocer que se defiende bastante bien con preguntas directas, como por ejemplo “¿Cuál es la población de Madrid?“.

¿Es capaz de inferir Wolfram|Alpha nuevos datos a partir de los ya disponibles? Una vez más la respuesta es sí pero a medias. Es cierto que podremos hacer preguntas donde obliguemos al buscador a esforzarse un poco más para generar la respuesta, como por ejemplo “¿Que día cumplió Shakespeare 17 años?“. Dado que dificilmente ese dato aparezca de forma explícita en ninguna fuente de información, para responder a esta pregunta Wolfram|Alpha ha tenido que recuperar la fecha de nacimiento de Shakespeare y sumarle 17 años, es decir, de alguna forma ha calculado la respuesta a partir de la información disponible. ¿Cuál es el problema entonces? Pues el único “pero” que se puede poner es precisamente cuál es esa fuente de información de la que parte el buscador. Aunque en un primer momento pudo entenderse que al igual que los buscadores tradicionales Wolfram|Alpha obtendría su información directamente de la web esto no es así en realidad. Este nuevo buscador obtiene su información de varias fuentes externas de datos pretratados y adecuados expresamente para la ocasión. Y sí, estamos hablando de bases de datos gigantescas, pero ni mucho menos infinitas. ¿Qué quiero decir con esto? Pues básicamente que los contenidos que podremos encontrar en Wolfram|Alpha serán los que los desarrolladores del proyecto hayan seleccionado para formar parte de la base de información propia de la aplicación, lo que quiere decir que Wolfram|Alpha entiende de muchas temas pero no de todos, algo que casi sí podemos decir [dentro de los límites obvios] de los buscadores tradicionales. Y todo esto me lleva a una pregunta preocupante: si esa base de información se mantiene aislada del día a día de la actualidad ¿cuánto tiempo tardaremos en empezar a ver datos desactualizados como respuestas a nuestras preguntas? Espero que mucho, por el bien y el futuro del proyecto.

En definitiva, Wolfram|Alpha me parece un proyecto interesante, de gran valor desde el punto de vista técnico-científico, pero con una utilidad moderada para el usuario medio. Se trata de una aplicación a medio camino entre un motor de búsqueda tradicional (por ejemplo Google) y una enciclopedia online (por ejemplo Wikipedia). En ningún caso viene a sustituir a ninguno de los dos [simplemente no se ha diseñado para eso], pero sí los complementa a las mil maravillas, eso sí, siempre dependiendo del contexto de la búsqueda. En Wolfram|Alpha no encontraremos opiniones, ni noticias, ni tutoriales, ni artículos extensos, … en este nuevo buscador tan sólo encontraremos hechos, datos concretos sobre un tema concreto.

Y para descubrir las posibilidades que ofrece lo mejor es jugar un poco con él haciendo preguntas de lo más variopintas. Por ejemplo, realizar algún cálculo algebraico complejo (no olvidemos que Wolfram|Alpha tiene por detrás entre otras cosas la aplicación Mathematica),  conocer la posición genealógica de tu primo segundo, saber la cantidad de azucar que tiene una naranja, o averiguar algo tan elaborado como cuántas calorías quema un hombre de 28 años, 1.75 de altura y 75 Kg de peso si corre durante 30 minutos a un ritmo de 6 minutos/km. ¿Responde Google a esto de forma directa?

Para terminar, os dejo el enlace a un video de demostración de este nuevo motor de búsqueda donde pueden verse muchas de las posibilidades que nos ofrece y la inmensa variedad de información tanto textual como gráfica que es capaz de mostrar en sus resultados [Video demostración Wolfram|Alpha].

, , , ,

Sitios como DZone, agregadores de noticias donde cada día pueden encontrarse cientos de artículos técnicos sobre desarrollo y tecnología, demuestran que por algún motivo los artículos tipo lista o ranking venden bastante, o al menos atraen la atención de muchos lectores. Y me refiero a aquellos artículos cuyo título comienza con frases como “Los 10 lenguajes que más…”, “Los 5 motivos por los que…”, y similares. Esta mañana yo mismo os pasaba un enlace a un artículo donde se publicaba una lista de los 10 lenguajes de programación más extraños, y como éste se pueden encontrar cientos de todas las formas y colores, hoy día parece que la gente confecciona listas y rankings para todo.

Pero entre todos ellos, hoy he encontrado una lista que me ha hecho tirarme de los pelos. Atención al título: “Los 10 libros que podrían sustituir a una carrera de Ingeniería Informática” [enlace al artículo original]. Y la lista es la siguiente:

  • Godel, Escher, Bach. Douglas Hofstadter
  • The Art of Computer Programming. Donald Knuth
  • The Elements of Programming Style. Brian W. Kernighan y P. J. Plauger
  • Theory of Parsing, Translation and Compiling. Alfred V. Aho y Jeffrey D. Ullman
  • The Computer and the Brain. John von Neumann
  • A Programming Language. Kenneth E. Iverson
  • Writing Efficient Programs. Jon Louis Bentley
  • Computation: Finite and Infinite Machines. Marvin L. Minsky
  • Operating System Principles. Per Brinch Hansen
  • Artificial Intelligence. Elaine Rich

En mi humilde opinión, de esta lista sustituiría alguno que otro y añadiría algunos más, como por ejemplo:

  • Modern Operating Systems. Andrew S. Tanenbaum
  • Operating Systems: Design and Implementation. Andrew S. Tanenbaum
  • Compilers: Principles, Techniques, and Tools” (conocido tradicionalmente como el Dragon Book). Alfred V. Aho, Ravi Sethi y Jeffrey D. Ullman
  • Design Patterns: Elements of Reusable Object-Oriented Software. Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides, conocidos de forma histórica como GOF o Gang of Four).

De cualquier forma, y éste es el verdadero motivo impulsor de mi artículo, creo que todo aquel que haya obtenido una titulación universitaria debe tener claro que ni la mayor y mejor seleccionada lista de libros del mundo podría sustituir, ni de lejos, a todo lo conseguido junto a un título. Y no me refiero a los conocimientos púramente técnicos, sino a todo lo demás.

Un libro es un medio de comunicación unidireccional, y aunque obviamente puede aportar enormes cantidades de información, nunca podrá sustituir al diálogo, a la discusión de alternativas, a los diferentes puntos de vista de un grupo, a la aplicación práctica de conocimientos teóricos… aspectos éstos tan importantes para fomentar por ejemplo la innovación, algo vital cuando se aplica al campo concreto de la informática. En definitiva un título universitario no sólo es un papel, ni siquiera un conjunto de conocimientos, sino un conjunto de experiencias que no caben entre las páginas de papel de un libro.

En resumen, es una gran lista que cubre muchos pilares básicos de la informática y la recomiendo personalmente, pero no reduzcamos a una simple lista lo que muchos hemos tenido que sudar durante años.

A quien pueda interesar, en los comentarios del artículo original en inglés se proponen algunos libros más, os los paso para completar la lista:

  • Structure and Interpretation of Computer Programs. Harold Abelson y Gerald Jay Sussma
  • The Mythical Man-Month. Fred Brooks
  • Introduction to Algorithms. Cormen, Leiserson, Rivest y Stein
  • Artificial Intelligence: a Modern Approach. Russell and Norvig
  • Object-Oriented Software Construction. Bertrand y Meyers
  • Code Complete. Steve McConnell
  • Refactoring. Martin Fowler

Ideas para completar vuestra biblioteca personal no os van a faltar.

, , ,

Hace tiempo que soy usuario más o menos frecuente de Linux, más concretamente de Ubuntu, pero he de reconocer que rara vez he tenido físicamente instalado este sistema operativo en mis PCs. Linux nunca ha sido mi sistema operativo principal, de una forma o de otra sigo ligado al tan querido y tan odiado Windows XP por motivos que no vienen al caso, pero de cara al desarrollo siempre he tenido muy a mano Linux y algunas de las fantásticas herramientas que existen para este sistema operativo. Por todo esto mi primera opción para la instalación de Linux siempre ha sido utilizar una máquina virtual, originalmente sobre VMware Workstation y desde hace ya bastante tiempo sobre el fantástico VirtualBox de Sun (gratuito, más ligero, y que funciona igual de bien o incluso mejor si no necesitamos opciones demasiado avanzadas).

Con la reciente publicación de la nueva versión de Ubuntu 9.04 Jaunty Jackalope decidí abandonar un poco mis costumbres y probar Wubi, un instalador de Linux para Windows que permite la instalación y desinstalación de Ubuntu sobre Windows como si de otra aplicación cualquiera se tratase.

La primera vez que oi hablar de Wubi pensé que se trataría de algún tipo de máquina virtual específica para Ubuntu, algo similar a instalar Ubuntu sobre VirtualBox o VMware. Pero sin embargo estaba bastante equivocado, mediante Wubi no instalamos Ubuntu sobre ningún sistema virtual, sino que se realiza una instalación real del sistema operativo, con la diferencia de que esta instalación se realiza sobre un fichero y no sobre una partición física de disco. Esto evita obviamente todo el proceso de particionado previo a una instalación, algo que también viene bien si no se quiere modificar un sistema ya funcionando con Windows. De cualquier forma, tal como explican en su web, el rendimiento de Ubuntu instalado mediante Wubi tampoco es exactamente el mismo que si éste se hubiera instalado de forma normal en una partición real, aunque sí muy parecido, viéndose tan solo afectado levemente el tiempo de acceso a disco (nota: tras unos días de prueba puedo decir que el sistema funciona bastante fluido si el disco anfitrión no está muy fragmentado, por lo que la penalización en el rendimiento es casi inapreciable).

El proceso de instalación es sencillo, basta con colocar en la misma carpeta de Windows la aplicación Wubi.exe descargada de su web y la imagen ISO de la distribución de Ubuntu elegida (Ubuntu, Kubuntu, Xubuntu). Ejecutamos wubi.exe, indicamos la unidad de Windows donde instalar Ubuntu, el espacio de disco que se reservará para el sistema, el idioma y el usuario/password para acceder. Indicar también que durante la instalación Wubi añade una nueva entrada al gestor de arranque de Windows de forma que durante el arranque del PC se podrá seleccionar el sistema operativo a utilizar.

Recomiendo por tanto este sistema de instalación a todos los que se encuentren en alguna de estas situaciones:

  • Usuarios de Windows que quieren probar Ubuntu sin complicaciones ni riesgos de formateos, particionados… (para este caso también puede ser interesante la opción de ejecutar Ubuntu desde el Live CD).
  • Usuarios habituales de Windows y Linux que pueden sacrificar un mínimo de rendimiento a favor de una instalación más rápida y sencilla de Ubuntu.

En mi caso no podré prescindir totalmente de soluciones de virtualización como la que me proporciona VirtualBox, ya que en muchas ocasiones me es necesario el acceso simultaneo a los dos sistemas operativos (algo que no se consigue con Wubi), pero sí es cierto que ganaré rendimiento cuando use exclusivamente Ubuntu ya que el desempeño del sistema corriendo sobre una máquina virtual sí es notáblemente más bajo.

En definitiva, si no conocíais todavía Wubi, es un buen momento para probarlo y descubrir las bondades de sistemas Linux como Ubuntu.

, , , ,

Ya lo comentamos en una entrada anterior, los rumores eran insistentes sobre la inminente llegada de un nuevo lenguaje a Google AppEngine. Y por fin ha llegado, AppEngine estrena hoy algunas novedades, y entre ellas la más solicitada por todos los usuarios, el soporte para el lenguaje Java. Eso sí, tan sólo podrán probar la versión preliminar de esta caracterísitica los primeros 10000 usuarios que lo soliciten accediendo a este enlace.

Google AppEngine ha sido desde el principio un serivicio muy interesante, pero algunos desarrolladores lo descartaban porque las restricciones en cuanto al lenguaje de programación a utilizar eran muy grandes, sólo se soportaba el lenguaje Python, algo que hacía que en muchos casos resultara complicado migrar aplicaciones ya existentes a esta plataforma.

Con la llegada de Java este servicio se hará mucho más popular, permitiendo a más personas explotar las características de esta plataforma y de toda la infraestructura proporcionada por Google (de forma gratuita hasta unos límites bastante permisivos [límites, más límites], o bien pagando por el servicio para disminuir esas limitaciones [precios]).

Algunos datos sobre las nuevas características de Google AppEngine en relación al lenguaje Java:

  • Se soportan las versiones de Java 5 y 6, y los estandares Java Servlet y Java Server Pages (JSP). Al igual que en el caso de Python, también existirán algunas restricciones en el entorno de ejecución para java. Así, por ejemplo, tan sólo se podrá hacer uso de las siguientes APIs de la librería estandar de java [JRE Class White List], aunque como puede comprobarse la lista de las permitidas es inmensa.
  • Para el acceso a datos se puede utilizar tanto la propia API de datos AppEngine como las interfaces estandar Java Data Objects 2.3 (JDO) o Java Persistence API 1.0 (JPA).
  • Los servicios de Caché y Correo de AppEngine también se pueden utilizar a través de las interfaces estandar JCache (JSR 107) y JavaMail, así como el acceso HTTP/HTTPS a otros hosts mediante la API básica java.net.URLConnection.
  • El acceso a los servicios de login y manipulación de imágenes se realiza mediante APIs propias de AppEngine.

Como parte del soporte para el lenguaje java, Google también ha desarrollado un nuevo plugin [AppEngine Eclipse Plugin] para el entorno de desarrollo Eclipse que facilitará el desarrollo, prueba y despliegue de aplicaciones java sobre la plataforma AppEngine, e incluso el desarrollo de aplicaciones con la nueva versión de Google Web Toolkit 1.6 (GWT) y su publicación sobre AppEngine o cualquier otro entorno. Este plugin es compatible con las versiones de Eclipse 3.3 (Europa) y 3.4 (Ganymede).

Para más información sobre el soporte java de AppEngine se puede consultar la web oficial con la documentación preliminar de desarrollo.

Como última nota en relación al nuevo soporte java de Google AppEngine quiero mencionar la posibilidad utilizar AppEngine con otros lenguajes basados en la máquina virtual java, como describe por ejemplo Guillaume Laforge en este artículo, donde explica cómo utilizar el lenguaje Groovy en AppEngine.

Además del soporte para Java, Google AppEngine ha presentado más novedades interesantes:

  • Soporte para tareas programadas (servicio CRON).
  • Soporte para Google Web Toolkit 1.6 (GWT).
  • Soporte para Google Secure Data Connector.
  • Nueva herramienta para importar datos de forma masiva a AppEngine. Y anuncian que en breve estará también disponible una herramienta para exportar datos.

A la vista de todas estas novedades es innegable que Google AppEngine se ha posicionado con fuerza en el apartado de hospedaje de aplicaciones web escalables, frente a importantes competidores como los también famosos Amazon Web Services (AWS).

, , , , , ,

Algunos recursos con información valiosa sobre ASP.NET MVC:

  • La propia web oficial de ASP.NET MVC, con gran cantidad de información, tutoriales, videos, ejemplos…
  • La documentación oficial de ASP.NET MVC en MSDN.
  • Una lista de 10 cuestiones básicas sobre ASP.NET MVC que pueden ayudar a aclarar algunas dudas iniciales [Edito: Actulización de la lista de preguntas para la versión ASP.NET MVC 1.0].
  • Una serie de artículos de Scott Guthrie en cuatro entregas [1, 2, 3, 4].
  • Recordar también que el propio Scott Guthrie publicó en su blog hace unos días un fantástico tutorial de 185 páginas sobre ASP.NET MVC que forma parte del libro Professional ASP.NET MVC y cuyo enlace de descarga podéis encontrar en la entrada que dedicamos a dicha noticia.
  • Otro buen recurso de información sobre ASP.NET MVC es el ASP.NET MVC Training Kit publicado por Microsoft, que contiene entre otros Hand On Labs, demos y presentaciones sobre el framework.
  • Como utilizar ejemplos es casi siempre la mejor forma de aprender, os paso también una lista de aplicaciones de ejemplo [open source] construídas con ASP.NET MVC.
  • Y por último un par de artículos sobre consejos o buenas prácticas a la hora de utilizar ASP.NET MVC que pueden ayudarnos a hacer menos laboriosas algunas tareas.

Suficiente por el momento para comenzar a utilizar este fantástico framework.

, , , , ,

Muchas cosas han pasado desde que allá por verano del año pasado se presentara la primera versión alfa de MonoDevelop 2.0, el IDE para .NET más prometedor en Linux y Mac, y aprovechando que hace unos días se ha publicado la primera beta creo que es un buen momento para repasar cómo ha ido madurando este entorno de desarrollo.

Veamos las principales novedades que nos traerá MonoDevelop 2.0, previsto para finales de marzo de 2009.

Gestión de Proyectos

En este apartado se ha dedicado un gran esfuerzo para conseguir la máxima compatibilidad con Visual Studio. Para ello, se ha pasado a utilizar MSBuild como modelo por defecto. Además, se ha modificado la estructura de los proyectos introduciendo los llamados Solution Folders para agrupar proyectos y Workspaces para agrupar soluciones relacionadas pero independientes. Otras dos novedades importantes son la posibilidad de establecer propiedades específicas (policies) para cada proyecto o para cada solución, y el soporte para múltiples versiones del framework de .NET (un proyecto se podrá compilar para la versiones de .NET 2.0, 3.0 ó 3.5).

Edición de código

Con MonoDevelop se presenta un nuevo editor de código totalmente nuevo que introduce muchas mejoras respecto al anterior, entre ellas el soporte para C# 3.0, nuevas opciones de refactorización, la agrupación de código (code folding), la búsqueda incremental, los esquemas de colores (personalización del resaltado de sintáxis), la transparencia de las ventanas emergentes o incluso el soporte para comandos del editor vi. Además, se ha integrado el editor de XML de SharpDevelop, con lo que la edición de este tipo de documentos se ha mejorado también en gran medida.

Depuración de código

En esta segunda versión por fin tendremos un depurador de código integrado con el propio IDE. Se proporciona soporte para dos depuradores distintos, MDB para aplicaciones .NET y GDB para aplicaciones nativas. Cualquiera de los dos proporciona las características típicas de este tipo de IDEs: depuración paso a paso, inspección de variables, pila de llamadas, evaluador de expresiones, puntos de ruptura (breakpoints). etc.

Desarrollo Web

Al igual que ocurre con la gestión de proyectos, se ha trabajado mucho para maximizar la compatibilidad de los proyectos web ASP.NET con Visual Studio 2008 y Visual Web Developer 2008. Además, se ha mejorado mucho el completado de código para ASP.NET y HTML, se ha añadido la llamada Path Bar (muestra de forma jerárquica la etiqueta actual dentro del documento) al estilo de la mostrada por Visual Studio y se ha añadido una ventana de Outline con la estructura del documento. Por otro lado, se ha añadido también soporte para el recien estrenado Moonlight 2.0, cuyos proyectos son también compatibles con los de Silverlight 2.0 en Visual Studio.

Nuevas herramientas

También se han añadido al IDE algunos elementos nuevos. Así, por ejemplo, en la versión 2.0 de MonoDevelop podremos encontrar un visor de ensamblados, un analizador de métricas de código, y soporte para nuevos lenguajes como Vala.

Otras mejoras

Además de todas las novedades comentadas, en MonoDevelop también se ha mejorado el editor de GTK# y algunas opciones para el control de versiones.

En definitiva, comprobamos que MonoDevelop 2.0 será un entorno de desarrollo mucho más maduro que la versión anterior, mucho más compatible con su homólogo Visual Studio 2008 y con muchas aportaciones interesantes para el desarrollo en .NET sobre Linux. Esperemos a la versión definitva para ver si aún nos espera alguna sorpresa más.

, , , ,

Y si ayer hablábamos de nuevos recursos para el desarrollo de aplicaciones de escritorio hoy le toca el turno a las aplicaciones web, que también están de enhorabuena con la aparición de las nuevas versiones de Moonlight y JavaFX.

Tal como anunció ayer en su blog Miguel de Icaza, Moonlight estrena por fin su versión 1.0. Por aportar un poco de información, Moonlight es una implementación open source de la tecnología Silverlight de Microsoft para sistemas Linux. Se trata de un proyecto de Novell en el que también colabora Microsoft aportando los tests de pruebas de Silverlight y proporcionando de forma gratuita Microsoft Media Pack para los usuarios de Linux (conjunto de codecs que permiten la reproducción de medios compatibles con Silverlight [wmv, wma, mp3, etc...]). Moonlight 1.0 está basado en Silverlight 1.0, se ejecuta sobre el propio motor javascript del navegador y se distribuye en forma de plugins para Firefox 2 y Firefox 3. En la entrada publicada por Miguel de Icaza podéis encontrar mucha más información sobre la nueva versión e incluso un poco de historia del proyecto para quien esté interesado. Añadir además que Novell ya se encuentra trabajando en la próxima versión, Moonlight 2, que según el roadmap del proyecto debe ver la luz en septiembre de 2009 (aunque la primera beta debería aparecer en mayo). Esta segunda versión estará basada ya en Silverlight 2 y se ejecutará sobre un motor de ejecución .NET (Mono) y no sobre Javascript como la actual.

Por otro lado JavaFX, la tecnología de Sun que pretende competir con Silverlight/Moonlight (de Microsoft/Novell) y Flash/Flex (de Adobe) dentro del campo RIA (Rich Internet Applications), también estrena su versión JavaFX 1.1, cuya principal novedad es el soporte para la gran mayoría de los dispositivos móviles y proveedores de servicios actuales. Debo reconocer que no conozco demasiado esta plataforma, pero destaco el hecho de ejecutarse sobre el propio runtime de java, ya instalado en millones de equipos, lo que está haciendo que consiga muchos adeptos. Cabe también mencionar, que al igual que en el caso de Moonlight, Sun también tiene previsto publicar este mismo año su segunda versión de JavaFX 2.0, que incluirá mejoras en el lenguaje y aumentará el conjunto de componentes disponibles para el desarrollo.

En fin, la batalla por el pastel RIA está en pleno auge, ya veremos dónde acaba y quién es el vencedor.

, , , , , ,