Blog de tecnologia y desarrollo.

Process Explorer: Como el task manager con esteroides

March 12th, 2007

Alguna vez has visto el foquito de tu disco duro parpadeando y te has preguntado que carajos esta escribiendo/leyendo en el? Con la consiguiente (y opcional) paranoia de que tu computadora haya sido infectada por un virus que este borrando tus datos, que tengas spyware que este mandando todas tus contraseñas a un malvado hacker, o que haya sido secuestrada y este como zombie enviando correos para que mandes dinero a Nigeria?

Alguna vez has querido mover/copiar/borrar/recompilar/reescribir algun archivo, cosa que resulta imposible por que “otro proceso lo esta usando”, y a pesar de que ya mataste hasta el explorer.exe, el archivo sigue bloqueado?

Te ha sucedido que quieres saber cual era el proceso que estaba consumiendo todo el tiempo de tu CPU hace unos segundos, pero el task manager te dice que todos los inocentes procesos estan usando 0 en este momento?

Has querido saber cuales Dll estan cargadas en tu maquina?

Que recursos usa cada proceso en tu maquina?

Si eres desarrollador, o simplemente un usuario avanzado de windows, seguramente has caido en uno de estos casos alguna vez.

Afortunadamente existe una herramienta que puede proporcionarte toda esa informacion. Yo la acabo de descubrir y estoy fascinado.

Se trata del Process Explorer de SysInternals. Segun entendi SysInternals hacia un monton de herramientas utiles, y posteriormente fue comprada por Microsoft. Esta pequeña maravilla nos presenta una enoorme cantidad de informacion sobre los procesos que estan corriendo en nuestro equipo, como el uso de memoria, sus entradas y salidas a disco duro, el tiempo de procesamiento, sus dependencias, sus Dll… muchisimas cosas, con una interfaz grafica simple y muchas cosillas para agregarle. Ademas tiene la ventaja de que puede reemplazar al conocido Task Manager.
Es parte de un conjunto de herramientas que son GRATIS, y constituyen un “must have” para quien se interesa en su sistema por la razon que sea. El conjunto de herramientas se puede descargar en la pagina de microsoft. ∞

Al fin mi certificacion

February 27th, 2007

Despues de unos 3 meses de engorrosa burocracia al fin voy a comenzar mi curso de certificacion de Microsoft (Microsoft Certified Solution Developer) :-)

Ese curso fue una de las principales motivaciones para la apertura de este blog. Va a estar interesante por que vamos a tomar la programacion desde sus principios, me servira para reforzar muchas cosas que vengo haciendo sin recordar muy bien.

Pues aqui estare plasmando lo aprendido. Ya se iran enterando. ∞

Estoy considerando linux

February 20th, 2007

La primera y unica vez que instale Linux (si mal no recuerdo fue Red Hat) fue un desastre para mi maquina. Y todo por que no pude (no sabia) montar mi disco NTFS. Total que frei el disco duro y desde entonces no me quedaron ganas de volver a instalarlo.

Sin embargo ultimamente me ha estado entrando la curiosidad. No creo cambiarme a vista hasta dentro de mucho mucho mucho tiempo, y pense que seria interesante conocer el mundo de linux.

Me estoy informando sobre ubuntu, yo creo que por ahi empezaria. Aunque aun no me decido a salir del closet ya estoy viendo a ver que onda.

Ya les estare informando si me animo a dar el salto ∞

No es lo mismo .Net Framework 1.1 que 2.0

January 29th, 2007

Estaba un dia el santos intentando debuggear una antigua aplicacion que tenia en ASP.Net. Como sabran me acabo de mudar al 2005 por lo que esta aplicacion esta en 2003, o sease en .Net Framework 1.1.

Acabo de formatear mi maquina de desarrollo, y aprovechando el viaje instale los dos ambientes de desarrollo por lo que en este momento en la maquina tengo ambos Frameworks. Afortunadamente viven juntos y sin molestarse. Me dispuse a sacar el codigo fuente del baul de los respaldos, y hacer pasito a pasito lo necesario para poner de nuevo el proyecto a funcionar en mi maquina (el 2003 es un poco celoso a la hora de mover los proyectos asp.net).

Total que ahi me tienen poniendo los archivos en su lugar y configurando el sitio. El proyecto abrio bien y compilo bien. El problema fue que a la hora de debuggear me mandaba el siguiente error “Error while trying to run project: Unable to start debugging on the web server”

Error
Despues de estar raspandole a Google un rato y ya en la desesperacion de haber intentado casi todo (aun me faltaba la mitica reinstalacion de VS2003 o incluso de windows) Me di por vencido y me fui derrotado a casa.

El dia de hoy, ya con la mente mas fresca (algo que siempre funciona) de nuevo me meti a buscar el error en google. Curiosamente esta vez si aparecio entre las primeras busquedas (los caminos de mi mente son misteriosos), y es algo realmente estupido, que segun yo ya habia revisado.

En la configuracion del sitio web hay un apartado que dice ASP.Net. Lo han revisado? esto es lo que yo veia:

Solucion

Ven algo raro ahi? (no hagan caso a los campos vacios, yo los vacie). Pues resulta que a windows no le molesta que tengas los dos frameworks ahi. Pero a la hora de correr un sitio web tienes que decirle cual vas a usar para correrlo. Por default lo intenta en la 2 (supongo que por que es la mas reciente). Asi que hay que especificarle que lo haga en la 1.1.

Dos clics y todo sin problemas… a veces es mejor alejarse del problema un poco antes de perder varias horas desquiciandose. ∞

El aprendiz de mago

January 23rd, 2007

Han visto el “clasico” de disney “Fantasia”??? Yo lo intente pero me aburri. Sin embargo seguramente han visto alguna referencia a el. Principalmente el capitulo llamado “The sorcerer’s Apprentice” (magistralmente parodiado como “Salvajia” o “Scratchtasia” en los Simpsons). En el se narra la historia de un aprendiz de mago que por querer imitar los trucos de su maestro sume todo en un desastre.

Pues bien, me encontre un articulo muy muy divertido llamado exactamente igual: “The Sorcerer’s Apprentice“. Solo que aqui la “magia” no tiene que ver con las varitas, y si con el debugging de un mainframe. Esta en ingles y no me di el tiempo de traducirlo, pero si puedo darles una breve sinopsis.

No necesito la ayuda del brujo, se dijo a si mismo Rod Taylor. Lo he observado debuguear una y otra vez. Realmente no se ve tan dificil!

Asi inicia la historia de un aprendiz a administrador de Mainframe, que al intentar cazar un error sin la supervision de su maestro, olvida meter una coma al final de un comando, lo que sucita una serie de cosas muy divertidas.

Es definitivamente una historia para gente como uno. La encontre en un blog que he estado leyendo recientemente, llamado “The Daily WTF” Donde hay muchos de estos chistes y cosas curiosas, que son practicamente exclusivos para desarrolladores, y todos los que tenemos que ver con la informatica. Les recomiendo que si le mastican al ingles se subscriban. Esta muy divertido ∞

Focas

January 19th, 2007

Uno de mis maestros llamaba “comida de foca” al la parte de un sistema de computo que tenia como unica finalidad el verse bonita. Le llamaba asi por que, segun sus palabras, para hacer que un usuario “aplauda como foca” no vas a impresionarlo con la elegancia de tu diseño, tampoco con tu limpia implementacion de patrones, ni con la pulcritud de tu codigo. Lo vas a impresionar con una bonita, brillante y funcional interfaz de usuario.

Bueno quiza los usuarios (o al menos no todos) son como focas. Los desarrolladores tampoco. Sin embargo bajo ciertas circunstancias, tambien nos ponemos a aplaudir como tan singulares animalitos. Aunque quiza lo que dispare esto sean cosas muy diferentes.

Ayer a mi me toco que me dieran mi pescado. Resulta que aprendi a usar las notificaciones de Pocket PC. Si han usado una seguramente las habran visto, son algo asi

Notificacion en Pocket PC

Resulta que como antiguo usuario de Visual Studio 2003, si querias algo asi tenias que irte muuy a las tripas de windows, y con algo de suerte, quiza lograras el mismo efecto. El .Net Compact Framework 2 ya tiene una clase que nos permite hacer esto “rapido y sin dolor” en el Namespace Microsoft.WindowsCE.Forms.

Tan simple como escribir algo asi:

Notification1.Text=”Hola Mundo!”
Notification1.Visible = True

Tendremos una bonita notificacion en nuestra pantalla. Por supuesto ahi hay que jugar un poco con los metodos y propiedades de la misma. Lo mas mas interesante es que la notificacion acepta codigo HTML, por lo que puedes meter verdaderos formularios completos en una de estas notificaciones. En lo particular encontre esto ultimo muy util, y lo podre aplicar a varias cosas de mis proyectos de movil futuros. (mencione que estoy en un proyecto de computo movil?). Esa caracteristica en particular fue la que me puso en estado de foca. Quiza mi usuario final encuentre que las notificaciones se ven “bonitas” y hasta ahi. Jamas sabra de la belleza que hay detras.

Para mas informacion de esta clase, por supuesto esta el MSDN. Si dan clic en este link van a encontrar toda la informacion pertinente ademas de un ejemplo muy ilustrativo.∞

Microsoft TFS (deberia ser TFC)

January 12th, 2007

En mi trabajo estamos iniciando un nuevo proyecto y andamos en investigacion de nuevas tecnologias y nuevas metodologias a fin de aplicarlas en este nuevo desarrollo. De lo que mas me intereso es instalar el Team Foundation Server para llevar el control del codigo y las estadisticas (y ver cuanto jugo le podiamos sacar). Asi que me dispuse a descargar mis versiones de evaluacion, tanto del TFS como del Visual Studio Team Suite. (microsoft te da un respetable tiempo de 180 dias para el trial).

Instalar el Visual Studio Team Suite no es nada complicado. Pero comence a sufrir con la instalacion del TFS. Tienes que instalar SQL server 2005, luego su service pack 1, luego un hotfix para el .net framework, luego el windows sharepoint services… cada una de esas cosas tiene a su vez una lista de cosas que hacer y que no hacer. Me pase varias horas tratando de instalar cada prerequisito, descargando actualizaciones y cosas de esas. Al final de todo cuando ya me sentia cerca de la victoria, me marco un error en el sharepoint que ya no puse mucho empeño en resolver.

Total que se me termino el tiempo que tenia para investigar nuevas tecnologias. Decidimos llevar el control del codigo con el viejo y conocido Source Safe 6, y perdernos de las “increibles mejoras de productividad” que nos pudo propocionar el TFS.

Team Foundation Server??? para mi resulto ser “Too Fuckin Complicated” ∞

Un resucitado!

January 12th, 2007

Muchos (?) me diran padre irresponsable por haber dado a luz a mis gemelos y despues solo cuidar a uno de ellos. Por que pese a que no comento muy frecuentemente en DobleNegacion al menos si he metido mas temas que aqui.

Creo que al menos tengo un buen pretexto para haber descuidad a este bebe. Como ya habia expresado, este blog era para asuntos relacionados con programacion. El padrino me habia sugerido que lo usara mas que nada como una especie de bitacora para anotar las cosas que aprendia (y de paso compartirlas al mundo). Pues bien, resulta que por una cosa o por otra desde el dia que abri este blog mis actividades creativas en esto del desarrollo de sistemas quedaron misteriosamente estancadas. No habia nuevos desarrollos, ni nuevo aprendizaje. En lo personal estuve creciendo en otras cosas, que aunque tienen que ver con mi vida profesional, no ocurre lo mismo con tecnologia.

Sin embargo, el inicio del año me trae muchos cambios interesantes. Un nuevo proyecto me tendra ocupado los siguientes meses, y es mi inicio con Visual 2005 (ok, se que me tarde), ademas de que intentare la implementacion del Scrum y de varios patrones de diseño. Ademas se viene un curso de certificacion (digamos que esta un 90% concretado) y unos cuantos proyectos personales, asi que el programador que llevo dentro comenzara de nuevo a moverse, y con el este blog.

Ahora espero que no suceda que con tanta cosa que hacer no me de tiempo de bloguear :P

El programador que llevo dentro esta cada vez mas voluminoso.

October 30th, 2006

Aclaracion previa: tiendo a usar indistintamente programador y desarrollador, en parte por que el grueso de la gente no sabe a que te refieres cuando les dices que eres “desarrollador”.

No solo de codigo vive el programador. Y esto en fechas recientes este hecho se esta haciendo particularmente mas y mas evidente. Cuando uno es estudiante (a.k.a. estudihambre) la vida es mas bien ruda e ingrata. Las caminatas para ahorrarse el transporte publico, la mala alimentacion y las desveladas son el pan de cada dia. Cuando sales de la escuela y te empieza a ir moderadamente bien, el cambio de vida comienza a pronunciar la curva de la felicidad.

En mi caso particular esto se ha acentuado bastante. Una amiga me dice pozolero, y no precisamente por seguidor del “Pozo Tecnico”. En lo que va de este año he ganado cerca de 8 kilos, y al parecer la tendencia sigue a la alta. He notado que muchos de mis excompañeros han ganado en “cachete” y “lonja” el equivalente a su experiencia laboral. Este incremento sin duda obedece a una o varias de las siguientes razones:

  • Tu horario de comidas deja de ser el de “ahi cuando puedas” y tu comida deja de ser “pa lo que alcance”. Normalmente la comida comienza a ser mas regular y mas opulenta de lo que solia ser.
  • Tu actividad fisica se reduce. Esto es aun mas cierto si ya lograste comprarte tu carro. Probablemente tu caminata mas larga del dia sea del estacionamiento a tu lugar de trabajo.
  • Pasas sentado (o en reposo) de un 60 a un 90% del tiempo. Aparte de tus 8 horas de trabajo, que evidentemente es frente a la computadora, puedes pasar de 1 a 4 horas al dia en el transporte (se puede incrementar si, como yo, eres chilango), unas 6 horas mas o menos las duermes, y quiza, muchos de tus pasatiempos o actividades extralaborales tengan que ver, nuevamente, con la computadora. Asi que en tu casa estaras otro rato sentado.
  • Ahora tienes mas varo que antes. Esto significa que puedes comprar mas chelas, comida grasosa, sabrosa y poco nutritiva, y demas elementos de felicidad cada que te reunes con tus amigos (o cada que se da la hora de la comida).
  • Si eres un tiiiiiipico programador a la mexicana, probablemente tu turno de 8 horas se apegue a la teoria de la relatividad, y esas 8 horas en el trabajo sean 9, 10, 11 o 12 del mundo real. Lo que reduce notablemente tu tiempo libre.

Total que es dificil ser programador y tener actividad fisica. Seguramente desde que saliste de la escuela ya has subido algunos kilitos. Como no es mi interes morirme de un infarto a los 40, y como veo que entre el sedentarismo y el stress, en mi trabajo la hipertension es practicamente requisito para pertenecer al area, he decidido iniciar una campaña de reduccion de materia.

Si le buscas en la red encontraras numerosos consejos para hacer ejercicio en la oficina, una aplicacion que te enseñara a hacer yoga en tu trabajo e incluso algunas propuestas de silla para mantenerse en movimiento (la pelota en lugar de silla es un consejo recurrente), o de plano esta especie de sillacicleta. Aunque suenan bien, realmente no me imagino como se me quedarian viendo en la oficina de andar haciendo ejercicio, ademas, de que la oficina no se me antoja como buen lugar para sudar.

Supongo que lo mejor es tratar de programar una hora (por lo menos 30 mins) todos los dias e intentar algo de actividad variable. Preferentemente algo divertido para ademas sacar el stress, y si es en equipo mejor (podrias llamar a tu equipo deportivo los “ratones opticos”, “los troyanos” o los “zorros de fuego” para no perder el espiritu). En mi caso al ser un llanero solitario de la programacion quiza intente algo como natacion. Ademas hay que tratar de llevar un control de las cosas que entran por la boca (me refiero exclusivamente a comida). No digo que se vuelvan unos contadores compulsivos de calorias, pero si vale la pena entrarle a una ensalada (sin aderezo) de vez en cuando. (Las quesadillas con mucha lechuga o los tacos con mucha verdura no cuentan como ensaladas). Seguramente muchos ya tendran el habito de la actividad fisica, para otros dedicarle un rato , un poco de valioso tiempo y bastante de voluntad puede resultar un desafio. Pero seamos honestos, cuanto tiempo del dia no dedicamos a ver videos de youtube, o andar viendo demas cosas poco productivas en la red. No vale la pena invertir un poco de tiempo al dia en uno mismo? Quiza te interese llegar a ver el dia que Google domine el mundo. Y seguramente querras llegar con la mejor salud. Vale la pena el esfuerzo. Ten la disciplina de hacer las cosas que no te gustan y tendras el tiempo para hacer las que si te gustan. Ademas, nadie dijo que esto de la actividad tenga que ser algo desagradable, lo ideal es que encuentres algo divertido.

Tambien es deseable tener una forma de cuantificar los resultados. El conocer tu peso o la circunferencia de tu cintura (por metrosexual, lease gay, que suene) y llevar registros de sus modificaciones puede ayudarte que tan mal (o bien) estas, ademas de resultar como un buen metodo de motivacion (tengo que considerar comprarme una bascula).

Tengo la firme intencion de comenzar a cuidarme mas, y ya les estare contando de mis experiencias. Les invito a que tambien compartan las suyas.

El padrino

October 28th, 2006

El padrino

No. No me refiero a Don Corleone. Me refiero a Don Madrigalone.
Carlos Madrigal
Carlos Madrigal, musico, programador y loco, originario del norte y residiendo aun mas al norte, es en buena medida el culpable de que yo me haya animado a tener a mis gemelos, este blog y el de doble negacion.

Por una recomendacion en el podcast de Byte comence escuchando su podcast. Y en el he encontrado buenos consejos, pero sobre todo, motivacion, para moverme mas fuerte por el camino del autodidactismo y de las buenas practicas de la programacion pragmatica.

He tenido el honor de salir por ahi con un comentario en su podcast (por ahi le debo otra contribucion), pero mas aun, he tenido el privilegio de tener contacto con el. Supongo que ni enterado esta de que ya es padrino, pero asi queda nombrado oficialmente. Esperemos que pronto se pueda dar una vuelta por este rumbo y nos deje un comentario.

Bueno, y fuera de las alabanzas, recomiendo su blog y su podcast para todos los que, como yo, le entramos al .Net. Hay muchos consejos utiles y buenas practicas de programacion. Ademas de que trae un desmadre muy sabroso y seguramente pasaran un buen rato escuchando el podcast (les pongo el promo pa que se animen a escucharlo).

[audio:http://media.pozotecnico.com/Promo.mp3]