Feliz 2014

0 comentarios
Un nuevo año finaliza y desde este blog quiero alzar mi copa junto a ustedes y desearles un feliz y próspero año nuevo.

Esperando el fin de semana

2 comentarios

ULTIMO VIERNES DE AÑO!!!! 

No nos lo podemos perder... Un acertijo para despedir el año como se lo merece: estrujando la neurona...
Tres vaqueros tejanos se encontraron en la ruta y sostuvieron la siguiente conversación:
  • Hank le dice a Jim: 'le doy seis cerdos a cambio de un caballo; así tendrás en tu manada el doble de animales de los que quedarán en la mía".
  • Duke le dice a Hank: 'le doy catorce ovejas a cambio de un caballo, así tendrás el triple de animales que yo".
  • Jim le dice a Duke: "Te daré cuatro vacas a cambio de un caballo; así tendrás seis veces más animales que yo".
A partir de estos datos, ¿puede usted decirme cuántos animales había en cada una de las tres manadas?
Respuesta del acertijo de la semana pasada:

Esperando el fin de semana

7 comentarios
Ya que el último fin de semana no hubo acertijo (ni el anterior) por falta de gente que se anime a responder (debo buscar mejores incentivos), publicamos uno hoy, para hacer la previa a la navidad...
Un granjero tenía seis pedazos de cadena de cinco eslabones cada uno, y deseaba convertirlos en una cadena de treinta eslabones.
Si cuesta ocho centavos abrir un eslabón y dieciocho centavos volver a soldarlo, y si una cadena nueva cuesta un 1 dólar y medio, preguntamos:
¿Cuánto dinero se ahorraría gracias al plan más económico?
Respuesta del acertijo de la semana pasada:

Esperando el fin de semana

4 comentarios
Tras un lapsus sin acertijos, volvemos nuevamente a la carga!
Un contratista abocado a la construcción de una casa descubrió que debía pagar:
    $ 1.100 al empapelador y al pintor,
    $ 1.700 al pintor y al plomero,
    $ 1.100 al plomero y al electricista,
    $ 3.300 al electricista y al carpintero,
    $ 5.300 al carpintero y al albañil,
    $ 2.500 al albañil y al empapelador.
¿Cuánto cobra por sus servicios cada uno de ellos?
Respuesta del acertijo del 8 de noviembre:

Esperando el fin de semana

2 comentarios
Otro viernes gris en Buenos Aires. A ponerle garra y levantarlo resolviendo el acertijo de hoy!!!!
Un avaro, antes de morirse de hambre, acumuló una cantidad de monedas de oro de cinco, diez y veinte dólares. Las guardaba en cinco bolsas que eran exactamente iguales en cuanto a que todas contenían la misma cantidad de monedas de cinco dólares, el mismo número de
monedas de diez dólares y el mismo número de monedas de veinte dólares.
El avaro contaba su tesoro poniendo todas las monedas sobre la mesa y dividiéndolas luego en cuatro pilas que también contenían la misma cantidad de cada tipo de monedas. Su último paso era tomar dos cualesquiera de estas pilas, reunir las monedas y distribuidas luego en tres pilas que eran exactamente iguales en el sentido ya explicado.
¿Cuál es la menor cantidad de dinero que debe haber poseído este pobre anciano?
Respuesta del acertijo de la semana pasada:

Esperando el fin de semana

4 comentarios
Llueve en Buenos Aires y aledaños, pero no nos va a amargar el día. Es viernes y el fin de semana está sólo a un paso!!! Levanta este día gris resolviendo el acertijo de hoy.
Harry ha dado a su hermana siete fósforos, desafiándola a que los disponga de manera que parezcan mil. Ella, a su vez, le ha dado a él cinco fósforos, instándolo a que los disponga de tal manera que parezcan diez.
Respuesta del acertijo de la semana pasada:

Esperando el fin de semana

4 comentarios
Un nuevo viernes llegó y un nuevo acertijo llegó con él. Lo puedes resolver?
"Ya ves" - comentó el abuelo- "las edades de Ann y Mary suman cuarenta y cuatro años, y Mary tiene el doble de la edad que tenía Ann cuando Mary tenía la mitad de la edad que Ann tendrá cuando Ann tenga tres veces la edad que Mary tenía cuando su edad era tres veces la de Ann."
¿Cuántos años tiene Mary?
Solución del acertijo de la semana pasada:

Esperando el fin de semana

7 comentarios
Semana corta en Argentina, pero no por eso el viernes pierde su natural alegría. Vamos con nuestro acertijo semanal!!!
Cinco hombres iba juntos por un camino en el campo. Comienza a llover. Cuatro de los hombres apuran el paso.
El quinto no hace ningún esfuerzo por darse prisa. Sin embargo, se mantiene seco mientras que los otros cuatro se mojan.
Los cinco llegan a su destino juntos. NOTA: Para trasladarse sólo contaban con los pies y ninguno llevaba paraguas o similar.
¿Cómo pudo ser?
Respuesta del acertijo bis de la semana pasada:

MVC, Datetime y la localización regional

0 comentarios
Descubrí hace poco que existe un tema muy frecuente y poco esperable por parte de MVC y las localizaciones. Para los que manejamos las fechas con un formato diferente del de Estados Unidos, nos suele aparecer el error "The field [date] has format invalid" cuando ingresamos un día del mes superior a 12 y se desea .
Esto se debe a un problema del model binder que tiene por defecto MVC y se debe reemplazar por uno personalizado para que se pueda tener en cuenta el formato de la hora correspondiente.
Veamos un ejemplo que he probado y funciona. Incluso hace uso del atributo [DisplayFormat] para poder utilizar el formato de fecha que más nos convenga.

Esperando el fin de semana (bis)

6 comentarios
Viendo que el acertijo de hoy ha sido resuelto tan pronto y a pedido del público, hoy hay bis!!!!
Cinco jóvenes y listos diarieros se asociaron e hicieron lo siguiente: Tom Smith vendió un periódico más que un cuarto del total, Billy Jones vendió un periódico más que un cuarto de lo que quedaba, Ned Smith vendió uno más que uno más que un cuarto del resto, y Charley Jones vendió la cuarta parte del sobrante, más uno. En este punto, los chicos Smith, juntos, habían vendido cien periódicos más que los chicos Jones, en conjunto. El pequeño Jimmy Jones, el más joven del grupo, vendió entonces los periódicos que aún quedaban.
Los tres chicos Jones vendieron más periódicos que los dos chicos Smith, pero ¿cuántos más?
Respuesta del acertijo anterior:

Esperando el fin de semana

4 comentarios
Vamos que ya es viernes!!! Solo un rato más y el fin de semana se hará presente. Usa este acertijo para pasar el tiempo. Anímense a dejar un comentario con la respuesta y firmen su comentario, no sean tímidos :)
Esta mañana a Mariana se le cayó un pendiente en el café. Y aunque la taza estaba llena, el pendiente no se mojó. ¿Cómo fue eso posible?
Respuesta del acertijo de la semana pasada:

Esperando el fin de semana

2 comentarios
Tras un lapsus, volvemos con todo. Un acertijo corto y simple para esperar este nuevo fin de semana!!!
Dos padres y dos hijos fueron a pescar, tres peces pescaron y a cada uno le tocó un pez.
¿Cómo pudo ser?
Respuesta del acertijo de la semana pasada:

Parrot, view-engine que facilita la lectura de HTML para MVC

0 comentarios
Cuando Microsoft decidió mejorar el código escrito en las vista para MVC, fue con la intención de agilizar la escritura de dicho código, pero también para que fuera fácil de escribir.
Lamentablemente, optaron por dejar los tag de HTML tal y como estaban. No está en mí criticar esta decisión, pero aunque razor ha ayudado a hacer más legible el código, cuando se posee una página algo compleja, los tags de HTML pueden llegar a dejar las vistas algo incómodas de leer (Sí, lo sé, también existen las partial view).
En ayuda a esto, surge una librería llamada Parrot que se define a sí misma como un view-engine o motor de vistas.
Es una librería relativamente joven y aunque no cubren el 100% de los casos, tienen una gran cantidad cubierta. La última versión, la 1.0.3, salió en julio de 2013 y prometen seguir haciéndola crecer.
Esta herramienta nos permite ahorrar bastante "código" HTML al momento de escribir las vistas ya que con una muy simple sintaxis, este motor nos renderiza todo lo necesario para agregar los tags y atributos deseados. Pero vayamos a los ejemplos que va a resultar más claro que toda mi palabrería.

Esperando el fin de semana

2 comentarios
Viernes previo a la llegada de la primavera (al menos para los del hemisferio sur) y lo arrancamos a toda máquina con un nuevo acertijo.
El alcalde de una prisión ofrece la libertad inmediata a uno de los diez presos que mantiene entre rejas, elegido al azar. Para ello, prepara una caja con diez bolas: 9 negras y una 1 blanca y les dice que aquel que extraiga la bola blanca será el preso que quede libre. Pero el alcalde, mala persona, coloca, sin que nadie lo sepa, las diez bolas negras, para  asegurarse que ninguno de sus 10 presos va a quedar en libertad. El preso José, que tiene fama de listo, se enteró casualmente de la trampa que iba a hacer el alcalde e ideó una estrategia que le dio la libertad. ¿Cómo lo hizo José?.
Respuesta del acertijo de la semana pasada:

Esperando el fin de seamana

2 comentarios
VIERNES!!!!!!!!!!! Ya llega el fin de semana y además, nuestro acertijo :)
El martes, Juan consiguió apagar la luz de su dormitorio y meterse en la cama antes de que la habitación quedase a oscuras. Hay tres metros desde la cama al interruptor de la luz. ¿Cómo pudo hacerlo?
Respuesta del acertijo de la semana pasada:

Esperando el fin de semana

0 comentarios
Un nuevo viernes, un nuevo mes y un nuevo acertijo... A RESOLVERLO!
Un hombre yace muerto en un campo. A su lado hay un paquete sin abrir. No hay nadie más en el campo. ¿Como murió?
Ayuda: Mientras se acercaba el hombre al lugar donde se le encontró muerto, sabía que irremediablemente moriría.
Respuesta del acertijo de la semana pasada:

Esperando el fin de semana

0 comentarios
Llegó el fin de semana y junto con él, el final del mes. Despidamos la semana como se lo merece, sacándole punta al ingenio!
En el centro de una mesa, sobre un mantel de 30 cm de diámetro, hay una botella de vino abierta. ¿Cómo quitar el mantel sin derramar el vino y sin tocarla con ningún otro objeto ni con alguna parte del cuerpo?
Respuesta del acertijo de la semana pasada:

Esperando el fin de semana

0 comentarios
Tarde pero seguro, aun es viernes y aun hay tiempo de despejar la mente para un fin de semana largo (al menos en Argentina)
En un determinado país, donde la ejecución de un condenado a muerte solamente puede hacerse mediante la horca o la silla eléctrica, se da la siguiente situación, que permite a un cierto condenado librarse de ser ejecutado. Llega el momento de la ejecución y sus verdugos le piden que hable, y le dicen: “Si dices una verdad, te mataremos en la horca y si mientes, te mataremos en la silla eléctrica”. El preso hace entonces una afirmación que deja a los verdugos tan perplejos que no pueden, sin contradecirse, matar al preso ni en la horca, ni en la silla eléctrica. ¿Qué es lo que dijo el reo?
Respuesta del acertijo de la semana pasada:

Esperando el fin de semana

1 comentarios
Tras una breve ausencia, volvemos al ataque con la actividad pre fin de semana: un nuevo acertijo!!!!

En el medio de un establo completamente vacío, apareció un hombre ahorcado. La cuerda alrededor de su cuello estaba atada a un andamio del techo. Era una cuerda de tres metros. Sus pies quedaron a un metro de altura del piso. La pared más cercana estaba a siete metros del muerto. Si escalar las paredes o treparse al techo es imposible, ¿cómo hizo?

Respuesta del acertijo de la semana pasada:

Esperando el fin de semana

3 comentarios
Una nueva semana termina y qué mejor manera de despedirla que resolviendo un acertijo!
Un joven, por salir apurado a encontrarse con sus amigos, dejó olvidado el registro de conducir. Una vez en la calle, no se detuvo en la luz roja y siguió por una vía de sentido contrario. Todo esto fue observado por un policía de tránsito que no hizo el menor intento para impedírselo o para citarlo. ¿Por qué?

MVC: Haciendo amigables a los ListBox

0 comentarios
Siempre se debe tener en cuenta el volumen de los datos, no sólo por el tiempo de descarga de los mismos sino también, porque buscar una opción entre demasiadas puede ser algo que tire abajo el sitio desarrollado.
En esta oportunidad, veremos cómo hacer la interfaz de usuario resulte en una mejor experiencia para quien la usa. Para ello, utilizaremos el control Chosen desarrollado por Harvest. Este control no sólo permitirá al usuario poder elegir la opción deseada entre muchas opciones, sino que además resulta agradable visualmente.
En un post anterior habíamos desarrollado una interfaz en la que se le permitía a un usuario seleccionar de un ListBox las materias a las que deseaba inscribirse como alumno. Basados en ese ejemplo, procederemos a "convertir" el ListBox en un control más amigable para el usuario.

Esperando el fin de semana

0 comentarios
Fin de semana. Descanso. Tranquilidad. Pero antes, un acertijo!
Hay tres interruptores afuera de un cuarto que está cerrado con llave. Adentro del cuarto hay tres lámparas. Puedes encender y apagar los interruptores cuantas veces quieras, siempre y cuando la puerta del cuarto permanezca cerrada. Luego, debes entrar una sola vez al cuarto y determinar que interruptor le corresponde a cada lámpara.

MVC: Uso de ListBox para selección múltiple de opciones

0 comentarios
Cuando la elección de un usuario no es única, un DropDownList no nos alcanza.
Para este caso, es necesario un control que permita al usuario realizar más de una selección y que la misma llegue al controller para poder ser procesada.
En esta nota extenderemos lo visto en este post. Allí veíamos la posibilidad de enviar un array de opciones seleccionadas en un ListBox pero a través de ajax. En esta oprtunidad, veremos como hacer para que lo haga el propio framework de MVC, usando un formulario y que llegue al controller a través del propio framework de MVC, usando HttpPost.

Modelo

Utilizaremos un modelo muy similar al ya visto en esa nota, con la diferencia que en lugar de usar un array, usaremos directamente una lista y no será simplemente un string, sino otro objeto complejo.

Esperando el fin de semana

0 comentarios
Primer viernes del mes. A disfrutarlo como se merece: con un buen acertijo para ejercitar la mente!
El honesto John dice: "Lo que ignoro acerca de la leche no vale la pena mencionarse", pero se quedó atónito un día cuando dos damas le pidieron dos cuartos de leche cada una. Una de ellas tenía un recipiente de cinco cuartos y la otra uno de cuatro cuartos. John sólo disponía de dos tarros de diez galones, ambos llenos de leche. (Cada galón equivale a cuatro cuartos.)
¿Cómo hizo para medir exactamente dos cuartos de leche para cada dama?
Se trata solamente de trasvasar, sin ninguna treta, pero requiere gran astucia lograr que haya
en cada uno de los recipientes dos cuartos sin utilizar ningún otro recipiente más que los de
las damas y los dos tarros llenos de leche.

Esperando el fin de semana

0 comentarios
Luego de un fin de semana larguísimo, volvemos al ataque con el acertijo de esta semana. Inténtalo!
Se puso en marcha dos relojes al mismo tiempo y se descubrió que uno de ellos atrasaba dos minutos por hora y que el otro adelantaba un minuto por hora. Después de un tiempo, el que adelantaba marcaba exactamente una hora más que el otro. ¿Durante cuánto tiempo habían estado funcionando estos dos relojes?

Esperando el fin de semana

2 comentarios
El fin de semana se encuentra aun paso de distancia. Relájate!
Por eso, tomate el tiempo para resolver el acertijo de hoy. Puedes hacerlo?
Tome el tiempo de las dos patinadoras. Dos graciosas patinadoras, Jeannie y Maude, separadas por una milla en un lago helado, empezaron cada una a patinar directamente hacia el punto donde había estado la otra. Con la ayuda de un intenso viento, Jeannie lo logró dos veces y media más rápido que Maude y le ganó por seis minutos.
¿Cuánto tiempo le tomó a cada una cubrir la milla patinando?

Esperando el fin de semana

0 comentarios
Un nuevo fin de semana aparece en el horizonte y tu aun no te relajas. Anda, resuelve este nuevo acertijo y deja tu comentario con el resultado!!!!
El precio de los huevos
"Pagué doce centavos por los huevos que compré al almacenero", explicó la cocinera, "pero le hice darme dos huevos extra porque eran muy pequeños. Eso hizo que el total sumara un centavo menos por docena que el primer precio que me dio."
¿Cuántos huevos compró la cocinera?

Autofac: Framework para IoC

2 comentarios
La Inversión de Dependencia o Inversión de Control son conceptualmente lo mismo, aunque el primero sea el último de los principios SOLID y el segundo sea un patrón de diseño. Ambos ayudan a realizar una arquitectura en donde los objetos estén desacoplados.
Autofac es un framework que nos ayuda a implementar estos dos conceptos implementando internamente el patrón Abstract Factory. Soporta .Net framework 4.5, Silverlight 5, aplicaciones para Windows Store y aplicaciones para Windows Phone 8.
Basta sólo con registrar Tipos e Interfaces para que Autofac instancie la clase concreta correspondiente para ser inyectada en otra.
Para comprender mejor su funcionamiento, nada mejor que un ejemplo:

Esperando el fin de semana

2 comentarios
¿Aun no has comentado el resultado del acertijo de esta semana? ¿Qué esperas?
Charley Slowpop estaba a punto de proponerle matrimonio a su novia cuando el hermanito de ésta y su perro irrumpieron en la sala. "No se puede determinar la edad de un perro por las arrugas que tiene en el lomo", dijo l’enfant terrible, "pero hace cinco años mi hermana era cinco veces mayor que Fido... ¡y ahora es sólo tres veces mayor!"
Charley Slowpop está muy ansioso por saber la edad de Fido. ¿Alguien puede ayudarlo?

Esperando el fin de semana

0 comentarios
Otra semana que se acaba. Comienza a disfrutar el fin de semana con un buen acertijo.
Mientras disfrutaba de una embriagadora vuelta en la calesita, Sammy planteó este problema:
"Un tercio de los niños que van delante de mí, sumado a los tres cuartos de aquellos que van detrás de mí da la respuesta correcta a la pregunta acerca del número de chicos que hay en esta calesita."
¿Cuántos niños había?

MVC: Arrays de View a Controller

0 comentarios
Un tema que me he encontrado al desarrollar una aplicación MVC y que las búsquedas en Google han sido infructuosas, es cómo pasar desde la vista al Controller un objeto que posea una Array como una de sus propiedades.
Tomemos un sencillo ejemplo. Un alumno desea registrase para poder rendir exámenes. Para ello, ingresa su número de documento, su nombre y selecciona las materias a las que se desea inscribir.
Presentaremos en la vista dos textbox para el ingreso de los datos del Alumno y un listbox para la selección de las materias a las que se puede inscribir.
Una vez completado el formulario, se enviará esta información al Controller.
Expuesto de esta manera no se diferencia mucho de otros formularios con un modelo que se envía al Controller, pero la gran diferencia radica en que las materias seleccionadas son un Array de strings. Si quisiéramos pasar este modelo al Controller de manera tradicional, es decir, mediante POST, el array de materias seleccionadas llegará null.
Para poder pasar los datos completos, debemos utilizar ajax, quien permite poder pasar objetos más complejos de lo habitual. Para ello nos valdremos de jQuery.

Esperando el fin de semana

0 comentarios
Último día de la semana. Mediodía en Argentina... un buen momento para relajarse y romperse la cabeza.
¿Quién es el que deja su comentario con la respuesta correcta?
Una caritativa dama se encontró con un pobre hombre al que dio un centavo más que la mitad del dinero que llevaba en su bolso. El pobre hombre, que era miembro de la Asociación de Mendicantes Unidos, se las arregló, mientras agradecía a la dama, para marcar con tiza en las ropas de su benefactora, el signo de la organización que la distinguiría como "buena cliente".

La sección del invitado: Buddy class

0 comentarios
-Escrito por Víctor Paredes.
Hace poco tiempo tuve que desarrollar un proyecto muy pequeño, era tan solo un par de ABMs y dos listados que mostraban la información ordenada de una forma particular. Para realizar el trabajo utilicé ASP.NET MVC 3 y Linq2Sql. Ambas herramientas eran mas que suficientes para cumplir con los requisitos que solicitados y funcionan en casi cualquier VPS ( Virtual Private Server ).
A medida que el proyecto avanzó, me di cuenta que la entidad que generaba Linq2Sql era la misma que iba a necesitar para mostrar la información al usuario. Entonces, tuve tres opciones: 


  • Utilizar la entidad generada y perder todas las ventajas de los DataAnnotations que me ofrecía ASP.NET MVC. No parecía tan mal pero escribir todas las validaciones a mano era algo que no tenia pensado hacer. 
  • Escribir una entidad nueva. Agregarle los DataAnnotations que necesitaba y crear un mapper para ir/venir entre la entidad web y la entidad de Linq. Esto básicamente significaba poner una pistola en la cabeza del principio DRY y acabar con su miserable y patética vida. 
  • Buscar en Google una tercer mejor opción. 

Antipatrones de arquitectura: Autogenerated Stovepipe

0 comentarios
Este antipatrón ocurre cuando se migra un sistema existente a una infraestructura distribuida. Un Autogenerated Stovepipe surge cuando se convierte las interfaces existentes en interfaces distribuidas. Si el mismo diseño se aplica para cómputo distribuido, un número de problemas emergen.
Por ejemplo, las interfaces actuales pueden usar operaciones de grano fino para transferir información que puede ser ineficiente en un ambiente distribuido. Las interfaces preexistentes suelen ser implementaciones específicas y causarán interdependencias de subsistemas cuando se usan en sistemas distribuidos de gran escala.
Las operaciones locales a menudo poseen varias asunciones al respecto de la locación, incluyendo direcciones y accesos al file system local. Puede surgir un exceso de complejidad cuando múltiples interfaces existentes son expuestas a lo largo de un gran sistema distribuido.

Solución

Cuando se diseñan interfaces distribuidas para sistema existentes, las interfaces deberían ser rediseñadas. Por separado, debería ser considerado un modelo de objeto menos detallado para las interfaces distribuidas.
La funcionalidad de interoperabilidad usada por múltiples sistemas debería ser el centro de diseño de las nuevas interfaces. Un diseño independiente de un subsitema en particular puede ser logrado a través de una arquitectura mínima. La estabilidad de las nuevas interfaces es muy importante, dado que el software compilado por separado será dependiente de estos nuevos diseños.

Esperando el fin de semana

2 comentarios
Un nuevo viernes y un nuevo fin de semana se acerca. A tomarse un minuto y pensar en este nuevo acertijo.

Un taxista recogió a una señora que no paraba de hablar.
Como no tenía ganas de entrar en conversación, simuló ser sordo y mudo señalando su boca y oídos para indicar que no podía hablar ni oír.
Cuando llego al destino apunto al taxímetro para indicar cuánto debía pagarle.
La pasajera lo hizo y se bajó. En ese momento se dio cuenta de que el taxista no podía ser sordomudo.
¿Cómo llego a esa conclusión?

Antipatrones de desarrollo de software: Cut and paste

0 comentarios
La programación mediante cortar y pegar es muy común, pero es una forma de degenerada de reutilización de software la cual crea pesadillas a la hora del mantenimiento. Proviene de la idea de que es más fácil modificar código existente que hacerlo desde cero. Esto es generalmente cierto y representa un buen instinto de software. Sin embargo, la técnica puede ser usada de manera excesiva.

Generalidades

Este antipatrón se identifica por la presencia de una gran cantidad de código desperdigados a lo largo del proyecto. Usualmente, un proyecto posee programadores que están aprendiendo cómo desarrollar software  siguiendo ejemplos de desarrolladores más experimentados.
Sin embargo, ellos están aprendiendo mediante la modificación de código que se ha demostrado que funciona en situaciones similares y, potencialmente, la personalización permite soportar nuevos tipos de datos o un comportamiento ligeramente modificado. Esto crea código duplicado, el cuál puede tener consecuencias positivas a corto plazo, como una aceleración de las métricas de código, las cuales pueden ser usadas en evaluaciones de rendimiento.

Esperando el fin de semana

2 comentarios
Llegó nuestra hora de relax. Vamos que falta poco para el fin de semana!

Un agente de seguridad le relataba a su jefe, que había soñado que asaltaban el lugar que estaba vigilando, que se llevaban todo el dinero y que luego lo asesinaban.
Felizmente, dijo, sólo fue un sueño. Su jefe lo despidió en el acto.
¿Cuál fue la razón?

Antipatrones de desarrollo de software: Minefield

0 comentarios
Gran cantidad de bugs son encontrados en los productos liberados; de hecho, los expertos estiman que el código fuente original contiene entre dos y cinco bugs por línea de código. Esto significa que el código requerirá dos o más cambios por línea para quitar todos los defectos. Sin duda, muchos productos son liberados mucho antes de que estén listos completamente. Un reconocido ingeniero de software sostiene que "No hay sistemas nuestros, ni siquiera los nuestros".
La ubicación y las consecuencias del software defectuoso no tiene relación con sus causas aparentes, incluso una cantidad mínima de bugs pueden resultar catastróficos. Por ejemplo, los sistema operativo (UNIX, Windows, etc.) contienen gran cantidad de defectos de seguridad conocidos y desconocidos que los vuelven vulnerables a ataques; además, Internet ha incrementado dramáticamente la probabilidad de ataques al sistema.
Los usuarios finales encuentran bugs frecuentemente. Por ejemplo, aproximadamente 1/7 números de teléfonos discados no son completados por el sistema telefónico. Y hay que notar que la tasa de quejas es baja en comparación con la frecuencia de las fallas del software.
El propósito de probar el software comercial es limitar el riesgo, en particular, para soportar los costos de productos empaquetados, cada que un usuario final contacta a un vendedor para solicitar soporte técnico, gran parte (o todo) el margen de ganancia es gastado en responder a esa llamada.

Esperando el fin de semana

2 comentarios
Para despejar la cabeza del desarrollo informático diario y como un buen ejercicio de pensamiento lateral, he decidido colgar para los viernes una pregunta.
Veamos quien pone su respuesta en los comentarios.

Un gato saltó desde el borde de la ventana de un decimoquinto piso, y sin embargo no sufrió un solo rasguño. ¿Cómo es posible esto?

La sección del invitado: Update panel

0 comentarios

-Escrito por Víctor Paredes.
Motivados por la dinámica del mercado, nuestras aplicaciones web deben ser cada ves más rápidas, más versátiles y más intuitivas, los usuarios requieren cada ves información mas rápida y mejor presentada. La velocidad y la forma en que se presenta la información en una aplicación web es hoy uno de los puntos mas importantes que determinan el éxito o fracaso de un proyecto.
Para cubrir estas necesidades, contamos con diversos frameworks y técnicas que permiten acelerar y mejorar la presentación de la información. En esta ocasión vamos a presentar una forma de realizar fácilmente un "Update Panel". Este recurso permite que se actualice parte de la información de la pagina sin necesidad de enviar una solicitud HTTP nueva al servidor, al bajar las solicitudes nuestra aplicación web se vuelve mas rápida, consume menos recursos y luce mas profesional.

Antipatrones de desarrollo de software: Spaghetti Code

0 comentarios
Se trata del antipatrón más famoso. Es un clásico. Ha existido, de una forma u otra, desde la invención de los lenguajes de programación. Los lenguajes que no son orientados a objetos, parecen ser más susceptibles a este antipatrón, pero es bastante común entre los desarrolladores que aun tienen que dominar plenamente los conceptos avanzados que subyacen la programación orientada a objetos.

Generalidades

El Spaghetti Code aparece como un programa o sistema que contiene muchas estructuras pequeñas de software. La codificación y extensión progresiva comprometen la estructura del software de tal manera que pierde claridad, incluso para el programador original, si él o ella se encuentran lejos de ese código por un tiempo prolongado.
Si se ha desarrollado utilizando un lenguaje orientado a objetos, el software puede incluir un pequeño número de objetos que contienen métodos con implementaciones realmente grandes.
Además, los métodos de los objetos son invocados de una manera muy predecible y hay un grado insignificante de interacción entre los objetos en el sistema. El sistema es muy difícil de mantener y extender. No hay oportunidad de reutilizar los objetos y módulos en sistemas similares.

Antipatrones de desarrollo de software: Golden Hammer

0 comentarios

Este es uno de los antipatrones más comunes de la industria.
"Cuando se posee un martillo de oro, todo parece un clavo."
Muchas veces, un producto de tercero ofrece una solución a un problema. Dado el costo inicial de adoptar esta solución el proveedor del producto a menudo provee más extensiones de esta solución para otras tecnologías y así reducir costos.

Generalidades

Supongamos que un equipo de desarrollo de software ha adquirido un alto nivel en una solución o producto en particular (al que nos referiremos como Golden Hammer). Como resultado, todos los nuevos desarrollos son vistos como algo que puede ser resuelto mejor con esta solución. En muchos casos, nuestro Golden Hammer no se ajusta a nuestro problema, pero se dedica muy poco tiempo a la investigación de soluciones alternativas.
Este antipatrón conlleva a aplicaciones erróneas de una herramienta, concepto o patrón de diseño. Los desarrolladores y los administradores de proyectos se sienten cómodos con un enfoque existente y reacios a aprender y aplicar uno nuevo que se ajuste mejor.
 
Copyright 2009 Programación SOLIDa
BloggerTheme by BloggerThemes | Design by 9thsphere