lunes, 10 de junio de 2013

asynch log vs normal log

Some time ago, my program manager said to me that, remove the system logger, because, made the web application slower.

Yesterday I thought, I can write an asynch logger for improving the performance of the application in c# 4.0, with Visual Studio 2010.

The main idea is this:


public void Write(string message)
{
    Task.Factory.StartNew(() => WriteTheMessage(message)); 
}

private static void WriteTheMessage(string message)
{
    lock (_locker)
    {
        using (StreamWriter writer = File.AppendText(path))
        {
            writer.WriteLine(message);
        }
    }
}


All the code

A simple test:




Repository Pattern

I've added a new utility in my github repo is a simple implementation of repitory pattern.
I've found the original code: carl-berg

martes, 4 de junio de 2013

Simple board kanban

Some time ago, I was in a course about personal kanban & another productivity techniques by Diego Rojas The course was very funny.

I dicovered a great simple HTML board kanban

lunes, 3 de junio de 2013

Some nice videos

One
Two
Sport motivation I
Sport motivation II
Sport motivation III

Una opinión sobre la gestión de proyectos en España

Según mi experiencia no siempre pasa esto, pero casi. Básicamente hay dos tipos de informáticos, entendiéndose por ello gente que se dedica a la informática:

- Los que saben: No han nacido sabiendo, no, el conocimiento no les vino por ciencia infusa, sino que se han interesado en aprender de qué va esto y se dedican a ello

- Los que no saben: Ni saben, ni quieren saber, ni sabrán, porque se la fuma. Esconden su incompetencia con frases del tipo... "Cuando yo era joven.... Es que ya no tengo tiempo de tocar esto... Es que yo soy de C y no de Java... Blah blah". Esta gente, a la que la informática y, en general, cualquier cosa que suponga un esfuerzo real más allá que lamer dos culos, se la trae al pairo, se convierte en un perfecto trepa y, muy probablemente, terminará siendo un jefe de proyecto, director manager, o como coño quieras llamarle.

¿Y por qué alguien que no sabe, que es un cateto, va a ser un jefe de proyecto? ¿Cómo es posible esto? Fácil, son cosas que se heredan: su jefe también lo es, de modo que es fácil engañarle porque no sabe hacer la 'O' con un canuto. Mientras que tú, tecnólogo apasionado, estás dedicándote a lo que te debes dedicar, tu compañero, experto en facebook, msn, age of empires, y que no sabe lo que es una dirección IP, está dorando la píldora a vuestro jefe y comiéndote la tostada.

"¿Comer la tostada? A mí me gusta lo que hago, no quiero hacer gestión" Ya, pero esto no es EEUU, esto es España, un sitio donde el que gana pasta es el que "gestiona", nadie va a valorar tu trabajo porque no entienden nada de lo que haces ni saben el esfuerzo que supone hacerlo. ¿Estás contento con tu sueldo y tu situación? En ese caso no te preocupes de más, y disfruta
:)

Para el resto: El que gestiona, por norma, NO es más que tú, sino todo lo contrario, porque ni sabe de tecnología, ni sabe de gestión. Analízalo:

- Ha estudiado lo mismo que tú, o algo parecido.
- No tienen ni idea del mundo técnico, porque saber es mucho más que hacer una carrera, módulo, certificación, o título de cualquier tipo. Saber es esforzarse y amar lo que haces
- Se han aprendido cuatro palabras y frases hechas para salir del paso en reuniones y tertulias, enseguida meten la zarpa hasta el fondo, aunque con los años ganan pericia en esto
- De gestión saben lo mismo que tú, evidentemente, osea: nada. Una vez ascendidos, si tienen un mínimo de verguenza y autocrítica se comprarán algún libro de liderazgo para noveles del que copiarán otras cuatro frases interesantes. Lo importante es aparentar, esa es la cuestión
- Una vez en la brecha, hay gestores que lo hacen mejor, y otros peor. ¿De qué depende esto?: Del sentido común. De ahí la lotería tan común en el campo de los proyect managers, los hay buenos, mediocres y patéticos, siendo los dos últimos los más extendidos.
- La incompetencia de un gestor la solucionan los técnicos que asumen de verdad el proyecto. Muchos proyectos salen adelante cuando el gestor se quita de enmedio y deja que los saben hagan y organicen su propio trabajo. El gestor ha hecho poco más que asistir a una reunión estúpida de lanzamiento y poner la mano a final de mes
- Son opacos, no dicen lo que piensan, siempre usan una sonrisa, evitan confrontaciones directas, suelen ir por la espalda, la nobleza brilla por su ausencia, y son genios de la copia oculta del correo. Estas son algunas características comunes a todo proyect manager trepa que se precie
- Físicamente, sobre todo si son jóvenes, se les suele distinguir porque tratan de ocultar sus inexperiencia (fruto inexcusable, entre otros, de su juventud) con elementos de camuflaje de todo tipo, buscando un aspecto más senior: ropa demasiado seria, coche de carroza, dejarse barba o resaltar las canas son sólo algunas de las estrategias que podemos encontrarnos

Alguna vez, y sólo alguna vez, por extrañas circunstancias que aún desconozco, he visto jefes de proyectos tecnológicos que de verdad sabían gestionar un proyecto (Ironías de la vida, estos, generalmente, no eran informáticos, ni telecos, ni técnicos de sistemas, ni, ni...) Pero, en la mayoría de los casos, el simple hecho de que no entorpezcan el trabajo del equipo es ya motivo de celebración, tal y como afirma el texto del artículo.

Hasta la próxima.

martes, 28 de mayo de 2013

Pistas para mejorar como programador

Leyendo un internet, he descuibierto una entrevista a Raúl Murciano, que habla de cómo mejorar como programador. Lo copio literal:

"Personalmente recomendaría lo siguiente, tanto a la gente que esté pensando en ir a trabajar fuera como a los que busquen trabajo en España:

- Si te vas a dedicar a la programación o al desarrollo web, plantéate si te gusta ese trabajo y si te divierte aprender. Este sector avanza a un ritmo increíble y no tiene pinta de frenar. Es imposible saber de todo, pero sí que necesitas mantenerte un poco al día. Si eso no te divierte vas a tirar un montón de tiempo de tu vida a la basura y se te agriará el carácter. Incluso si lo piensas fríamente, no tiene sentido: cualquiera que le ponga un poco de entusiasmo lo hará mejor que tú en poco tiempo. Dedicarte a esto si no te gusta sólo porque hay más empleo es pan para hoy y hambre para mañana. Como contrapartida, si te gusta crear y experimentar dentro de este terreno, estás de suerte: hace mucha falta gente como tú. No todo es de color de rosa, pero si tienes tiempo, ganas y la actitud necesaria estoy seguro de que no te faltarán oportunidades. Y si te faltan, escríbeme: raul@murciano.net e intentaré echarte un cable en lo que pueda.

- Como añadido al punto anterior, los cambios que vivimos no sólo son tecnológicos. Por un lado, el programador de hoy en día ya no recibe sus especificaciones y se mete en su cueva durante meses hasta que termina el proyecto. Los proyectos ahora se redefinen de manera iterativa y parte de nuestro trabajo consiste en aportar conocimiento técnico para evaluar riesgos, costes y oportunidades. Por otra parte, la mayor parte de los proyectos involucran gente de distintas disciplinas y conviene no sólo saber trabajar en equipo (que también tiene lo suyo) sino aprender un poco de las áreas relacionadas con nuestro trabajo. Para ser un buen desarrollador front-end necesitarás comprender a tus compañeros de diseño y de back-end, y todos deberéis entender al diseñador/manager del producto en el que estáis trabajando. El perfil de ultra-especialista-en-mi-nicho existe pero hay que ser MUY bueno.

- A nivel de "empleabilidad", me parece importantísimo tener algo visible que puedas enseñar, ya sea a nivel profesional o algo que hayas hecho en tu tiempo libre. Un blog, unos experimentos en GitHub, algún cacharreo de fin de semana... Algo que te divierta hacer y de lo que podrías hablar durante una entrevista de trabajo. Tener un título universitario te puede venir bien para conseguir un visado, pero en mi experiencia eso suele ser lo de menos. Cada vez más gente se da cuenta de que somos lo que hacemos, y no lo que un papel dice que hemos estudiado. Y volviendo a lo que comentaba antes, el entusiasmo, la persistencia y la humildad necesarias para aprender a hacer las cosas un poquito mejor cada día. Creo que sin eso no somos nadie, en lo personal y en lo profesional."

Fuente

viernes, 24 de mayo de 2013

New Little Pet Project: AudioPlayer

I´ve read somethings about sound in HTML5. So I´ve decided write some code playing with it.

The result is in my github account.