C# Garbage Collector

Uno de los problemas presentes en lo que respecta a la gestión de la memoria en un computador es aquel en el cuál se debe gestionar la memoria de forma adecuada, de tal forma que esta conserve su integridad. Esta se ve afectada por diversos motivos, como pueden ser los "objetos olvidados en memoria", como variables, estructuras, arrays, etc, que pueden ocasionar que esta se llene. Para esto Microsoft pone a disposición de los programadores el Garbage Collector (Recolector de basura) que administra la asignación y liberación de la memoria en la aplicación. 




La memoria es finita, por lo cual el garbage collector debe realizar una recolección para liberar la memoria. Esto proporciona al usuario programador una gran ventaja como la de desarrollar aplicaciones sin tener que preocuparse de liberar la memoria. Además delega esta función al sistema lo que debería conllevar más eficacia.

El siguiente código escrito en C# ayuda a visualizar (mediante la creación de un gráfico) la forma en que trabaja el garbage Collector. Como podrán observar básicamente estamos creando un archivo txt en un a ruta determinada mediante el uso del SteamWriter. Tenemos dos líneas claves, la primera aquella donde tenemos la variable 'y' acumulando un valor más en cada bucle. Segundo la línea donde indicamos el método GC.GetTotalMemory, que muestra la memoria actual usada. 

try
     {
     string archivo = @" C:\New folder\miarchivo.txt" ;
     int y = 0;
     for ( int x = 0; x <= 1000; x++)
     {
          y++;

          if (! File.Exists(archivo))
          {
               using ( StreamWriter sw = File .CreateText(archivo))
               {
                    sw.WriteLine( "==Inicio==");
               }
          }

          using ( StreamWriter sw = File .AppendText(archivo))
          {
               sw.WriteLine(string.Format( "{0};{1}", x, GC.GetTotalMemory(false )));
          }
     }
     }
catch( Exception ex)
{
     Console.WriteLine(ex.Message);
}
Una vez ejecutado el código, este creará el archivo txt con los siguientes datos, tal como se aprecia líneas abajo.


Abramos un excel de tal forma que podamos cargar esta información en forma tabular, es decir, en columnas separadas mediante el punto y coma.


Finalmente, se verá así.


Una vez tengamos esto, podemos pasar a graficar dichos datos, recordar que el objetivo de todo es graficar el estado de la memoria en diferentes momentos del tiempo (expresados en la columna A).


Como observamos, la memoria tiene picos y valles. Estos están determinados por la intervención del garbage collector en el momento que este decida que es pertinente liberar la memoria de objetos no utilizados.

Nota: Este post solo pretende mostar una forma gráfica de entender el uso del GC. Existen muchos otros temas acerca de esta herramienta, que no son motivo de este post.

Alberto.


Neuromante - William Gibson



"El cielo sobre el puerto tenía el color de una pantalla de televisor sintonizado en un canal muerto"

¿Porque debemos tapar la webcam?


Interesante.

Como y cuando se debe matar a un programador

Programador : "Estimado Sr. Alberto, ya desarrolle lo que me solicito, esta 100% operativo...Solo que no funciona bajo este navegador, requiere tal version de servidor web, el css no carga correctamente, el navegador no sigue los estandares y deforma la info y las tablas pierden el orden en diferentes resoluciones de pantalla"... "Pagueme".

Empleador : "Claro no hay problema joven...Como bono le invito un almuerzo con el Sr. de abajo"


Casos de la vida real...

A.

Comparacion de las fuerzas belicas en disputa (Corea del Norte Vs Corea del Sur Vs USA)

Ahora que las noticias apuntan a los problemas y tensiones en la peninsula Coreana, surge una duda, ¿cual es la real capacidad de las tres fuerzas? Aca una infografía comparando las tres fuerzas y las posibilidades reales de Pyongyang de asestar un golpe a sus enemigos. Ilustrativo sin duda.

Alberto.

Fuente : ElComercio, quien de manera generosa me cedio los derechos para publicar esto...Mentira, esos te cobran hasta el aire que respiras...

Excel es el diablo



No lo digo de manera literal, no me mal entiendan. Pero no puedo de dejar de pensar que si. Me explico. Todos usamos nuestro Excel (o cualquier otro programa de Hoja de calculo) para cosas básicas y/o medianamente complejas, mantener planillas, llevar la contabilidad, registrar datos y cualquier información que nos pueda parecer relevante para nuestro proyecto o trabajo. Hasta aquí todo bien. Pero, ¿que pasa cuando el sistema que debemos usar conlleva una complejidad alta o mediana? ¿es nuestra hoja excel suficiente? ¿puede asegurar la consistencia de los datos? ¿puede asegurar la confiabilidad de la información?
La respuesta obvia es no. Un rotundo y enorme no. Mantener una hoja de calculo, cuando en realidad lo que necesitamos es ya un pequeño o mediano sistema (programado en el lenguaje que sea y con la base de datos que nos paresca la mejor) es siempre la solución recomendable a mi manera de ver.



Esto que digo no es nada extraño o poco común, lamentablemente diré, en base a mi experiencia, que es una epidemia. En todo tipo de empresas, pequeñas, medianas y grandes. Me ha tocado observar empresas que teniendo grandes recursos, tanto economicos como intelectuales, con la cifras en azul, con un expertise en el negocio, con la gente adecuada, descuida mucho la parte de sistematizar su información y resguardarla de la manera más adecuada ¡Proyectos de millones de dólares sustentados en una hojita excel! 

Aquí es donde entra nuestra hoja de cálculo a convertirse en el diablo, nos tienta y engaña, da la falsa percepción que todo puede hacerse casi sin inversión en informatica o automatización de la información. ¡Al diablo los de sistemas, que no saben nada, yo tengo mi hoja excel! El problema se da cuando la información empieza a crecer. El primer mes no pasa nada. Pero luego de los meses la información empieza a crecer y si no fue llenada de manera adecuada, estamos en problemas. Peor si pasamos de un archivo excel a tener 3,4,5 archivos en excel, con datos relacionados de alguna manera ¿como hago para mantener la consistencia de mi información? Imposible.



¿Quien es el culpable? Todos y nadie. Es verdad que al inicio de un proyecto quizá sea difícil visualizar que volumen de información se va a manejar. También es verdad que los mandos medios solo usan las herramientas que la empresa proporciona y tienen poco poder de decisión o de opinión acerca de mejoras o implementaciones. Pero también es verdad que si eres proactivo o te vas dando cuenta que simplemente, las cosas como están ya no funcionan, emitir una opinión a favor de la creación de un sistema informático sea una solución muy acertada. También las cabezas de la organización tienen responsabilidad, por no visualizar que, a futuro, dicho sistema se volvería indispensable para el trabajo diario.

Bueno, todo esto que describo lo he visto en todo tipo de empresas y probablemente lo seguire viendo, ya que, por lo general, las personas solo se mueven cuando tienen "el agua hasta el cuello", cuando sacar un reporte te tome un par de días o cuando te das cuenta que los datos que presentas no son los más idóneos (o reales).

Alberto.

Tottus Peru y su logica de primaria

Actualización : Luego de flagelar a los creativos que idearon el dichoso comercial, este fue retirado de Youtube, los masters de edición quemados y eliminado de cualquier fuente de donde se pueda recuperar el videito en mención. Si lo buscan por toda la red no lo van a encontrar. ¡Buen trabajo Tottus!



Tuve el infortunio de ver en TV uno de los tantos aburridos y predecibles comerciales de la TV, ya saben, cuando se trata de mercados, Hipermercados, Supermercados, etc, los comerciales son los mismos. Mamás comprando con bebés y todos luciendo felices y contentos. ¡La vida es bella! Bueno, volviendo al mundo real, aparte del típico comercial soso, esta vez me llamo su contenido, no por lo novedoso o inteligente, sino por lo especialmente ingenuo (por no decir otra palabra) que es. Veamos el esperpento en cuestión :


Ah, mira tú, osea tendré 25,000 soles si compro en tu tienda. Ah que bien. Ahora, en letras bien pequeñitas vemos cual es el truco.

"Comprando en Tottus puedes ahorrar en promedio 35 soles a la semana...y en 15 años tendrías ahorrado más de S/. 25.500. Cálculo aproximado basado en compra semana de 300 soles cancelada en efectivo, en supermercados en la misma zona de influencia, el mismo día y con relación a desayunos, abarrotes, líquidos, perecibles y perfumería. Cálculo y montos aproximados."

¡300 soles a la semana! Osea 1200 soles al mes, si multiplicamos suponiendo que el mes tiene 4 semanas. La canasta básica familiar (CBF) en Peru es casi de 1,292 soles (fuente : INEI). Es decir se han basado para hacer sus cálculos en dicho número, claro, en el supuesto que todos gastamos esa cantidad al mes en comida.

Lo que parecen haber obviado es que el 86% de hogares peruanos recibe mil soles o menos, es decir no alcanza para cubrir la canasta básica familiar valorizada en 1,292 soles (aprox 400 dólares).

Ok,ok, el comercial obviamente no es para ese tipo de familias, de ser así no mostrarían mamás "superfashion" con pinta de ejecutivas de corporaciones o en el Gym con el último modelo de Ipod. ¡Igual! La lógica que usan para "sacar cuentas" es propia de un niño de primaria. Si junto 35 a la semana, lo multiplo por 4, luego por 12, luego por 5, etc, etc. ¡Joder, soy rico! Que bueno que no existe la inflación, enfermedades, gastos extras, imprevistos, períodos de flaqueza y de bonanza, inestabilidad laboral, aumento de la carga familiar y un largo etc. Tottus, Tottus, te la jugaste demasiado al dar una cifra exacta. Bastaba con que dijeras 35 soles semanales pero...decir 25,000 soles en 15 años, fue demasiado, hasta para un insulso comercial de supermercado. ¿Publicidad engañosa? No. Yo lo calificaría de "hueveo masivo".

Para terminar, lo primero que se me vino a la mente al ver este "comercial" es un artículo que leí que se llama "Como mentir con estadísticas". Muy recomendable para aprender a distinguir cuando nos quieren tomar por tontos o ingenuos.

Saludos.

A.

Como romper la clave de una base de datos Access en 1 minuto


Es común que se siga usando base de datos Access, que aunque poco potentes y propensas a errores y problemas, el nivel de portabilidad que aporta a una aplicación la hace la primera elección de diversos programas o aplicaciones que necesitan manejar bases de datos. 

Por lo general le ponen contraseñas para tratar que los usuarios no puedan acceder a los datos directamente, sino a traves de la aplicación que hace uso de dichos datos.

Entonces, ¿que hacemos si queremos usar dichos datos? Simple, es bien conocido que la bases de datos Access no poseen una gran fortaleza en lo que respecta a su seguridad y al manejo de su contraseña. Incluso si la contraseña que usas está bien formada y posee un nivel de complejidad importante (letras mayúsculas, minúsculas, números, etc).

Veamos...

1.- Descargemos el siguiente software :

dropbox.com/sh/avrlbnmj9pl9l80/pAr5rf-bst/Access_Password_Unlocker_3.0.1.0_Portable.rar

2.- Lo ejecutamos y veremos algo como la siguiente imagen. Escogemos el botón "Open", ubicamos nuestra base de datos Access y listo, en menos de 10 segundos me saca la clave de dicha base de datos. Demasiado sencillo, demasiado.


3.- Lección. Colocarle una clave a una base de datos Access no significa nada. Y pensar que existen miles de aplicaciones comerciales cuyo único nivel de seguridad es ponerle clave a su base Access.

Saludos.

Alberto.

Descargar manuales de ITIL v3 (Inglés)



Desarrollada a finales de 1980, la Biblioteca de Infraestructura de Tecnologías de la Información (ITIL) se ha convertido en el estándar mundial de de facto en la Gestión de Servicios Informáticos. Iniciado como una guía para el gobierno de UK, la estructura base ha demostrado ser útil para las organizaciones en todos los sectores a través de su adopción por innumerables compañías como base para consulta, educación y soporte de herramientas de software. Hoy, ITIL es conocido y utilizado mundialmente. Pertenece a la OGC, pero es de libre utilización.

Descarga las diversas secciones de ITIL v3 en los siguientes links :

ITIL v3 Service Strategy

dropbox.com/sh/g9a4fptlcjse074/wbsU6EXIZF/1-ITIL_V3_SERVICE_STRATEGY_1.pdf

ITIL v3 Service Design

dropbox.com/sh/1p7kc2o005mlhrs/b22QQVDRnX/2-ITIL_V3_SERVICE_DESIGN_2.pdf

ITIL v3 Service Transition

dropbox.com/sh/k4ounk6hb1z4j3t/upn0-eP0uI/3-ITIL_V3_SERVICE_TRANSITION_3.pdf

ITIL v3 Service Operation

dropbox.com/sh/ff23a5hzn45e3vk/EuJiLijYhe/4-ITIL_V3_SERVICE_OPERATION_4.pdf

ITIL v3 Service Improvement

dropbox.com/sh/qee3v1on5po99xn/1gpcI4x1Ys/5-ITIL_V3_SERVICE_IMPROVEMENT_5.pdf

Saludos y espero que les sirva.

Saludos.

Alberto.