Link del día: Máquinas Virtuales

Es bien conocido que la virtualización es una herramienta muy poderosa que amplía vastamente nuestras capacidades de prueba y simulación sobre sistemas para los cuales no disponemos el hardware real – o el dinero equivalente. Hoy por hoy las máquinas virtuales pueden llegar a ser tan poderosas como máquinas reales (con obvias limitaciones) y satisfacer muy bien ciertas necesidades (hosting con administración remota, ambiente de pruebas, testing de stress, investigación, etc.).

El proceso de creación de una máquina virtual es igual (o a veces un poquito más complicado) que la configuración de una máquina real: instalar el sistema operativo, configurarlo acordemente, configurar la red, instalar los programas necesarios, configurarlos, dejar todo en un estado lo más performante posible y finalmente, algún retoque final que querramos, y sabemos que solo el sistema operativo ya puede tomar un buen par de horas que no quisiéramos tener que sacrificar.

Para eso la gente de VMWare Images y VirtualBox Images (via LuAuF) nos deja imágenes prearmadas para bajar, y por mi parte también encontré estas imágenes para Virtual PC (aunque expiran muy prontito). Podemos descargarlas a nuestro disco y una vez ahí, ya tenemos el sistema operativo pre-instalado y a veces con algunas aplicaciones (como es el caso de las de Virtual PC).

Soy un zorrinito virtual.

(Read more →)

Link del día: Google Closure

Hace ya algunos días que Google publicó sus Closure Tools, una serie de herramientas para trabajar con JavaScript eficiente y lograr mejorar la performance, velocidad y tamaño del código. Entre ellos se encuentran Closure Compiler, una suerte de compilador para JavaScript, removiendo código innecesario, mejorando el código existente y minimizando lo que queda. También está la Closure Library, una librería JavaScript pero versión Google, y por último, los Closure Templates, una serie de soluciones “pre-hechas” para elementos reutilizables de HTML y UI.

Ahora, todo esto llama mi atención desde un artículo que encontré llamado Google Closure: How not to write JavaScript, que al principio parecía ser una crítica vacía de estas herramientas, pero luego se llena de fundamentos y (aquí es lo interesante) muchos datos que la gente de Google saltó al momento de crear estas herramientas. Esos datos son los que nos permitirían a nosotros aprender de esos errores y mejorar nuestras propias prácticas. Hay en todos lados para aprender.

Soy un zorrinito JavaScript.

(Read more →)

A Tester's Guide to .NET Programming

Terminé hace poco de leer el libro A Tester’s Guide to .NET Programming, de Randal Root y Mary Romero Sweeney, un interesante libro aproximativo a .NET de unas 630 páginas.

Mi prejuicio de este libro, basándome en su título, era que iba a encontrarme con un libro que mostrara características propias de Visual Studio y de la plataforma .NET para llevar a cabo tareas particulares de testing. Seguramente, pensaba yo, me encontraría con nuevos conceptos de testing y nuevas características o nuevos usos de características existentes que me permitirían mejorar las metodologías que conozco para testing.

Desafortunadamente, no ha sido el caso. El libro, debo decir aún así, es realmente bueno, muy detallado y explicativo en sus puntos. La suposición que el libro hace es: tomemos como tester a aquél que quiere realizar testeos (más que nada de aceptación de usuario) sobre un determinado software, y basado en eso, el programa enseña programación en VB.NET y C# orientado a la utilidad de ciertas cosas.

A pesar de no haber cumplido con lo que esperaba, este libro es una joyita. Al poner un concepto tan poco desarrollado sobre testing, nos permite utilizar este libro como un manual para aprender a programar en ambos lenguajes, planteando al testing como un ejercicio práctico que desarrollaremos a lo largo de toda la lectura. Y esto mismo es interesante, porque no solo tiene una aplicación práctica muy directa – cosa que muchos estudiantes de un lenguaje siempre quieren ver prontamente – sino que es fácil de entender y de sobrellevar.

El libro comienza con conceptos algo vagos de la programación, solo mostrando que con determinadas líneas en determinado lugar podremos lograr cierto resultado. Avanzando más, de a poco nos introducen a las clases, métodos, conceptos de orientación a objetos y reutilización de código. No llega a niveles más avanzados como la creación de frameworks para generar testware más complejo, pero se para a un paso de eso, y lo mantiene simple. Esto nos permite seguir el libro sin necesidad de demasiada atención, en donde sabemos que la información no está condensada sino explicada de formas que son fáciles de comprender, llenos de ejemplos, llenos de ejercicios prácticos y todo eso nos genera el impulso de seguir avanzando.

Como tal, resumo, este libro no tenía lo que yo esperaba encontrar, pero ha sido un muy buen hallazgo aún así.

Soy un zorrinito .NET.

(Read more →)

Link del día: Freenet

Freenet es el nombre de un proyecto (no del todo nuevo) que es tan ambicioso como para querer lograr una nueva internet, libre de restricciones y con pura anonimidad. La idea es que internet, en lugar de funcionar de forma servidor-cliente, funcione de una forma descentralizada, en donde nuestros contenidos pueden estar en cualquier lado, y donde cualquiera puede accederlos sin saber a dónde accede o cómo se está llegando ahí.

El proyecto de Freenet quiere entonces una distribución de la información totalmente libre, independientemente de las barreras legales que las distintas políticas apliquen, creando el concepto de una “internet” con una legislación independiente de la legislación que tengan los países.

No sabemos qué habrá ahí adentro, seguro que muchos lo están utilizando para lo más ilegal que se les ocurra, pero fuera de eso, el proyecto no deja de ser ambicioso y una idea muy interesante. Como toda gran idea, es un arma de doble filo.

Soy un zorrinito libre.

(Read more →)

Link del día: Chrome Inspector

Para aquellos que usamos Google Chrome (Safari también aplica), seguro ya sabemos que tenemos una sección llamada Developer Tools en donde podemos trabajar con el código fuente de una página, los estilos CSS y demás. Pero si es que no le hemos prestado mucha atención (yo no lo había hecho), tenemos muchísimas herramientas detalladas para trabajar con los sitios y no estaría bueno desaprovecharlas. Para las últimas features, aclaro, hace falta la versión del Developing Channel de Google Chrome, o el nightly build de Safari. De todos modos, tarde o temprano serán parte de alguna versión estable.

Con lo primero que me crucé es con el blog de BogoJoker, uno de los desarolladores involucrados en este tema, en donde cuenta varias características amigables al usuario del visor de HTML, del visor de propiedades CSS, y cómo editarlos. También trabajaron un poco con el resaltador de sintaxis para esas secciones, y otros arreglos menores. De ahí él linkea al blog de WebKit en donde podemos encontrar información más detallada sobre varias de sus características y cómo usarlas: la interfaz, la consola, cómo editar HTML, cómo editar CSS, cómo usar el panel de Recursos, cómo debuggear Javascript, cómo hacer profiling de sitios (Chrome agrega snapshots de memoria), cómo jugar con las bases de datos de HTML5, y la búsqueda.

Sabemos que todo esto está en desarollo y todavía está lleno de bugs, pero eso no hace que sea terriblemente útil y que podamos sacarle provecho. Para más ayuda sobre cómo hacer ciertas cosas, check out the enclosed instruction book, o checkeen los resultados de Youtube.

Soy un zorrinito cromado.

(Read more →)

Link del día: Java VisualVM

Gracias a un artículo de TaranFX me enteré de algo que, si bien no es nada nuevo, es terriblemente útil para todo desarrollador de Java. Se trata de una aplicación que Sun distribuye llamada VisualVM, que, básicamente, es un manager de aplicaciones y profiler de datos, muy completo, muy amigable y muy fácil de usar. Solo tenemos que tener la máquina virtual de Java instalada y tras eso, podemos bajarnos esta aplicación y ponerla a funcionar, desde el sitio oficial.

También la podemos integrar con algunos entornos de desarrollo (vi por ahí mencionados a Eclipse y IntelliJ IDea), o podemos incluso agregarle plugins para mejorar sus capacidades. Algo sin duda utilísimo para el desarrollador / tester Java.

Soy un zorrinito de café.

(Read more →)

Link del día: Geo-API

Geo-API es un servicio (por ahora gratuito) que se encuentra en estado alpha de desarollo, que básicamente nos permite obtener información geolocalizada basándose en un punto de latitud y longitud y cosas de interés que puedan estar a su alrededor. Esto incluye negocios, lugares turísticos, atracciones, etc. Podemos entonces obtener información que puede ser muy útil para el usuario de alguna aplicación (o para nosotros mismos) solo desde el punto en donde esté parado este usuario. Algo totalmente valioso para aplicaciones móviles.

Como si fuera poco, el proyecto del SDK (no el fuente) se encuentra en Google Code, que incluye el código de varios demos y de un SDK para programar en iPhone. También hay algo de documentación allí sobre el uso que se le puede dar.

Por último, también tenemos varios demos online funcionando, en la sección Product & Demos del sitio oficial.

Soy un zorrinito geolocalizado.

(Read more →)

Link del día: Mejorando un poquito esa programación

Aquellos que trabajamos con C# sabemos que de a poco el lenguaje se está convirtiendo en algo que tiene otro punto de vista sobre la programación. No es tan estructurado como programación orientada a objetos, atributos, propiedades, métodos, sino que entran a aparecer algunas cosas más, conceptos de la programación funcional. ¿Qué es esto? ¿Cómo aplicarlo? Podemos dejarnos llevar por este artículo llamado Functional Programming for Everyday, que nos cuenta de qué forma podemos ir asimilándolo a nuestras tareas de programación diarias. Si eso no nos alcanza tenemos otras introducciones más simples en Functional Programming in C# (Part I: Is it worth your time? y Part II: High Order Functions). Pero si aún así se quieren quedar con un ejemplo más práctico, pueden ver el de Introduction to Functional Programming in C#.

Si en cambio estamos del otro lado, por ejemplo, del lado web, y sabemos que la interfaz es lo más importante, tenemos que aprender a usar ciertas cosas que le hagan la vida más fácil al usuario. Ahí es donde podemos, por el lado de los estilos, generar dinamismo pensando en CSS Orientado a Objetos (no realmente, pero el concepto es válido). Podríamos pensar en javascript para convertir algún formulario demasiado largo en algún wizard: Turn any webform into a wizard with jQuery, o usando varios tips para hacer el javascript más rápido: Improve your jQuery - Excellent 25 tips.

De estos está la internet llena, solo hay que buscar y ponerse a leer y a elegir qué será lo mejor.

Soy un zorrinito programador.

(Read more →)

Link del día: Go

Gracias a DG quien me pasó el dato, resulta que ahora es noticia que Google quiere liberar un lenguaje llamado Go (como si otra cosa faltara). Este lenguaje, según dicen, quiere combinar lo mejor de C++, Python, e incluso ideas desde Pascal, Oberon, etc…

El sitio oficial contiene mucha información al respecto, y creo que toda la necesaria para comenzar a utilizarlo y probar qué tal. Prometen que será fácil, que será rápido y que será algo que nos librará de varios vicios que otros lenguajes tenían.

Habrá que averiguar.

Soy un zorrinito Google.

(Read more →)

Link del día: Música automatizada

Este link sale de un artículo me encontré en Ars.Technica llamado Virtual Composer Makes Beautifull Music – and stirs controversy. Se trata de un agente de inteligencia artifical basado en el artículo de David Cope, Computer Models of Musical Creativity, pero yo sé que ustedes quieren más que simplemente leer artículos e imaginar así que para ustedes viene lo siguiente.

David Cope publicó también una página con el título de MP3 Files of David Cope Experiments in Musical Intelligence, donde se muestran mp3 creados por este agente bajo esos métodos, basándose en los estilos de distintos autores clásicos. Yo escuché algunos de Beethoven y, la verdad, si me aseguraran que son realmente de Beethoven, podría creérmelo. Y fuera o no creíble, son hermosos de todos modos.

Soy un zorrinito artificial.

(Read more →)