El código de mi Droid

Durante el CodeCamp casi todos los asistentes estuvimos preparando unos Droids para el concurso del Lego MindStorm NTX de Miguel Jimenez, el caso es que por problemas técnicos (versiones y alguna cosilla más) no fueron usados para el concurso dejando totalmente al azar la lucha de Legos.

El funcionamiento de los Droids espero que nos lo explique detalladamente Miguel un día de estos cuando publique los droids y la aplicación para la lucha.

Yo de momento os cuento que era lo que había que hacer.

Para empezar he importado los siguientes Namespaces:

Imports System Imports CloneWars

Se trataba de implementar una interfaz en nuestra clase:

Public Class EugeBot Implements CloneWars.IDroid End Class

Al implementar la interfaz se crearon las siguientes propiedades que encapsulé:

Const _name As String = "eecsaky" Const _faction As Faction = CloneWars.Faction.RebelAlliance Private _status As Status Private _combat As Combat Public ReadOnly Property CombatMovements() As CloneWars.Combat Implements CloneWars.IDroid.CombatMovements Get Return _combat End Get End Property Public ReadOnly Property Faction() As CloneWars.Faction Implements CloneWars.IDroid.Faction Get Return _faction End Get End Property Public ReadOnly Property Name() As String Implements CloneWars.IDroid.Name Get Return _name End Get End Property Public ReadOnly Property Status() As CloneWars.Status Implements CloneWars.IDroid.Status Get Return _status End Get End Property

Y el procedimiento:

Public Sub InitDroid(ByVal status As CloneWars.Status) Implements CloneWars.IDroid.InitDroid End Sub

En este procedimiento debíamos de crear los cinco turnos de los que se componía cada combate, lo lógico sería pensar cual era el orden de ataque para sobrevivir y ganar el combate, pero claro eso era lo lógico no lo creativo.

Mi razonamiento era el siguiente, si creas un Droid que no puede ganar a ninguno lo has fastidiado, ¿Pero qué pasa si cada ataque es diferente? Pues estás en las manos de azar completamente. Entoces la solución era generar aleatoriamente, para ello cree, con la ayuda de Bruno [;)], los siguientes metodos privados:

 

Protected Function GetRandomTurn() As Turn Dim TurnDef1, TurnDef2, TurnDef3 As TurnDefense Dim myDef1, myDef2, myDef3 As CloneWars.Defense myDef1 = GetRandomDefense() myDef2 = GetRandomDefense() Do Until myDef1 <> myDef2 myDef2 = GetRandomDefense() Loop myDef3 = GetRandomDefense() Do Until myDef1 <> myDef2 And myDef1 <> myDef3 myDef3 = GetRandomDefense() Loop TurnDef1 = New TurnDefense(myDef1, GetRandomAttack()) TurnDef2 = New TurnDefense(myDef2, GetRandomAttack()) TurnDef3 = New TurnDefense(myDef3, GetRandomAttack()) Return New Turn(GetRandomAttack(), TurnDef1, TurnDef2, TurnDef3) End Function Protected Function GetRandomAttack() As CloneWars.Attack Dim att As CloneWars.Attack Randomize() Dim rnd As New Random Select Case rnd.Next(4) Case Is = 0 att = Attack.ForcePike Case Is = 1 att = Attack.LightCane Case Is = 2 att = Attack.LightSaber Case Is = 3 att = Attack.PunchFight Case Else att = Attack.UseTheForce End Select Return att End Function Protected Function GetRandomDefense() As CloneWars.Defense Dim def As CloneWars.Defense Randomize() Dim rnd As New Random Select Case rnd.Next(8) Case Is = 0 def = Defense.CounterAttack Case Is = 1 def = Defense.ForceShield Case Is = 2 def = Defense.ProtectWithForce Case Is = 3 def = Defense.PunchFight Case Is = 4 def = Defense.SaberDefense Case Is = 5 def = Defense.UseTheForce Case Is = 6 def = Defense.WalkBack Case Else def = Defense.WristShield End Select Return def End Function

Y esto lo apicamos al procedimiento InitDroid de la siguiente forma:

Public Sub InitDroid(ByVal status As CloneWars.Status) Implements CloneWars.IDroid.InitDroid _status = status _combat = New Combat() With _combat For i As Integer = 0 To 4 _combat.AddTurn(GetRandomTurn) Next End With End Sub

Se que no fui el único que hizo esto para su Droid, pero bueno aquí dejo el código para quien lo quiera reutilizar para lo que necesite [:)]

CodeCamp, llego el momento del recuento (o de contarlo)

Este fin de semana se celebró el CodeCamp en Madrid y hay muchísimas cosas que contar, y no me refiero al número de freaks que estabamos allí dentro, mi idea para este post era explicar un poco la agenda, pero Rodrigo se me ha adelantado y no se trata de poner lo mismo. Así que la agenda la pondré de forma resumida. La verdad antes de nada quiero decir que no he podido ver completas todas las sesiones que he querido, ya que entre Miguel Jimenez nos tuvo entretenidos haciendo el Droid para el concurso (es una pena que al final no se hiciese el concurso con los Droids [:(]). Dentro de un par de días publicaré el código de mi Droid comentado.


El sábado tuvimos seis sesiones cada una mejor que la anterior, la primera fue Robotics Studio, una estupenda presentación con la que Miguel Jiménez nos dejo con las ganas de ganar el Lego Mindstorm NXT, la segunda fueron una serie de consejos, muy interesantes, que Fernando Guerrero nos ha dejado para nuestro futuro, la tercera fue sobre Speech Recognition en .NET 3.0, y tengo que pedir perdón ya que no se quien la dio, en la que nos hablaron de como con Vista poder reconocer la voz y como transformar el texto en sonido. Abrió la tarde Pablo Pelaez, y desde aquí le hago una OLA VIRTUAL y lo que haga falta, ya que fue una presentación espectacular sobre 10 maneras para quebrar tu empresa, la siguiente sesión fue sobre mineria de datos a la cual no asistí ya que estuve en los Hands On Lab en ese momento así que puedo opinar sobre ella la dieron Paco y Miguel Egea, una pena no haber asistido ya que creo que estuvo muy bien y el cierre del día fue espectacular de la mano de Chema Alonso y Ricardo Varela en la que disfrazados de ghostbusters en una presentación sobre LO QUE ES la Web 2.0[:)].


El domingo tengo que confesar que vi el principio de la primer sesión XNA y el final de la última, dispositivos móviles, esta última de la mano de Unai y Alejandro Mezcua. Por el medio hubo otra sobre cómo crear tu proyecto empresarial. Pero tuvimos reunión los User Groups y me lo perdí [:(].


Una vez «analizadas» las sesiones vamos a ver la parte festiva del evento. A la noche del sábado tuvimos fiesta de disfrazes, de la mano «do bruxo Unai» una Queimada y más tarde fiesta organizada por Miguel Jimenez y su hermano. Lo siento por todos los que os disfrazastéis, pero el mejor disfraz fue el de Jorge Serrano, de jorobado y la cara desfigurada, para mi fue el mejor.


¿Y que me he llevado de allí?… Ademas de un par de revistas que ya tenía, un libro que ya tengo triplicado, una camiseta del CodeCamp, unas hojitas y un boli de MSDN… Pues mi «Manual avanzado de Visual Basic 2005» de Jorge Serrano firmado por él, haber conocido a un montón de personas con las que llevo hablando «virtualmente» desde hace tiempo como Fran Díaz, Bruno, Pablo Pelaez, Alfonso Rodríguez, Guille, Jorge Serrano, Iván González, Chema Alonso, Rodrígo Corral, Miguel Jimenez, Sergio Vázquez, etc. Seguramente me olvide de alguien… Y a los que he conocido en este evento, como Cristian Manteiga, Ricardo Varela, Miguel Egea, Miguel (profesor en la universidad de León), etc. Al igual que los que ya conocía «virtualmente» seguramente que me olvido de alguien. Y a los que ya conocía personalmente Unai, Marco y David Carmona.


La verdad… ha sido una muy buena esperiencia que habrá que repetir[;)]

Problemas con la configuración de Report Server

Hace ya tiempo que me encontré con el problema que aquí voy a contar y terminé desistiendo de configurarlo (y con ello de probarlo, claro), pero este sábado he formateado el PC y cuando fui a instalar SQL Server 2005 Express Edition with Advanced Services (Podéis ver aquí todas las versiónes de SQL Express) me volví a ver cara a cara con Reporting Services.


El problema que tuve en su momento fue que durante la configuración una vez llegado al paso para selecionar la base de datos del Report Server, una vez que empezaba a crear la base de datos me decía que no puede crear el script de la base de datos. ¿Curioso verdad? Pero no me empiezo a cabrear hasta el momento que intento crear los scripts por todos los medios y no hay manera… 


Aparentemente tenía tres opciones: reiniciar el PC (solución típica que siempre falla [:)]), reinstalar el SQL Server 2005 Express Edition with Advanced Services y por último dejarlo como estaba (y quedarme sin probar Reporting Services, esa no era mi idea).


Probe las tres opciones en el orden citadas (reiniciar, reinstalar y dejar como estaba) y, claro, todo seguí igual.


Eso hasta hoy que reinstalando el SQL Server en mi PC tras formatear el PC volví a encontrarme con Reporting Services y esta vez no pasaba sin configurarlo [:)]. En este momento, recién instalado todo, no debía haber nada que no me permitiese instalarlo… Muy bonito para ser cierto… Porque el error era el mismo.


Ahora voy a analizar que hacía:



  1. Selecciono servidor
  2. Escribo nombre de la base de datos
  3. Y selecciono idioma español

Ese era mi problema… habia una lista con diferentes idiomas para la base de datos y yo muy ingenuo selecionaba español, una vez que seleccione el Inglés todo fue perfectamente.


A partir de ahora todo en inglés [;)], espero que sea útil para aquellos que se hayan encontrado con el mismo problema.

¿Preparados para el próximo fin de semana?

El próximo fin de semana en el Camping del Escorial (Madrid) se celebrán 2 eventos, el viernes el Train de Trainers y sábado y domingo el CodeCamp. Allí nos juntaremos más de 200 programadores con la misma finalidad: escribir código.


En el CodeCamp, además de las sesiones que podremos disfrutar habrá un concurso en el que el premio será un Lego Mindstorm (sí, como el que tiene el Bruno).


Además los dotNetClubs han dicho que «la van a liar» este año, jejeje, nos esperaba menos [:)].


Yo en el Train de Trainers no estaré pero si en el CodeCamp, espero veros a todos [;)]. Creo que casi todos los Geeks de aquí estaremos [:D]

Eventos en A Coruña para los próximos meses

En A Coruña tenemos una serie de eventos entre los que podemos encontrar los siguientes para los programadores:

29/11/2006: Microsoft University Tour ´07

En este evento preparado especialmente para estudiantes podemos encontrar un montón de información sobre ASP.NET Ajax, diseño grafico con la nueva plataforma Expression, desarrollo de juegos, etc.

Agenda

10:00 Introducción a .NET

10:30 ASP.NET / ATLAS WEB DEVELOPMENT

11:30 SQL Interfaces 2D y 3D en aplicaciones (WPF) / Expressions Tools

12:15 Descanso

12:30 Desarrollo de aplicaciones para dispositivos móviles

13.30 Desarrollo de juegos con DirectX / XNA

Ubicación del evento:

Facultad de Informática
Campus de Elviña
La Coruña La Coruña 15071

Página de registro:

http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032310686&culture=es-ES

 

12/12/2006: Prelanzamiento técnico sobre Exchange Server 2007, 2007 Office System y Windows Vista

Uno de los acontecimientos más importantes y con mayor impacto sobre la productividad de las personas y las organizaciones de los últimos años.

Actualmente, los usuarios requieren un software más veloz, más simple y visualmente atractivo. Con Microsoft Windows Vista y Microsoft Office SharePoint Server, los desarrolladores pueden diferenciar sus aplicaciones en torno a la experiencia del usuario, proveer nuevas maneras de aumentar la productividad, y hacer que las aplicaciones ocupen un lugar más relevante y sean más divertidas de usar. Microsoft ofrece nuevas tecnologías y un conjunto de guías que muestran cómo utilizar dichas innovaciones en el entorno Windows Vista para generar experiencias más ricas desde el punto de vista gráfico y aprovechar las ventajas de los PC para usuarios finales.

Agenda:

Mañana

9:30 Novedades de Exchange Server 2007, Office 2007 y Windows Vista para profesionales de TI

10:00 Se demostrarán algunas de las mejoras que Exchange Server 2007 aporta a la administración, seguridad y disponibilidad de la plataforma.

11:30 Descanso

12:00 Veremos las nuevas ventajas en el apartado de infraestructura de colaboración, seguridad y privacidad de datos que aporta 2007 Microsoft Office system.

13:00 Demostraremos algunas de las características que harán más fácil la gestión de imágenes y el despliegue del nuevo Windows Vista, así como aquellas otras que afectan a su fiabilidad y rendimiento.

Tarde

15:30 Registro

16:00 Introducción

16:30 Desarrollo de la capa de negocio con Windows Communication Foundation y Windows Workflow Foundation

17:20 Construcción del cliente rico con Windows Presentation Foundation

18:10 Creando una web pública con Microsoft Office SharePoint Server

Ubicación del evento

Centro de Estudios Caixa Galicia
Ronda de Nelle 31
A Coruña Galicia 15007

Página de registro:

http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032312561&culture=es-ES

 

Además en Coruña hay el 21 de noviembre el lanzamiento de Small Business Server 2003 R2 y Windows Mobile 5.0. Podéis informaros aquí.

 

Como siempre, espero que os sea útil y veros en algun evento [:)].

.NUGG – .Net User Group Galicia

Bueno… hace unos días os contaba que estamos creando un grupo de usuarios para Galicia. Podéis leerlo aquí.


Pues hoy os traigo más información, para empezar ya tenemos nombre, se llamará .NET User Group Galicia (.NUGG).


Además también tenemos dominio para la Web: www.nugg.es y pronto podréis ver nuestra página ahí.


Las reuniones las haremos un sábado cada mes y probablemente en diciembre haremos la primera y las haremos en A Coruña.


Todo el que quiera saber más de .NUGG (o colaborar) solo tiene que mandarnos un mail a cualquiera de los administradores (Unai, Marco, José, Iván, Alvaro y yo).


Ya os seguiré contando más cosillas [:)]

¡Ya tenemos aquí ASP.NET Ajax Beta 1.0!!!

A pesar de que Carlos Zanini e Iván Mostacero ya nos lo han contado aquí en geeks, en mi blog no podía faltar [:D]. El caso es el siguiente, esta nueva versión tiene MUCHAS (y cuando digo muchas, en mayúsculas y en negrita es que son muchas…[:)]) y con un solo post no podré hablar de todas… así que contaré lo que contamos todos:


Podemos descargar 3 cosas (como nos dice Scott Guthier en su blog):



  • ASP.NET Ajax «Core» Beta 1.0: Pues como el nombre indica es el núcleo de ASP.NET Ajax. Lo podéis descargar desde aquí.
  • ASP.NET AJAX “Value-Add” CTP: ¿Sabes esas cosas que había en la CTP pero que ahora nos las hay (por ejemplo el UpdateProgress)? Pues se encuentran en este componente, eso sí, no está tan depurado como la beta 1.0 (formarán parte de la versión final). Lo podéis descargar desde aquí.
  • ASP.NET AJAX Control Toolkit: ¿Cómo?¿Qué no te llega todo lo que hay en el «Core» y el «Value-add»? Pues aquí tiene 28 controles a mayores para incluír en tu sitio (hay 3 nuevos con esta versión). Buscad más información aquí.

Ahora os preguntaréis… 3 nuevos controles… más despedazado… ¿pero qué mejoras tiene? Pues ahí va:



  • Funcionamiento y optimización de descarga: ¿Os acordáis de lo que tardaba en descargar los Scripts de ASP.NET Ajax? Pues han reducido el tamaño de ellos a 14.8 kb y, no solo eso, sino que también nos lo han despedazado para que descargue solo lo que necesite. Además han mejorado la compatibilidad con el Profile y Authetication.
  • Soporte para el navegador Safari: Pues sí ya era hora… Y no hay mucho que explicar simplemente que están trabajando para también dar soporte a Opera.
  • Significante mejoras al soporte de la depuración
  • Un montón de mejoras del UpdatePanel
  • También un montón de mejoras en la Client Script Library
  • Mejor compatibilidad con otras librerias Ajax

La última mejora prefiero contarla a parte, nos han dado permiso para modificar el núcleo de ASP.NET Ajax en su licencia.


Además nos indican que debemos cambiar el prefijo <atlas:> por <asp:>. Esta y más cosas las podéis leer en la guía de migración, podéis descargarla aquí.


Esas son, así un poco por encima, las novedades de ASP.NET Ajax Beta 1.0. Pero pronto veremos alguna cosilla práctica.


Espero que os sea útil, aunque sea un poco más de lo mismo.

Virtual PC 2004 SP1

La verdad hace días que quiero comentar esto, pero no se porque siempre se me olvida, tras la publicación de Virtual PC 2004 se ha arreglado un bug que, la verdad, yo estoy muy agradecido de que lo hayan solucionado.


Se trata del siguiente problema: Cuando quería iniciar una maquina virtual mi PC se apagaba instantáneamente, la verdad fue una pena ya que el CD del Imagine Cup 2006 que tenía triplicado, por cierto problemas que hubo en el envío de los DVDs, no pude iniciarlo.


Ese error lo han correjido con el SP1, y la verdad seguramente que algun de voostros sabéis de que se trata el error, os agradecería si me lo contaséis en el comentario.


Hoy inicie el Virtual Machine del Imagine Cup 2006, yo no sabía lo que era, hoy se que era un Windows XP, con .NET 2.0, SQL Server 2005, Visual Studio 2005 y MSDN Library October 2005.


Esto me recuerda que ya hace poco más de un año que empece a programar con .NET (tras la publicacion en PC Actual la beta 2 de .NET 2.0), pedí (cuando aun era gratuito) el Visual Studio Team System Suite Beta 2 (junto con la aplicacion WeFly247) y la verdad me alucionaron los videos de David Carmona que venian con la revista (jejeje él es el culpable de que esté por aquí), la verdad llevo un año aprendiendo mucho junto con todos los GEEKS (si con MAYUSCULAS y en negrita porque TODOS desde Rodrigo Corral (el que ha montado todo este lio) y Carlos Zanini (último integrante de geeks.ms aunque no ha publicado nada) de aquí.


Lo último que he hecho ha sido conocer, en persona, a Unai Zorrilla y Marco Amoedo, ¡da gusto hablar con ellos!


Y bueno que me estoy enrollando más que una persiana, esto trataba de Virtual PC 2004 SP1, eso, que ahora puedo usar las tan apreciadas maquinas virtuales. Gracias Sergio por haberme dicho que con la SP1, se ha corregido.

Dim UserGroup1 As UserGroup = New dotNetUserGroupGalicia

Public Class dotNetUserGroupGalicia Inherits UserGroup Public Sub New() With MyBase.Who .Add("Unai Zorrilla") .Add("Marco Amoedo") .Add("José Manuel Alarcón") .Add("Iván González") .Add("Alvaro Rodríguez") .Add("Eugenio Estrada") End With End Sub <WebMethod()> _ Public Sub Participate(ByRef Interested As Person) Interested.SendMail("eugenio.estrada@vbprincipiantes.com", ".NET User Group", "Message") End Sub End Class

Unai, Marco, José, Iván, Alvaro y yo nos hemos unido para crear un grupo de usuarios en Galicia. Estamos organizándolo para que cuanto antes seamos un grupo tan activo como los demás.

Espero que todos los que estén por aquí, o que no estén pero que se puedan venir, participen en nuestras actividades.

Además si queréis colaborar, venir a darnos una charla, o simplemente una surgerencia, solo tenéis que mandar un email a cualquiera de nosotros.

Os seguiremos contando las novedades.

El lunes hubo un evento y llegó el momento de sacar conclusiones…

El lunes hubo un MSDN Taller sobre Team System, en el que tuvimos el honor de escuchar a Unai como nos contaba que podemos hacer con Team System.


Las conclusiones pueden ser diversas.


Una podría ser que no se nos olvide tener todo listo para el evento, unos drivers te pueden fastidiar el evento [;)]. Por suerte no fue el caso.


Otra conclusión puede ser que viene siendo hora de usar un control de código (debo de ser de los pocos proogramadores que no lo usa [:P]).


Si sigo pensando… Podemos sacar muchas cosas… Los diseñadores de diagramas creo que son muy útiles. Pero ahí ya nos tenemos en el contenido del evento [:)].


Yo lo que realmente quería recordar son esas cosas que hacen que cada evento sea diferente.


En cuanto sepa dónde podéis descargar las presentaciones os lo digo.