martes, 26 de febrero de 2008

Cuantas efes hay?

Hoy he leído en microsiervos esta especie de prueba. La cosa consiste en contar el número de efes que existen en el siguiente texto:

FINISHED FILES ARE THE RE
SULT OF YEARS OF SCIENTI
FIC STUDY COMBINED WITH
THE EXPERIENCE OF YEARS...


Pues la respuesta es (
6) <-Selecciona el texto
Cuesta, verdad?
Un saludo
.

miércoles, 20 de febrero de 2008

Diferencias entre las clases Debug y Trace en Microsoft.Net

Otra duda que se repite es la diferencia entre dichas clases.

Las clases Debug y Trace son idénticas. Las mismas exponen los mismos métodos y propiedades, y escriben sus salidas al mismo conjunto de Listeners.

La única diferencia entre Debug y Trace es que las sentencias Debug no están incluidas de manera predeterminada cuando el programa se compila en modo Release, mientras que las Trace si que lo son.

De esta manera, la clase Debug se emplea principalmente para depuración en fase de desarrollo, mientras que Trace puede ser usada para pruebas y optimizaciones después de que la aplicación ha sido compilada y puesta en producción.

Espero que les quede claro y les haya sido de interés.

Un saludo.

Programacición VS Idiotas

"La programación es una carrera entre los desarrolladores, intentando construir mayores y mejores programas a prueba de idiotas, y el universo, intentando producir mayores y mejores idiotas. Por ahora va ganando el Universo"

Rich Cook

lunes, 18 de febrero de 2008

Sabio Miguel de Unamuno

Como decía el gran Miguel de Unamuno:

"No hay mayor necio que el que confunde el valor con el precio"

La sociedad lunar

En la segunda mitad del siglo XVIII, un grupo de científicos, inventores y pensadores se reunían en Birmingham y sus alrededores. La mayoría pertenecían a familias humildes y vivían alejados de los centros de poder, pero juntos iban a cambiar el mundo para siempre.

Era la sociedad lunar y bromeaban entre ellos llamándose lunáticos. La explicación es que se reunían cada noche de luna llena para tener suficiente luz para volver a casa. Una visión tan pragmática como sus integrantes que estaban convencidos de que la ciencia debía servir para mejorar la condiciones de vida de toda la humanidad.

Esto les convirtió en el motor de arranque la madre de todas las revoluciones del Siglo XVIII, la revolución industrial.

viernes, 15 de febrero de 2008

Atentados y suicidios

En el atentado del 11-S de E.E.U.U. 3.074 personas perdieron la vida de forma trágica. No obstante, cada año en E.E.U.U. se suicidan 30.000 personas, que es 10 veces la cantidad de personas que murieron en el 11-S. Teniendo en cuenta que los E.E.U.U. no es el lugar del mundo donde hay más suicidios este es un tema preocupante del que se habla muy poco. Es un tema que nos hace avergonzarnos.

La tasa de suicidios se ha incrementado un 60% en los últimos 45 años. Teniendo en cuenta que el poder adquisitivo (global también) ha aumentado debería aumentar también la satisfacción, pero las cifras nos cuentan otra historia. Según la O.M.S. es el tercer causa de muerte entre los 15 y 45 años teniendo en cuenta que los hombre se suicidan tres veces más que las mujeres. (Aunque ellas hacen mayor número de intentos)

Ale, ya pasó.

miércoles, 13 de febrero de 2008

Clases VS Estructuras

Una duda que me llega con relativa frecuencia es la relativa alas diferencias entre las clases y las estructuras. Vamos a aclarar dichos conceptos y su uso.

(Las próximas veces que algún desarrollador me pregunte, enlace al canto ! ;))

Aparentemente, las clases y las estructuras son muy similares. Ambas pueden contener miembros como campos y métodos, las dos requieren un constructor para crear una nueva instancia y heredan (en .NET Framework) del objeto Object.

La diferencia clave entre las clases y las estructuras es que las clases son Tipos por Referencia y las estructuras Tipos por Valor. A bajo nivel, esto significa las instancias de las clases se colocan en memoria en el Heap mientras que las instancias de datos de las estructuras lo hacen el el Stack.

Acceder al Stack está pensado para ser mas rápido y ligero, pero el almacenamiento de grandes cantidades de datos en dicho Stack puede lastrar el rendimiento general de la aplicación.

En la práctica, esto se traduce en que las estructuras son buena idea para objetos pequeños y ligeros que contienen instancias de datos relativamente pequeñas, o para objetos de corta persistencia.

Las clases son mejores para objetos más grandes, que almacenan mayor cantidad de datos y que se espera existan en memoria durante más tiempo.

Dicho queda, un saludo.

Confiabilidad

El proceso de diseñar para confiabilidad implica revisar el patrón de uso esperado de la aplicación, especificando el perfil de confiabilidad requerido e ingeniando la arquitectura del software con la intención acomodarse al perfil.

Tareas:

  • Especificar los requisitos de confiabilidad en la especificación.
  • Emplee una buena infraestructura arquitectónica.
  • Incluya información de mantenimiento en la aplicación.
  • Emplee redundancia.
  • Use herramientas de desarrollo de calidad.
  • Emplee comprobaciones de confiabilidad que son provistas por la aplicación.
  • Emplee una manipulación de errores consistente.
  • Reduzca la funcionalidad de la aplicación para conseguir la aplicación libre de defectos en vez de completa pero con errores.

El rendimiento de una aplicación se define en base a unas métricas claves, como son el rendimiento de las transacciones y la utilización de recursos. Para determinar el objetivo de rendimiento debe responder a algunas preguntas como las siguientes:

  • ¿Cual es el objetivo de negocio?
  • ¿Cuál es la funcionalidad clave de la aplicación?
  • ¿Cuáles son las características requeridas por los diferentes conjuntos de usuarios?
Un saludo.

martes, 12 de febrero de 2008

La paradoja del mentiroso

Supongamos que les digo:

"Esta afirmación es falsa"
  • Si digo la verdad (verdadero) esto significaría que la afirmación es falsa con lo cual llegamos a una contradicción.
  • Si en cambio la afirmación es falsa la afirmación deberá ser verdadera, lo cual nos lleva de nuevo a una contradicción.
Esto es un bucle extraño en el cada suposición inicial conduce a una refutación de la misma.

Un saludo, ahí les dejo peleando con las afirmaciones verdaderas y falsas.

lunes, 11 de febrero de 2008

Escalabilidad y disponibilidad

Veamos a aclarar algunos aspectos importantes a la hora de evaluar la planificación de una aplicación, como son la escalabilidad y la disponibilidad.

La escalabilidad se define como la capacidad de incrementar recursos para producir un incremento lineal en la capacidad del servicio. A una aplicación se le puede hacer scale-up o scale-out

Las directrices para el escalado:

  • Diseñar procesos que no esperen.
  • Diseñar los procesos de tal manera que no peleen por los recursos.
  • Diseñar procesos conmutables.
  • Diseñar componentes intercambiables.
  • Partición de recursos y actividades.

Disponibilidad es la medida de cuan a menudo una aplicación esta disponible parar su uso. Para decidir el nivel de disponibilidad de una aplicación debe responder a las siguientes preguntas:

  • ¿Quién es el cliente y cuales son sus expectativas?
  • ¿Cuánto tiempo de “no disponibilidad” es aceptable?
  • ¿Hay procesos internos de la compañía que dependen de la aplicación?
  • ¿Qué calendario y presupuesto de desarrollo tiene la aplicación?

Las directrices para diseñar pensado en disponibilidad son:

  • Reducir el tiempo planificado de “no disponibilidad”.
  • Reducir el tiempo no planificado de “no disponibilidad” utilizando Clustering.
  • Utilizar balanceo de carga.
  • Utilizar RAID para el almacenamiento de datos.
  • Aísle las aplicaciones de misión crítica.
  • Utilice colas de mensajes.

Un saludo.

domingo, 10 de febrero de 2008

El cine de Ray Harryhausen

Aunque me gusta el cine no puedo decir que soy un experto en la materia. De todas formas, hoy quería hablar de un director/productor/Responsable de efectos visuales... de cine un tanto particular.

Su nombre es Ray Harryhausen y ha realizado películas como:

Esas películas tienen el encanto de los efectos especiales hechos "a mano" y temática de Dioses y epopeyas. Cine de siesta de fin de semana, pero muy divertido al fin ya al cabo.



Un saludo.

Artium

Hoy he estado visitando el museo Artium.

La definición propia del mismo es la siguiente:



"ARTIUM es un museo y centro de actividades culturales dedicado a coleccionar, producir, difundir, investigar y transmitir el arte de nuestro tiempo. Su finalidad es elevar la cultura artística y desarrollar la conciencia crítica de la sociedad, así como proyectar una imagen de Álava comprometida con el arte y la cultura."

Realmente el museo está bien, es pequeñito pero moderno, tanto en el contenedor como el contenido. Esta bien ubicado en Gasteiz, capital de la provincia de Araba y la entrada (4,5 €) tampoco es la más cara del mundo (El Guggenheim - Bilbao me parece que era 12,5 €).

No obstante, lo que más ha llamado mi atención, es la poca afluencia de público que, al menos hoy, existía. Practicamente estábamos solos con el staff del museo.

Algo se esta haciendo mal con la forma de transmitir la cultura, pero que...?

jueves, 7 de febrero de 2008

Dignidad humana VS Religión

Citando al famoso físico americano Steven Weinberg, ganador del premio nobel de física de 1979:

"La religión es un insulto a la dignidad humana. Sin ella habría gente buena haciendo el bien y gente mal haciendo el mal. Pero para que gente buena haga el mal, se necesita la religión"

No se puede explicar mejor.

Amén

miércoles, 6 de febrero de 2008

Ideal cientifico o cientifico ideal

Contaba mi admirado Richard Dawkins, que existía un anciano profesor en su área que había profundizado apasionadamente en una teoría durante años. Un buen día, un investigador americano vino y refutó completamente la teoría del anciano.

El anciano dio un paso al frente, estrechó su mano y dijo:

"Mi querido amigo deseo agradecerselo. He estado equivocado estos 15 años"

Y toda la clase aplaudió. Era el científico ideal, alguien que había invertido casi una vida entera y le alegraba que le mostraran su error, y que la verdad científica haya avanzado.

viernes, 1 de febrero de 2008

Certificación 70-300 "Analyzing Requirements and Defining Microsoft .NET Solution Architectures"

Hoy he superado con éxito el examen de certificación de Microsoft 70-300 de nombre:

"Analyzing Requirements and Defining Microsoft .NET Solution Architectures"

La llevaba preparando unos meses (tengo poco tiempo para estudiar). El material de preparación es bastante interesante y se centra en el desarrollo de soluciones informáticas desde la perspectiva de la organización, toma de requisitos, metodología de desarrollo, arquitectura de la solución...

Un tema interesante, la verdad.