Hoy te extrañé

Fue un día increíble.

A pesar de desvelarme, me desperté con relativa facilidad y logré hacer mi rutina mañanera sin ningún tropiezo. Suena a un paso muy pequeño, pero es un pasito que le da tranquilidad a mi día. He estado súper enfocado en esas pequeñas victorias, no en una manera ansiosa (al menos, intento que no sea así), sino en el ánimo de “adelante, tú puedes, un pequeño paso para este hombre.” Y me gusta empezar el día así.

Me preparé y escogí un atuendo que me hiciera ver razonablemente bien, dentro de lo limitado de mi guardarropa. Combiné apropiadamente mis zapatos, mi cinturón, mis calcetines. Escogí un saco que le fuera en color (aunque solo tengo dos, aunque me quede ya grande). Pasitos. Feel good, be good. Preparé cuidadosamente mis extras para el almuerzo, porque sé por experiencia que un sandwich y fruta no será suficiente, ni con todo el café del mundo. Porque malpasarse está mal. Porque la experiencia no sirve de nada si no aplicamos los conocimientos aprendidos.

Emprendí el camino. A diferencia del año anterior, este año lo hice en la bici. Quién me viera, en bici, de saco, con una bolsa de espinaca en la mochila para mi comida. Tanto ha cambiado, en lo que parece ser tan poco tiempo. Tanto he cambiado. Y me sienta bien. Sigo siendo yo, vuelvo a ser yo. Parece que por fin soy el que siempre había querido ser.

Tuve un día de triunfos en el trabajo. No, no grandes triunfos. No me dieron un aumento ni logré conquistar alguna cima nevada. Pero muchos, pequeños triunfos. Corregir, por fin, mi problema con el cable de red. Seguir reacostumbrándome a la “nueva normalidad.” Disfrutar el café como un gusto, no una muleta para aguantar el día. Cohesión de equipo. Lunch con ritmo, no desesperación. Salir a una hora razonable, cuidando mis tiempos respecto a otras obligaciones.

Y entremezclado entre ellos? Mi primera llamada, 100% en holandés. Hice mi pregunta en el gemeente, con nervios, con dudas, pero lo hice. Y me entendieron y les entendí. No tan pequeños logros.

Salí con un clima que amenazaba lluvia. Hubiera sido facilísimo cancelar todo el plan de la tarde y regresar directo a casa, por si acaso. Pero el miedo a cosas tran triviales como la lluvia es algo que estoy superando, poco a poco. Fuí al centro y me metí, curioseando, al estacionamiento subterráneo de bicis. Nunca había entrado. Es increíble! Gratis, amplio, autoservicio, y al final del día los dispositivos para estacionar la bici arriba de otra no son nada del otro mundo. Varios pequeños objetivos cumplidos. Ah, y si llovía? No biggie. Mi jamelgo estaría seguro ahí dentro.

Fui a mi cita. Y también, en la puerta, y en la ventanilla: 100% holandés. Y les entendí, y me entendieron. A diferencia de otras ocasiones, no me cambiaron a inglés. Me preguntaron si quería cambiar. Pero decidí presionar y seguir adelante. Y les entendí, y me entendieron. Y salí con mi trámite hecho, y mucho sentimiento bonito en el corazón. Hinchado de alegría.

Y tenía una hora para matar, y pude irme a un café a perder el tiempo. Pero en vez de eso hice el súper especial que me había eludido por estar fuera de mis rutas usuales, a pesar aún de tener que enfrentarme con la posible fila que siempre veo para entrar a esa tienda. Pero no había cola y entré y compré lo necesario, y aún con el tiempo un poco encima seguí a mi otro objetivo espontáneo, y logré más pequeños objetivos de largo plazo. Logré contener mi impulso de gastar, logré decidir “siempre no, esto no me queda bien”, y salí con justo lo que quería y a un precio razonable.

Y reafirmé que aquí el tiempo dura más y llegué a mi segunda cita con facilidad, a pesar de que intenté cancelarla por internet momentos antes, pero no se pudo. Y dije “por algo pasan las cosas” y logré también avanzar ese trámite, aunque al final me faltaron las fuerzas para terminarlo, pero con la seguridad de que puedo continuarlo otro día, acompañado tal vez, con otros ojos que me den opinión y refuercen mis decisiones, porque en gustos se rompen géneros y a lo mejor necesito una perspectiva diferente que me diga “anda, Sergio, anímate” o “no, Sergio, es demasiado grande ese salto.” O simplemente “no te queda.”

Y en vez de dejarme caer al gusto de la gula y el hambre mantuve mis objetivos, y regresé a casa y comí lo que tenía planeado ya, sin gastar más, y luego pagué (casi todas) mis cuentas de este mes y me sentí muy afortunado de poder hacerlo así, con calma, sin el estrés de matemáticas que usualmente salen, pero a veces muy al raz, y a veces amenazan apretarse literalmente el cinturón durante el mes. Y acomodé mis cosas y me senté aquí en mi escritorio, pensando que el día había pasado muy bien y que estaba muy feliz de todo.

Y luego me acordé de ti. Y te extrañé.

¿Porqué necesitas usas diferentes contraseñas en cada sitio y servicio?

Seguro has escuchado ese mantra:

“Para cada página web, para cada servicio que utilizas, es necesario utilizar contraseñas diferentes”

A la gente le *purga* escuchar esto. “A duras penas me acuerdo de mi contraseña “de siempre”, y tú quieres que use varias? Vete al cuerno.” La verdad es que existe una sencilla y poderosa razón para recomendar esto. Y va, como mantra secundario:

Lo que pasa con nuestras contraseñas en internet no depende de nosotros

A qué me refiero? Seguro escucharon de la vergüenza que pasó Sony el año pasado. En resumen: unos malos muy malos se metieron a sus servidores, y se robaron las contraseñas y datos de contacto (dirección, teléfono, correo electrónico) de *77 millones de usuarios* de la PlayStation Network. Ah, y también tiraron la tal PSN por casi un mes.

Bueno… y eso qué tiene que ver? Pues muy sencillo. Armado de una dirección de correo electrónico y una contraseña, no es difícil para un atacante investigar en múltiples servicios, para determinar si en alguno de ellos el usuario utilizó la misma contraseña. Y efectivamente esto pasó: cientos de reportes surgieron en internet acerca de múltiples otros servicios vulnerados. Por utilizar la misma contraseña.

Las consecuencias pueden no ser fáciles de vislumbrar, pero ahí va un posible camino: obtengo tu contraseña y tu correo. Si usas *esa* contraseña en tu correo, tengo acceso a tu correo. Con tu correo, puedo obtener acceso a tu facebook, twitter, etc. Puedo hacerme pasar por tí. Con un poquitín de suerte, puedo obtener suficiente información personal tuya (digamos, escribiéndole un correo a algún familiar desde tu cuenta de correo) como para fingir ser tú en el “mundo exterior”. Y mejor no le sigo, tanto por no dar ideas, como para no asustar de más… creo que basta con esa idea.

Y si crees que esto solo pasa una vez en la década, estás equivocado. Lamentablemente, los programadores también son personas, y muy lamentablemente, cometen errores. A veces garrafales. Es tremendamente común descubrir que páginas web que manejan usuarios y contraseñas (hoy en día, casi todas) no las manejan de manera segura; ni siquiera con tantito cuidado, vamos. Hay más carnita en ese tema, pero será objeto de… otro post.

Bueno, cómo le haces para recordar todas esas contraseñas? Hay programas que te ayudan. Keepass es una excelente opción si solo utilizas contraseñas en tu computadora; trabaja con Linux, Windows, Mac, etc. Si quieres algo un poco más universal, LastPass admite teléfonos móviles y hasta puedes configurar una memoria USB para servir como token, aunque para todo eso te cuesta extra. Pero opciones hay…

De C#, y porqué el tamaño sí importa

Resúltose que estabamos probando una mejora a la aplicación de Factúralo tú mismo, cuando nos hablaron para una solicitud de soporte… algo extraña.

En todos los sistemas que habíamos probado la aplicación, esta nueva actualización se realizó sin problemas. Era una actualización, a decir verdad, mucho más estética que de funcionalidad: se cambió un poco el look de la aplicación, para que fuera más concordante con los estándares de UI actuales (digamos, íconos más bonitos, etc). Pero bueno, a uno de nuestros usuarios, este movimiento le causo el siguiente horror:

************** Texto de la excepción **************

System.ComponentModel.Win32Exception (0x80004005): El parámetro no es correcto

en System.Drawing.Icon.Initialize(Int32 width, Int32 height)

en System.Drawing.Icon..ctor(SerializationInfo info, StreamingContext context)

La absoluta irreproducibilidad del error (y que se note que lo intenté, en los 3 equipos de los que pude echar mano el fin de semana) me llevó a considerar el problema un *extraño* más, y dejarlo como otro caso para la araña. Sin embargo, hoy me hablaron diciendo que el caso se había esparcido – sí, es correcto – a otro equipo de cómputo. La única característica definitoria para ambos? Netbooks.

Pues me puse a investigar. Evidentemente el problema hacía alusión a íconos, pero… a cúales? Ay de mí si eran los que había agregado… tendría que deshacer el trabajo de la semana. Pero sin desánimo me puse a buscar, y al final resultó ser el ícono de la aplicación. Sí, un simple ícono… con los siguientes parámetros:

WIDTH:700
HEIGHT:699

¬¬ Ok, eso podría ser. Pero porqué los demás sistemas se actualizaban sin problemas? Aparentemente, hay versiones de Windows que ejercen de manera más estricta el tamaño de los íconos – o mejor dicho, Vista/7 se ajustan dinámicamente aunque les avientes una barbaridad como aquella, y lo redimensionan automáticamente.

Algo nuevo aprendí hoy XD

Cómo utilizar DLLs externos en un programa de C#

…Después de la catarsis…

Hace poquito escribí acerca de mi alegría en obtener una rápida y eficiente solución a un problema que me estaba preocupando, específicamente de cómo copiar de manera segura archivos utilizando C#. Me encontré una biblioteca que hace justamente eso, utilizando el buen y viejo SCP. En pruebas todo estaba bien, terminé otras actualizaciones al proyecto, y como siempre, lo subí a un servidor donde la versión más nueva es descargable por los usuarios del sistema (o en resumen: “actualicé el servidor de actualizaciones”).

…Y que me avisan – esto no sirve. Terriblemente apenado, revisé inmediatamente la situación (ERT: 10 mins) y descubrí que C# me mostraba un error horrible a la hora de querer actualizar:

"[...]El archivo XXXX ya existe."

Mmm… huh? Pues claro que ya existe, babas. Era uno de los archivos .DLL que agregué para utilizar su funcionamiento. Pero… porqué se quejaba el instalador de ello?

La moraleja en versión breve es: lo agregué dos veces. Primero lo agregué como archivo al proyecto (Proyecto | | Incluir recurso existente) y luego agregué la referencia (Referencias | Agregar referencia). El manifiesto se confundió y chilló sin tregua.

Lección aprendida: Si vas a agregar un DLL externo, solo tienes que agregarlo como referencia. No es necesario agregarlo como archivo – Visual Studio se encarga de incluirlo con tu proyecto en el deployment.

Scp y C#

Hay veces que la vida te hace sentir inseguro, triste, alicaído, dolido y débil…

Then again, hay veces que… bueno, un video dice más que 1M palabras:

El código relevante:

Scp bule = new Scp(servidor, user, pass);
bule.Connect(puerto);
bule.Put(archivo origen, archivo destino);

Y la biblioteca relevante:

http://www.tamirgal.com/blog/page/SharpSSH.aspx

😀

Cybersquatter a la vista!

Cuando tenía mi viejo dominio (sergiobecerril.homelinux.com) me justificaba diciendo que era un dominio largo, pero explícito: soy yo (sergiobecerril) en casa, usando linux (homelinux) y pues… pues el .com es el más reconocido, nooo? Además, tenía la ventaja más grande de todas: era gratuito. Y es que el prospecto de pagar $30 USD por año no se me hacía muy apetecible, con mi salario de $2,000 MXN y todo.

Pasaron dos años… y gracias a jusafing, decidí por fin apretarme el cinturón y comprarme el dominio. No me salió tan caro (alrededor de $80 USD), y me permitió hacer un secret registration, DNS dinámico, y toda la cosa. Por un año, por supuesto, pero aún así estuvo muy bien según yo.

El punto es que a la hora de comprarlo, decidí conseguir un .org. Había dos razones: el precio (.org es más barato) y el propósito del sitio. Como saben, tengo yo diferentes prospectos de negocio (aquí es donde irían mis diferentes links, pero ya vendrá el tiempo después), y cada uno tiene su sitio particular. Me pregunto… ¿qué necesidad habría de que registrara un .com a mi nombre, si lo pienso utilizar para propósitos personales? Ninguno, supuse. Y entonces me quedé con el .org. Ya no había sergio.org, pero sí un sergiob.org.

100 posts después, me entero que mi noble y humilde sitio tiene ya un cybersquatter (vayanse al cuerno con su término latinizado, eso no existe). Y pues… es una mezcla curiosa de orgullo paternal y horror personal. Digo, que orgullo que alguien me quiera imitar, pero… en serio? Ya no hay respeto por nada en este mundo?

Para no hacerles el cuento (más) largo, sergiob.com ya es de alguien. Y tiene una horripilante plantilla “ya está” tipo José Luis (y aquellos que no entiendan, créanme, les conviene no saber. Oh por Dios, el horror…) La cosa es que nunca me imaginé que a alguien le interesaría ese tipo de cosas con mi dominio. Google no me muestra entre los resultados más populares (cosa que, curiosamente, sí ocurría con M&N, pero nunca supe porqué). Sigh…

Supongo que solo queda esperar a que me llegue la oferta. O salga el blog de “…poco aprieta”

¬¬

Mejor no doy ideas.

Pánico escénico

Dos semanas y media… 17 días… 408 horas…

Y qué se supone que debo de saber? Mi carrera, obvio. Mis expectativas, mis planes futuros, el plan de vida de aquí a 5 años (“o sea, mínimo!”)… ah, y de qué sabor mi nieve, también. Supongo.

Es correcto esto? Pasar 5 años (ok, 6, pero no te fijes) feliz de la vida como almeja en tu… er… almeja, preocupado de objetivos perfectamente bien definidos, y de repente puff! Ya no hay barreras! Soy el único loco que piensa que tiene poco sentido?

Y lo irónico es que puedo seguir en el mismo camino… pero creo que no quiero. Cuál es el momento apropiado para decir “esto no es para mí, mejor me voy por acá” sin que eso represente un abandono de todo lo que has buscado? Confuso, sin duda. El mundo te empuja a seguir el camino predefinido, y corres el riesgo de quedarte solo (aunque eso sí, dándote la divertida de tu vida) si decides desviarte.

Diría la cocuguita: “Patrañas!”. Claro que también diría algo así como “ponte a trabajar y deja de quejarte”, pero bah, ni quien se fije…

Tal vez es el sueño. O la falta de, en su caso. Es probablemente imposible de determinar, pero lo que sí es cierto es que estoy muy cerca de escoger la ruta menos preferida… no me siento al borde de un precipicio, me siento como el perro de las dos tortas. A ver si se puede reescribir la historia.

Sigh… debí ser coordinador ofensivo…