Las píldoras contaminadas

Hola amigos,


Os propongo un jueguecito lógico [:)]


Tenemos cuatro botes de píldoras. Cada uno de los botes tiene un cierto peso, y un cierto número de píldoras (el mismo número en todos los botes).


Todas las píldoras pesan lo mismo (digamos «p» miligramos), excepto las píldoras de uno de los botes, que están contaminadas y pesan «p+1» cada una de ellas.


                                            


Disponemos de una báscula de laboratorio. ¿Cómo podríamos averiguar cuál de los botes es el que contiene las píldoras en mal estado? ¿Cuál sería el mínimo número de pesadas y el procedimiento a seguir para averiguarlo?


Asumimos que:



– No se puede distinguir a simple vista una píldora en buen estado de una contaminada.


– No podemos comernos las píldoras (no queremos arriesgar nuestra valiosa vida)


– Podemos abrir los botes y coger una o varias píldoras.


 


¿Cuál sería la solución óptima para nuestro problema? [:)]


Espero vuestras respuestas

Respuesta al reto de "Programancia 101"

Hola amig@s,


El lunes montado en un avión rumbo a París para hacer una entrevista de MS Internship me fijé en los botones que en cada asiento tenemos para encender una bombillita o llamar a la azafata y me acordé del reto que nos propuso Ricardo en su blog… Como no tenía nada mejor que hacer ahí arriba me dediqué a resolverlo. [:)]


 La verdad, después de mucho reflexionarlo, es que el problema no necesita ningún cálculo de tipo complejo (o eso creo).


La cosa se trata de saber qué numeros menores o iguales que el 64 tienen un número impar de divisores. Dichas bombillas son las que permanecerán encendidas al final, ya que si partimos de que están apagadas, realizaremos un número impar de pulsaciones, con lo que acabarán encendidas.


Cuales son dichos números? Bien, si nos fijamos, los divisores de un número siempre se asocian por parejas.


Por ejemplo, el 28 tiene como divisores:


28×1


14×2


7×4


De modo que tiene un número par de divisores.


Qué números son aquellos que tienen un número impar de divisores? Los CUADRADOS PERFECTOS. Es decir, los números cuya raíz cuadrada es entera (siendo dicha raíz el divisor en cuestión).


Por ejemplo, el 36:


36×1  (2 pulsaciones)


18×2  (2 pulsaciones)


12×3  (2 pulsaciones)


9×4    (2 pulsaciones)


6×6    (1 pulsación)


Para el 36, pulsaremos 9 veces el interruptor en total. Por tanto, permanecerá encendida al final.


Resumiendo, sin necesidad de cálculos de ningún tipo (salvo un cálculo de raíces cuadradas, o en su caso, un bucle que calcule los cuadrados perfectos menores o iguales q 64… es decir, 8 productos, 8 if’s y poco más) tendremos resuelto el problema.


Bombillas encendidas: 1, 4, 9, 16, 25, 36, 49 y 64.


Un saludo!!

Design patterns aplicados a la industria de los videojuegos

Buenas,


Aprovechando que soy un friki asqueroso estoy desarrollando un videojuego medianamente ambicioso con XNA, voy a contaros a grandes rasgos las principales características de la fase de diseño del mismo, así como explicaros brevemente con qué tipo de patrones nos podemos encontrar a la hora de realizar el diseño de un videojuego.


De todos es sabido que los patrones de diseño (de ahora en adelante PD) nos permiten resolver problemas concretos en el diseño software sin necesidad de reinventar la rueda. Un videojuego, grosso modo, no es más que un software con una determinada estructura que lo convierte en «algo» diferente de programas de otro tipo, aunque tampoco difiere mucho.


No obstante, los objetivos que perseguimos mediante el uso de PD en nuestros diseños también son deseables en un videojuego (diseños más flexibles, elegantes y reutilizables).


Básicamente, podemos dividir los PD en tres grandes tipos:



a) Estructurales


b) Creacionales


c) De comportamiento


Ahora que ya os he soltado el sermón he hecho una introducción al tema, podemos comenzar a identificar PD clásicos en nuestro juego:



a) Singleton:



1) Intención: Restringir una clase a una sola instancia


2) Problema: Proporcionar un lugar donde varios clientes puedan comunicarse y queramos controlar el número de instancias.


3) Ejemplos en nuestro videojuego: La clase principal de nuestro juego, la clase multimedia…


b) Composite:



1) Intención: Construir objetos complejos a partir de otros más simples y similares entre sí.


2) Problema: Necesitamos guardar figuras (círculos, cuadrados…) y agruparlas


3) Ejemplos en nuestro videojuego: Nuestra GUI


Los siguientes diagramas explican más o menos lo que intento deciros aquí…




c) State:



1) Intención: Deseamos obtener información sobre el estado del juego


2) Problema: ¿Cómo guardamos dicha información?


Pues utilizaremos algo tal que así…




d) Strategy:



1) Intención: Definir una «familia» de algoritmos y hacerlos intercambiables.


2) Problema: Queremos que un personaje del juego tenga una IA diferente, según el estado del juego…


Podemos representarlo de la siguiente forma:




e) Façade:



1) Intención: Proporcionar una interfaz unificada a un conjunto de interfaces en un sistema.


2) Problema: Queremos interactuar con nuestro motor gráfico…


Marchando el diagrama…



Por el momento, esos son los PD que he identificado en mi diseño del videojuego.


Por cierto, el videojuego en cuestión es «El Gañán 5.0», podéis ver una preview del mismo en este enlace:



http://www.youtube.com/watch.php?v=F9aN1FqVuTc


Un saludo amigos! [:)]

Visita a Domogar 2007

Buenas,


hoy he tenido la oportunidad de acercarme a la Feria de Valencia para visitar la IV edición de Domogar (Feria de la Domótica y el Hogar Digital) en la que unas 50 empresas del sector ofrecen sus productos y servicios de muy diversa índole (sistemas de control, seguridad, teleasistencia, comunicaciones, ocio, ahorro energético….).


De esta visita extraería tres conclusiones:



a) Las azafatas de los stands son divinas (para qué engañarnos)


b) Cada año la asistencia de público «no profesional» es mayor, lo cual es una nota bastante positiva [:)]


c) La nota negativa, desde mi modesto punto de vista, ha sido que tras 3 horitas de recorrerme todos y cada uno de los stands no he visto nada que no hubiera visto antes… En cierto modo, es comprensible ya que se trata de una feria más comercial que innovadora, pero como interesado en el tema me hace temer por un cierto estancamiento del sector en cuanto a nuevas ideas…


Desde aquí, y puesto que me parece que la Domótica no es un tema frecuente en geeks, me gustaría abrir un pequeño espacio de debate sobre qué opináis de este tipo de ferias, de la innovación en temas de Domótica e Inteligencia Ambiental, del derbi de hoy Barça-Madrid… vamos, de lo que buenamente os venga en gana [:D]


Un saludo!

Curso de formación en software Microsoft

Hola,


Como coordinador del club .Net de la Universidad de Alicante y Microsoft Student Partner he organizado un curso para alumnos de la UA y para profesionales en general.


El objetivo del curso es realizar un acercamiento a Windows Vista, dar a conocer las posibilidades que ofrece y la integración de otras herramientas en este SO, partiendo desde cero y explicando todas las funcionalidades y ventajas competitivas que aportan respecto a otras tecnologías existentes.


El curso, en principio, es presencial, pero también podrá ser seguido online mediante el uso de materiales electrónicos, prácticas guiadas…


Por ir concretando, los datos del curso son:


Nombre del curso: MSDN Academic Advisor


Fecha de inicio: Semana del 26 de Marzo de 2007


Duración: 10 sesiones de 2h (20h)


Horario: Se establecen dos turnos


      1.- Martes de 17:30 a 19:30


      2.- Viernes de 17:30 a 19:30


Número de plazas: 30 plazas por turno


Lugar: Escuela Politécnica Superior de la Universidad de Alicante


Ponentes:


      – Daniel Micol Ponce (Microsoft Summer Internship en Redmond en 2006)


      – Miguel Llopis Lledó (Microsoft Student Partner)


Precio:


      1.- Alumnos UA: Gratis


      2.- Resto: 75€


Temario:


      1.- Introducción a MSDN Academic Alliance


      2.- Microsoft Windows Vista:


              a) Instalación guiada


              b) Entorno a nivel de usuario


              c) Herramientas de administrador


              d) Seguridad en Windows Vista


              e) Configuración de servicios


      3.- Introducción a Windows Live:


              a) Creación de Gadgets en Windows Vista


      4.- SQL Server 2005:


              a) Administración


              b) Integration Services


              c) Reporting Services


              d) Business Intelligence Tools


       5.- Visual Studio 2005 Professional:


              a) Configuración básica


              b) Uso de extensiones


              c) Office Tools para Visual Studio 2005


              d) Expression Tools


        6.- Visual Studio 2005 Team System:


              a) Team Suite


              b) Team Foundation Server


              c) Team Test Load Agent


              d) Team Edition


                       1) Data Base Professionals


                       2) Software Architects


                       3) Software Developers


                       4) Software Testers


       7.- Microsoft Project 2007


       8.- Sharepoint 2007


Muchas gracias por vuestra atención. Espero que os animéis.


Un saludo! [:)]


 

Programa completo de las "Jornadas tecnológicas de la Universidad de Alicante"

14/FEBRERO:


LANZAMIENTO DE OFFICE, VISTA Y EXCHANGE (LOVE)


10:00 Bienvenida


10:15 Presentación de Windows Vista a nivel de usuario


10:30 ¿Qué es .Net 3.0? (Windows Workflow Foundation, Windows Communication Foundation, Windows CardSpace y Windows Presentation Foundation)


11:50 Descanso


12:00 Oportunidades de trabajo en Microsoft


12:15 Seguridad de Windows Vista


12:45 Gadgets en Windows Vista


13:00 Las N mentiras mas graciosas sobre Windows Vista


13:30 ¿Qué viene después de Windows Vista?


 


15/FEBRERO: .NET DESDE UN PUNTO DE VISTA MULTIPLATAFORMA


         10:00  Presentación de .NET 2.0


         11:00 Presentación del Proyecto Mono y posibilidades de portabilidad de .Net


          11:30 Mesa redonda donde se analizará la relación entre estos dos proyectos.


         DESCANSO (15 MIN)


          13:00 Windows Presentation Foundation / Everywhere (WPF/E), .net 3.0 como multiplataforma


          13:45 XNA, y el proyecto MONO.XNA


 


19 AL 23: XNA CHALLENGE


Día 19: Presentación de la plataforma XNA y el proyecto Mono.XNA


Día 20: Desarrollo de un videojuego guiado


Días 21 y 22: Talleres de creación de videojuegos para el concurso.


Día 23: Exposición de los proyectos desarrollados por los alumnos, deliberación del jurado y entrega de premios a los ganadores!


Contaremos con XBOX 360º para probar JUEGOS DE ULTIMA GENERACIÓN, así como poder JUGAR A LOS JUEGOS QUE PROGRAMEMOS EN LA XBOX.


Se entregarán obsequios a los participantes del concurso (camisetas, DVD’s…), y premios especiales a los dos mejores proyectos presentados:


1er premio: Bloc de notas, bolígrafo, gorra y un libro de «.Net Compact Framework» (Ed. Microsoft Press)


2º premio: Bloc de notas, bolígrafo, gorra y un cuaderno práctico de «Programación segura en .Net Framework» (Editado por DotNetMania)


 


19 al 23: IMAGINE CUP DEVELOPER CENTER


Se realizará un taller en horario de tardes (de 16 a 20h), en la L04 de la EPS-1.


El programa de estos talleres es el siguiente:


Día 19: Presentación de la competición y sus fases


Día 20: Ejemplos de desarrollo de proyectos


Días 21, 22 y 23: Talleres de creación de proyectos guiados.


Se entregarán obsequios a los participantes del concurso (camisetas, DVD’s…), y…


OS ENSEÑAREMOS A CREAR PROYECTOS, CON LOS QUE MICROSOFT OS REGALARÁ UN PENDRIVE DE 1GB SOLO POR ENTREGARLOS!!


 


21/FEBRERO: MICROSOFT ROBOTICS & LEGO NXT MINDSTORMS


10:00 Presentación del programa de diseño de LEGO Mindstorms


11:00 Presentación de MS Robotics


12:00 Demostración práctica de varias aplicaciones empleando también Speech Recognition para dar órdenes al robot (aunque sólo tengo el mío, así que lo del combate no va a poder ser…)


Espero que os animéis a pasar por alguna!!

Jornadas Tecnológicas de la Universidad de Alicante, parte 2 (el retorno)

Tras la sesión de LOVE de 4 horas el día de San Ballantine’s, que sirvió como apertura de estas jornadas, además de para mostrar mis cualidades como cantante interpretando el «All you Need is LOVE»… Os mantengo informados del resto de eventos periódicamente… (me he propuesto llevar un ritmo más o menos constante de actualización de este blog y a pesar de ser las 3:30 de la madrugada me veo obligado moralmente a hacerlo antes de dormir…)


EVENTOS PROGRAMADOS PARA EL JUEVES 15 DE FEBRERO (SALON DE ACTOS DE LA ESCUELA POLITECNICA IV DE ALICANTE)


11:00h Presentación de .NET 2.0


11:45h Presentación del Proyecto Mono y posibilidades de portabilidad de .Net (mesa redonda)


12:45h Descanso


13:00h Windows Presentation Foundation / Everywhere (WPF/E)


El evento se prolongará hasta las 14h o hasta que el ponente de la última charla (yo) sea devorado por algún asistente hambriento (preferiblemente, féminas) … xD


En cuanto tenga algo más de tiempo, colgaré materiales de todas estas presentaciones que estamos realizando.


Un saludo y gracias por leerme 🙂

Jornadas Tecnológicas de la Universidad de Alicante, parte 1…

Este miércoles día 14 de febrero comienzan las actividades de la semana cultural de la Escuela Politécnica Superior con la charla “Microsoft LOVE”, presentada por Daniel Micol Ponce y Miguel Llopis Lledó (servidor de Dios y usted, jeje).


Dicha conferencia tendrá lugar de 10:00 a 14:00 h. en el Salón de Actos de la Escuela Politécnica Superior 1, y tratará sobre las nuevas tecnologías proporcionadas por Microsoft con el reciente lanzamiento de Windows Vista, Office System 2007 y Exchange Server 2007.


Además, se informará a los asistentes sobre puestos de trabajo en Microsoft tanto para alumnos como para gente que haya finalizado sus estudios, y se repartirán camisetas.


La agenda de la charla es la siguiente:


10:00 Bienvenida


10:15 Presentación de Windows Vista a nivel de usuario


10:30 ¿Qué es .Net 3.0? (Windows Workflow Foundation, Windows Communication Foundation, Windows CardSpace y Windows Presentation Foundation)


11:50 Descanso


12:00 Oportunidades de trabajo en Microsoft


12:15 Seguridad de Windows Vista


12:45 Gadgets en Windows Vista


13:00 Las N mentiras mas graciosas sobre Windows Vista


13:30 ¿Qué viene después de Windows Vista?


Esperamos vuestra asistencia!

Hablemos de FUD’s sobre Vista, ahora que se han puesto tan de moda…

Hola amig@s,


Voy a dedicarle una entrada a esto de los FUD (aka «bulos»), que tanto circulan ahora (ahora y siempre) por internet, pero que se han visto acentuados por la Web 2.0 (o traducido a lenguaje coloquial: «aquí hasta el más tonto se cree que sabe hacer relojes») y han encontrado su «musa» en el reciente lanzamiento de Windows Vista.


Os pongo en situación, dada mi actual condición de estudiante de ingenieria informática, me veo rodeado por compañeros con opiniones muy dispares sobre estos temas tan candentes. El abanico va desde el típico «talibán linuxero» (dicho con cariño, jeje) al defensor a ultranza de MS, pasando por «el maquero superguay de turno» (desde aquí un cariñoso saludo también a este digno colectivo, jeje). Como en todos los ámbitos, hay que resaltar que «pobre de aquél que se guía por una única opinión o fuente de información», por tanto, lo más recomendable es contrastar opiniones, analizar y filtrar la información que te llega, con un mínimo de criterio (qué os voy a contar al respecto que no sepáis)…


 Próximamente, enmarcado dentro de las «Jornadas Tecnológicas de la Universidad de Alicante», voy a dar una serie de charlas, entre las que se encuentra una «presentación de windows vista y .net 3.0». Pues bien, me he propuesto abrir en ella un espacio de debate sobre todos esos FUD’s que nos salpican por estas fechas.


En cierto modo, el objetivo de este post era un poco el de trasladar aquí también ese debate, y desde un punto de vista más «egoísta», poder encontrar mas FUD’s que analizar gracias a vuestra ayuda (N personas son capaces de captar más información que una sola).


Sintetizando, el «sumario» de FUD’s que por el momento me he propuesto debatir en esta charla es el siguiente:


1.- GNU/Linux o Mac OS X tienen menos vulnerabilidades que Vista
2.- Windows Vista y el DRM…
3.- El speech recognition posee fallos de seguridad muy graves
4.- Necesito el PC de la NASA para usar windows vista
5.- Windows Vista no es más que el XP con cirugia estetica


Me parece que la respuesta a estos cinco puntos es obvia; no obstante, estoy abierto al debate como ya he dicho (al más puro estilo ZP, jejeje), así como a nuevos FUD’s que os parezcan interesantes y yo no haya encontrado aún…


Lo dicho, ¡¡ abran fuego señores!!

Aprendiendo a pensar

En toda discución y debate sobre la enseñanza y el aprendizaje en nuestras escuelas se ponen en contraposición dos sistemas de aprendizajes diferentes. El primero de ellos es el mas comun y tradicional y se fundamenta en la provisión constante de gran cantidad de datos a los alumnos. De esta manera, los alumnos pueden saber claramente quién descubrió América, qué aportes hizo Newton a la física pero son totalmente incapaces de aplicar estos conocimientos a su vida cotidiana pues en principio no son útiles para la misma y por otro lado no enseñan a pensar.


El segundo de ellos propone justamente el enseñar a pensar mas que hacer que el alumno acumule datos. Esta estrategia propone que no es tan imporante lo que el alumno sabe sino cómo utiliza lo que sabe para resolver las dificultades que se le presentan en la vida diaria.


Seguimente presentamos un breve relato histórico que corresponde a Neils Bohr que ilustra este hecho. El mismo es relatado por uno de sus profesores:


Hace algún tiempo, recibí la llamada de un colega. Estaba a punto de ponerle una nota muy baja a un estudiante por la respuesta que había dado en un problema de física, pese a que éste afirmaba completamente convencido de que su respuesta era absolutamente acertada.


Profesores y estudiantes acordaron pedir arbitraje de alguien imparcial y fui elegido yo.


Leí la pregunta del examen y decía: ¿Qué haría usted para determinar la altura de un edificio con la ayuda de un barómetro?


El estudiante había respondido: ‘Lleve el barómetro a la azotea del edificio y átale una cuerda muy larga. Descuélguelo hasta la base del edificio, marque y mida. La longitud de la cuerda es igual a la longitud del edificio’.


Realmente, el estudiante había planteado un serio problema con la resolución del ejercicio, porque había respondido a la pregunta, correcta y completamente.


Por otro lado, si se le concedía la máxima puntuación, podría alterar el promedio de su año de estudios, obtener una nota más alta y así certificar su alto nivel en física; pero la respuesta no confirmaba que el estudiante tuviera ese nivel.


Sugerí que se le diera al alumno otra oportunidad. Le concedí seis minutos para que me respondiera la misma pregunta, pero esta vez con la advertencia de que en la respuesta debía demostrar sus conocimientos de física.


Habían pasado cinco minutos y el estudiante no había escrito nada.


Le pregunté si deseaba marcharse, pero me contestó que tenía muchas respuestas al problema. Su dificultad era elegir la mejor de todas.


Me excusé por interrumpirlo y le rogué que continuara. En el minuto que le quedaba escribió la siguiente respuesta:


‘Tome el barómetro y tírelo al suelo desde la azotea del edificio. Calcule el tiempo de caída con un cronómetro.


Después se aplica la fórmula:


Altura = 0,5.g.T2


(Donde g es la aceleración de la gravedad y T es el tiempo que uno acaba de calcular con el cronómetro)


‘Y así obtenemos la altura del edificio.


En este punto le pregunté a mi colega si el estudiante se podía retirar. Le dio la nota más alta.”Tras abandonar el despacho, me reencontré con el estudiante y le pedí que me contara sus otras respuestas a la pregunta.


‘Bueno’, respondió, ‘hay muchas maneras. Por ejemplo, tomás el barómetro en un día soleado y medís la altura del barómetro y la longitud de su sombra.


Si medimos a continuación la longitud de la sombra del edificio y aplicamos una simple proporción, obtendremos también la altura del edificio.


Perfecto, le dije, ¿y de otra manera? ‘Sí, contestó, éste es un procedimiento muy básico para medir un edificio, pero también sirve. En este método, tomás el barómetro y te situás en las escaleras del edificio en la planta baja. A medida que vas subiendo las escaleras, vas marcando la altura del barómetro y cuentas el número de marcas hasta la azotea. Multiplicás al final la altura del barómetro por el número de marcas que hiciste y ya tenés la altura. Este es un método muy directo.


Por supuesto, si lo que uno quiere es un procedimiento más sofisticado, puede atar el barómetro a una cuerda y moverlo como si fuera un péndulo. Si calculamos que cuando el barómetro está a la altura de la azotea la gravedad es cero y si tenemos en cuenta la medida de la aceleración de la gravedad al descender el barómetro en trayectoria circular al pasar por la perpendicular del edificio, de la diferencia de estos valores, y aplicando una sencilla formula trigonométrica, podríamos calcular, sin duda, la altura del edificio.


En este mismo estilo de sistema, atás el barómetro a una cuerda y lo descolgás desde la azotea a la calle. Usándolo como un péndulo podés calcular la altura midiendo su período de precesión. En fin, concluyo, existen otras muchas maneras.


Probablemente, la mejor sea tomar el barómetro y golpear con él la puerta de la casa del conserje. Cuando abra, decirle: señor conserje, aquí tengo un bonito barómetro. Si usted me dice la altura de este edificio, se lo regalo.


En este momento de la conversación, le pregunté si no conocía la respuesta convencional al problema (la diferencia de presión marcada por un barómetro en dos lugares diferentes nos proporciona la diferencia de altura entre ambos lugares).


“Me dijo que sí, que evidentemente la conocía, pero que durante sus estudios, sus profesores habían intentado enseñarle a pensar.


El estudiante se llamaba Niels Bohr, físico danés, premio Nobel de Física en 1922, más conocido por ser el primero en proponer el modelo de átomo con protones y neutrones y los electrones que lo rodeaban. Fue fundamentalmente un innovador de la teoría cuántica.


{extraido de http://www.sabiduria.com/liderazgo/aprendiendo-a-pensar/}