Evento 22 de marzo - Reactive extensions
por
JueveX
el
3/28/2012 1:07:00 PM
Charla;
Con motivo de la codemotion de Madrid del pasado fin de semana, el último JueveX lo dedicamos a preparar una charla que exponíamos Quique Martínez y yo, en las oficinas de Sant Just sobre reactive extensions. La descripción de la charla es la siguiente:
Reactive extensions: la evolución del lenguaje
La extensión Linq supuso una revolución para todos los lenguajes de la plataforma .net. Fue el hito que hizo que los desarrolladores empezáramos a trabajar colecciones, iteraciones y enumeraciones de una forma nueva. Más cómodo, más sencillo y muy rápido.
A finales de 2009 Erik Meijer (padre de linq) está a punto de presentarnos la evolución de Linq y del lenguaje secuencial actual. Propone un nuevo paradigma de programación: La reactive programming. Para conseguir llevarlo a cabo, los Microsoft Live Labs ponen a disposición de cualquiera las reactive extensions que aportarán una framework (conjunto de herramientas) para plataformas .net y javascript.
Bajo su objetivo principal: la creación de un lenguaje común para gestionar llamadas asíncronas a un servicio y los eventos que ocurren en la interfaz gráfica; se esconde una herramienta mucho más potente. Encontramos que es posible usarla para programar muchas partes comunes de la mayor parte del software actual.
0 Comentario(s)
Evento 8 de marzo - Show & Tell: Herramientas de Testing
por
JueveX
el
3/10/2012 1:41:00 PM
Mesa redonda;
Hacer software de calidad nos obliga a probarlo
constantemente … y todos sabemos lo que nos gusta a los desarrolladores probar
nuestro software :P
Por eso existen herramientas para hacer tests unitarios,
test de carga, de UI, … Tal vez demasiadas para conocerlas todas, y eso es lo
que quisimos mostrar el jueveX pasado.
Los asistentes pudieron traer su herramienta de testing
favorita y mostrarla al resto de los participantes. Se respondieron preguntas como ¿Cuales son sus puntos fuertes? y ¿cuales sus
puntos débiles? sobre:
- Visual Studio como herramienta de Testing
- Test Manager para el equipo de QA
- Lanzar pruebas de carga con Azure
¿Te vas a perder el próximo Show & Tell?
Hasta el próximo JueveX!
0 Comentario(s)
Evento 1 de marzo - Open space
por
JueveX
el
3/2/2012 1:33:00 PM
Charla;CodeKata;
Ya
sabemos que esta semana no tocaba JueveX, pero
tomando café surgió la idea de montar uno improvisado. La idea era realizar
un pequeño open space.
En
un open space los asistentes se auto-organizan para conseguir las
mejores ideas acerca de una temática concreta. El procedimiento está abierto a
que cualquiera de los asistentes propongan un tema para reunirse. Este tema
puede abarcar desde una charla dirigida por el promotor, una mesa redonda,
o incluso se puede proponer una charla abierta donde nos gustaría que
otra persona nos comentará la temática, ya que no tenemos los conocimientos
pero si el interés. Una vez se tienen las temáticas, se votan entre los asistentes
y se programan a lo largo del evento.
Dentro de este marco realizamos un open space reducido con 3 charlas de 20 minunotos, que pudimos retrasmitir vía life meeting. En ellas contamos con dos invitados de excepción:
- Carlos Ble (@carlosble): nos habló sobre
- Tanausú Cerdeña (@chozero): nos mostró su aplicación FeudalSquare basada en las APIs de FourSquare, y nos comentó cómo se organizaban ellos técnica y administrativamente.
- Fernando Escolar: hizo una pequeña presentación de Windows Phone 7.
Lo resultante de esto fué un vídeo que tan pronto tengamos formateado subiremos para que podaís echarle un vistazo todos...
Hasta el próximo JueveX!
0 Comentario(s)
Evento 9 de febrero - Antipatrones
por
JueveX
el
2/13/2012 10:34:00 AM
Charla;Mesa redonda;
El pasado jueves volvimos a tener un evento. Esta vez la charla la impartió nuestro compañero Pablo Bouzada y la temática eran: Antipatrones de desarrollo de software.
Un antipatrón es un patrón que nos dice como ir de un problema a una mala
solución. ¿Para qué es bueno conocerlos? Básicamente para evitarlos, es tan
importante saber cómo se hacen las cosas bien como tratar de no hacerlas mal.
En esta charla se comentaron algunos de los antipatrones de
desarrollo más conocidos y presentando ejemplos de cómo solucionarlos.
Al concluir tuvo lugar una mesa redonda donde se aclararon las dudas y comentaron ciertos antipatrones.
Como ya empieza a ser habitual, dejamos a vuestra disposición el material de la chara y el vídeo de la grabación:
Esta vez las descargas están en formato 7zip, y a partir de ahora es posible que lo utilicemos para todas las grabaciones, ya que las comprime muy bien...
Hasta el próximo JueveX!
0 Comentario(s)
Evento del 26 de enero
por
JueveX
el
1/27/2012 12:49:00 PM
CodeKata;
Así como un futbolista tiene que entrenar para que cuando llegue el día del partido juegue mejor, nosotros los desarrolladores no somos diferentes. Por eso existen las katas de código.
Para los que practicaron karate o judo, no será un termino extraño. El nombre kata proviene del japonés y su traducción es “forma”. Y no es un termino exclusivo de las artes marciales. En Japón se utiliza este termino en el teatro o para designar ejercicios de caligrafía, por ejemplo.
En programación hablaremos de kata de código para referirnos a pequeños ejercicios de programación, que no cuesta más de una hora resolver, diseñados para entrenar nuestras facultades. Por un lado nos sirven de entrenamiento y por otro obtendremos un feedback y diferentes soluciones.
En este sentido ayer nos reunimos en las oficinas de Sant Just para, dando continuidad a los JueveX, hacer un conding dojo. Como sensei contamos con Marc Rubiño. Y basándonos en la filosofía del Code Drunk, resolvimos una kata de código.
La kata (ejercicio) en cuestión fue Piedra-Papel-Tijera-Lagarto-Spock. Y aquí os dejamos unas descargas interesantes por si quereís ensayar en casa:
Descargar kata
Una solución de la kata
Hasta el próximo JueveX!
0 Comentario(s)
Evento 12 enero - TDD
por
JueveX
el
1/18/2012 3:07:00 PM
Charla;Mesa redonda;
El pasado 12 de enero estrenamos los JueveX en las oficinas de Sant Just en este año 2012. Y lo hicimos con una charla llamada "TDD en entornos .net para el mundo real", que al final derivó en mesa redonda.
Con el fin de que esta charla llegara a más gente, la grabamos en una sesión de live meeting. Y con esta entrada en el nuevo blog pretendemos haceros llegar ese video y el resto de los materiales que tratamos el pasado jueves.
Podréis descargar:
Pero antes hacemos un descargo de responsabilidades y os diremos que las animaciones de la presentación en el grabación no aparecen y es posible que alguna diapositiva no se vea bien en el video. Además, la imagen se muestra con delay y a veces se habla de cosas que aún no han pasado.
De cualquier forma, siempre es interesante tener material didáctico. Y de este evento hemos aprendido muchas cosas que intentaremos mejorar en posteriores grabaciones.
Hasta el próximo JueveX!
0 Comentario(s)
Bienvenido al blog de los JueveX
por
JueveX
el
1/18/2012 8:59:00 AM
Anuncios;
Los JueveX son una actividad desarrollada por los trabajadores de Aventia Renacimiento enfocadas a aprender y divertirnos usando las últimas tecnologías.
Si quieres saber más sobre esto, pasate por la sección de Acerca de los JueveX.
Lo que podrás encontrar en este sitio será:
- La agenda de los JueveX, que podrás ver en el calendario.
- Los materiales, grabaciones y artículos más interesantes que se traten.
- Un lugar donde discutir o plasmar tu opinión sobre estos eventos.
0 Comentario(s)
Aplicaciones imprescindibles en Windows Phone 7
por
Gisela Torres
el
6/7/2011 7:25:00 PM
Windows Phone 7;
Después de probar varias aplicaciones disponibles actualmente en el marketplace de Windows Phone 7, me gustaría compartir aquellas que creo que son imprescindibles en nuestros dispositivos
 |
Adobe Reader: Una de las aplicaciones que no necesita presentación. Gracias a ella podremos disfrutar de nuestros archivos en formato PDF. |
 |
Facebook: Aplicación oficial desarrollada por Microsoft Corporation. En una versión anterior presentaba bastantes errores de refresco y en ocasiones se quedaba colgada. Recientemente ha mejorado de forma considerable. Si bien una de las cosas que admiro de Windows Phone 7 es su gran integración con Facebook (permite escribir en muros, imágenes, perfil etcétera desde el propio sistema operativo), si queremos una aplicación exclusiva para esta red social, la versión oficial es altamente recomendable. |
 |
Foursquare: Aplicación oficial de foursquare. Para todos aquellos amantes del check in |
 |
4th & Mayor: Otro cliente para Foursquare, del cual dicen que será el sucesor de la versión oficial. Si bien a día de hoy la versión oficial sólo soporta check-in, con este cliente podremos además la crear y visualizar fotos de los lugares, disfrutar de nuevas features como “explore”, mayor rápidez en la localización de sitios próximos, entre otras. |
 |
Flory: Se trata de una aplicación dedicada a la mensajería instantánea. Actualmente nos da soporte para Google Talk y Facebook, aprovechando las notificaciones Push y Tile. Todos los mensajes son securizados y encriptados a 256 bits. |
 |
Messenger by Miyowa: Si bien la versión Mango (Windows Phone 7.5) incorporará Windows Live Messenger, mientras tanto podemos ir abriendo boca con este cliente con notificaciones Tile. |
 |
Beez: Cliente para la famosa red social Twitter con notificaciones Tile. Una de las características que más me motivan al utilizar un cliente para esta red social es poder recibir notificaciones de menciones y mensajes privados que recibo a través de la misma. Esta es la aplicación que más se acerca a mis necesidades, aunque las notificaciones llegan en ocasiones con un retardo considerable |
 |
Twitter: Aplicación oficial para Twitter. Encantada con su interfaz gráfica donde podemos ver claramente toda la información de la plataforma. A diferencia de la anterior no aprovecha las notificaciones Tile… Por el momento espero |
 |
Birdsong: Otro cliente de Twitter con gran acogida que nos ofrece nuevas características: configuración del timeline con listas, búsquedas guardadas, etcétera, integración de las imágenes twitteadas, tweets mostrados en modo conversación, thread de mensajes privados, integración con Places, etcétera. |
 |
Rowi: Cliente de pago para Twitter que nos ofrece notificaciones push y una interfaz limpia. Si bien dispone de una versión free con el inconveniente publicitario por $2,99 podemos disfrutar la misma libre de ads. |
 |
Shazam: Aplicación conocida por todos aquellos clientes de iPhone, iPad, Android, BlackBerry y Nokia que nos permite detectar información sobre la canción que está sonando. |
 |
TextMe: Si bien soy una gran fan de WhatsApp, por el momento no tenemos una versión disponible para Windows Phone 7. Para seguir ahorrando en nuestros SMS, MMS, etcétera podemos hacer uso de TextMe (también disponible para iPhone) el cual nos aporta una función similar al mencionado anteriormente. |
 |
Microsoft Tag: Se trata de un lector de tags made in Microsoft con el que podremos descifrar y leer el contenido de los mismos. |
 |
Amazon Kindle: Otra de las aplicaciones que no podía faltar era el cliente de Amazon para la lectura de nuestros libros comprados en la gran tienda virtual de esta compañía. |
 |
WordPress: Gestor de nuestros blogs gestionados con WordPress. Nos permite tanto postear, administrar páginas, comentarios, etcétera. |
 |
Ebay: Excelente cliente para la conocida página de subastas donde podremos buscar, seguir, pujar, pagar e incluso enviar mensajes a los vendedores. |
 |
AppFinder: Aplicación complementaria para localizar contenido dentro del marketplace de Windows Phone 7. Actualmente el buscador por defecto del sistema operativo no está lo suficientemente optimizado y a veces se complica la localización de algunas aplicaciones. |
 |
NextGen Reader: Lector de RSS que nos permite sincronizar con nuestros feeds de Google Reader. Además nos ofrece modo offline, compartir artículos en Twitter, enviar feeds a Instapaper, entre otros. |
 |
Fruit Ninja: Juego ya conocido por los usuarios de apple donde debemos cortar todas aquellas frutas que aparezcan en pantalla como un autentico ninja ¡Cuidado! ¡Super adictivo! |
¿Alguien da más?
¡Saludos!
0 Comentario(s)
Subir un proyecto existente a Windows Azure
por
Gisela Torres
el
6/7/2011 7:12:00 PM
Una de las preguntas que me llegan a través del formulario de contacto es qué es lo necesario para subir una aplicación que ya tenemos implementada, en este caso con Web Forms, a la plataforma Windows Azure. En realidad, un proyecto para la nube contiene todos aquellos proyectos que componen nuestra aplicación y además un proyecto relacionado con la plataforma en el cual se define qué rol tiene el resto de proyectos de nuestra solución.
Cuando creamos una solución de tipo Cloud una de las ventanas que nos aparece es la siguiente:
En ella podemos seleccionar qué tipo de aplicaciones queremos implementar, desde aplicaciones web a aplicaciones en segundo plano. Sin embargo, uno de los escenarios más comunes es cuando no tenemos nada que implementar sino que únicamente queremos acondicionar su subida a la nube. En ese caso, no seleccionamos ninguno de los roles ofrecidos y pulsamos directamente en el botón OK. De esta forma, estamos pidiendo a Visual Studio 2010 crear una solución con un proyecto del tipo cloud sin ningún rol asociado.
Si en este momento tratáramos de ejecutar el proyecto, pulsando F5, Visual Studio nos devolvería el siguiente error:
En él se nos está avisando de que actualmente no hay ningún rol asociado al proyecto y que al menos es requerido uno del tipo web, worker o virtual machine. Llegado a este punto, debemos añadir aquel proyecto(s) a la solución que queramos subir a Windows Azure Platform desempeñando uno de los roles.
Al igual que en cualquier solución convencional, copiamos/cortamos el proyecto que queramos añadir a la solución
y lo pegamos dentro de la carpeta del proyecto cloud.
Para que este aparezca dentro de la solución, hacemos clic con el botón derecho a nivel de solución y seleccionamos Add => Existing project…
y localizamos el archivo del proyecto que acabamos de mover dentro de la solución cloud.
Si bien este ya aparece dentro de la ventana Solution Explorer, todavía no forma parte del servicio que será desplegado en la nube. Para finalizar la configuración, debemos hacer clic con el botón derecho sobre la carpeta Roles y seleccionar Add => Web Role Project in solution…
Acto seguido nos aparecerá un cuadro de diálogo donde podremos seleccionar aquellos proyectos que encajen dentro de cualquiera de los roles existentes a día de hoy en la plataforma de Windows Azure.
Por otro lado habrá proyectos, por ejemplo de tipo Class Library, que no serán necesarios subirlos a la nube como tal sino únicamente las dlls resultantes del mismo.
Como nota adicional, es importante que nos aseguremos de que todas las librerías utilizadas en los proyectos ya existentes fuera de la plataforma y que queramos desplegar estén disponibles en la nube. Como solución podemos modificar las propiedades de las mismas como Copy Local = true o bien utilizar Startups.
Espero que sea de utilidad
¡Saludos!
0 Comentario(s)
Windows Azure Startups
por
Gisela Torres
el
6/7/2011 6:47:00 PM
Windows Azure;
Una de las cosas que más me gustan de la plataforma Windows Azure es que nuestras soluciones se convierten en un paquete capaz de acondicionar su entorno de vida Todos aquellos pasos previos, como la instalación de librerías, configuración de puertos en el firewall, etcétera, podemos definirlos gracias a la sección Startup del archivo ServiceDefinition.csdef.
Esta sección nos permite ejecutar cualquier tipo de acción desatendida que sea necesaria para cada una de las instancias de nuestro rol. Para verlo con un ejemplo, voy a mostrar cómo sería posible la instalación de las librerías de ASP.NET MVC 3, ya que, a día de hoy, estas no están disponibles por defecto en las imágenes que utilizan las instancias de Windows Azure.
En primer lugar, creamos un projecto de tipo cloud sin seleccionar ningún rol. Para poder añadir un proyecto del tipo ASP.NET MVC 3, seleccionamos con el botón derecho sobre la solución y hacemos clic sobre Add -> New Project…
por último seleccionamos la plantilla ASP.NET MVC 3 Web Application (En mi caso la plantilla que he utilizado fue Internet Application) y esperamos a que la misma se genere.
Si llegados a este punto pulsamos F5 para ejecutar la aplicación, Visual Studio nos informará del siguiente error:
El motivo es que, si bien hemos añadido una aplicación web a nuestro proyecto, la misma no está asociada con el proyecto cloud. Para ello, nos posicionamos en la carpeta Roles y, haciendo clic con el botón derecho sobre ella, seleccionamos Add -> Web Role Project in solution…
Pulsamos F5 para comprobar que en local todo funciona correctamente
Una vez que tenemos nuestro proyecto listo, descargamos el ejecutable para la instalación llamado AspNetMVC3ToolsUpdateSetup.exe desde el siguiente enlace.
Este archivo debemos incluirlo dentro del proyecto y modificar las propiedades del mismo para que sea copiado en el paquete que posteriormente subiremos a la nube.
¡Perfecto! Ya tenemos nuestra solución con una aplicación ASP.NET MVC 3 y el ejecutable que instalará las librerías necesarias para que el sitio web funcione en Windows Azure. Como último paso, debemos definir el apartado Startup y definir una tarea donde indiquemos que es necesario instalar ASP.NET MVC 3 antes de que la aplicación esté disponible para los usuarios. Para ello, abrimos el archivo ServiceDefinition.csdef donde añadimos la sección Startup con los siguientes valores:
<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="Startups" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
<WebRole name="MyASPNETMVC3">
<Startup >
<Task commandLine ="installaspnetmvc3.cmd" executionContext="elevated" taskType="simple"></Task>
</Startup>
<Sites>
<Site name="Web">
<Bindings>
<Binding name="Endpoint1" endpointName="Endpoint1" />
</Bindings>
</Site>
</Sites>
<Endpoints>
<InputEndpoint name="Endpoint1" protocol="http" port="80" />
</Endpoints>
<Imports>
<Import moduleName="Diagnostics" />
</Imports>
</WebRole>
</ServiceDefinition>
Dentro del apartado Startup podemos tener tantas tareas como sean necesarias con los siguiente parámetros:
commandLine: Recibe como valor el nombre del programa o script que queremos ejecutar. En este caso vamos a invocar a un archivo llamado installaspnetmvc3.cmd, el cual situaremos en la raiz del proyecto web.
En él vamos a incluir la llamada al archivo AspNetMVC3ToolsUpdateSetup.exe con la opción /q para indicar que debe ser una instalación “silenciosa” o desatendida
E:\approot\files\AspNetMVC3ToolsUpdateSetup.exe /q
Nota: Existe un problema a la hora de generar scripts desde Visual Studio, el cual añade un byte para marcar todos los ficheros por defecto. Para evitar incidentes, recomiendo crear estos archivos con Notepad o modificar las opciones de guardado en File -> Advanced Save Options… donde deberemos seleccionar Unicode (UTF-8 without signature) – Codepage 650001 encoding.
executionContext: Nos permite indicar el nivel de permisos que queremos que tenga la tarea (limited o elevated)
taskType: Dependiendo de la implicación que tenga nuestra tarea en relación con el rol, podemos elegir entre: - simple: Se trata del tipo de tarea síncrona, la cual paraliza cualquier proceso hasta que la misma termina. Si no especificamos ningún tipo, esta es la opción por defecto.
- background: Nuestra tarea se ejecutará a la par que otras (la ejecución de nuestro rol por ejemplo).
- foreground: A diferencia del tipo anterior, cuando especificamos una tarea foreground esta se ejecutará de manera asíncrona como la anterior. La peculiaridad consiste en que el rol no podrá detenerse hasta que dicha tarea haya finalizado.
Si desplegamos nuestra aplicación en Windows Azure, podremos disfrutar de ASP.NET MVC 3 gracias a Startup section
Espero que haya sido de utilidad
¡Saludos!
0 Comentario(s)
|
|
|
|
|
|
|