Archivo Mensual de Septiembre, 2008

DreamSpark… ¡o Microsoft regalando software!

Hace relativamente poco descubrí la existencia de Microsoft DreamSpark. Se trata de una estupenda iniciativa de la gente de Microsoft en la que ofrecen algunos de sus productos estrella libres de coste para universitarios. En la misma línea, del VisualStudio, por ejemplo, tenemos disponible para todos los públicos y desde hace tiempo versiones Express libres de coste. Sin embargo estas versiones Express tienen ciertas limitaciones respecto a las versiones profesionales.

Pues bien, en Microsoft DreamSpark nos podemos descargar gratis el VisualStudio2008 (Professional Edition), el WindowsServer2003 (Standard Edition), el SQLServer2005 (Developer Edition) y más productos tal como se muestra en este enlace.

El funcionamiento es simple. Solicita primero autenticarse con la cuenta de Windows Live y después se cerciora que efectivamente somos estudiantes universitarios. A mí me ha pedido mi usuario y password de la UOC y ha realizado las comprobaciones online pertinentes. A partir de ahí, ningún problema en descargar las ISOs correspondientes a los programas. La aplicación web de DreamSpark incorpora un generador de claves de registro para el software que nos estemos descargando. Eso sí, imperativa una buena conexión porque el VisualStudio2008 sin ir más lejos supera los 3 gigabytes.

PD. No se me escapa la intención comercial de esta iniciativa a largo plazo, pero no quita que me parezca una estupenda manera de agenciarse estos programas sin tener que rascarse el bolsillo…

Sábado sabadete… conferencias PHP.

Este próximo sábado 27 de septiembre estaré en las conferencias sobre PHP que la gente de PHP Barcelona User Group organizan en el Citilab de Cornellà.

Lo cierto es que apenas he tocado PHP en mi vida más allá de alguna aplicación mínima para conectar con una base de datos MySQL y guardar y recuperar cuatro registros. De hecho hasta ahora siempre he desarrollado aplicaciones de escritorio. No obstante y en la linea de lo que opina Enrique Dans, cada vez veo más claro que el futuro está en internet y en las aplicaciones online. Y en ese sentido conviene ir posicionándose para intentar nunca dejar de ser competitivos. Es por ello que entre mis objetivos está el ir ganando solvencia en tecnologías web como PHP o Ajax, por ejemplo. Así que cuando vi que se iban a celebrar estas ponencias sobre PHP no me lo pensé dos veces y me inscribí rápidamente. Si hay algún interesado, creo que todavía tienen la inscripción abierta (20 euros el registro). La semana que viene comentaré qué tal ha sido la experiencia.

Y puestos a llenar agenda con eventos de culturilla informática varia, también me he inscrito en el SAP Forum 2008 que se celebrará a finales de octubre en Barcelona (en otros puntos de España en otras fechas, tal como se explica en el enlace). En esta ocasión el evento es gratuito, pero también hay que registrarse, ya que el aforo es limitado.

Controlando controles… o la maldita Win32Exception.

Llevo unos cuantos días sin aportar nada al blog, no por falta de ganas sino por falta de tiempo debido en gran medida a que… 1) me he quedado sin coche y eso me hace perder varias horas útiles a lo largo de la semana… y 2) ha comenzado ya el cuatrimestre en la facultad y todavía me estoy organizando para intentar no morir en el intento de sacar adelante los proyectos profesionales y los estudios al mismo tiempo. De todos modos estoy trabajando tanto en la traducción de los dos posts con más visitas del blog (quiero añadir algunos artículos en inglés en este blog para intentar servir de ayuda a más gente -por eso traduciré sólo los posts que aparecen como más visitados en las estadísticas-) como en la creación de una librería que me han pedido ya varias veces.

De todos modos hoy dejo un dato curioso. ¿Cuál es el número máximo de controles que se pueden agregar a un formulario en VisualBasic.NET? Probablemente la mayoría no se lo habrá planteado nunca porque la respuesta es en realidad “los suficientes” o “más de los que nunca he necesitado”. ¡Pues no! Adjunto código e imagen del error que genera:

'--------------------------------------------------------------------
' Author:      Albert Mata (www.albertmata.net)
' Date:        20080923
' Description: Class to get a 'too many controls Win32Exception'.
'--------------------------------------------------------------------
Public Class MaximumNumberControls

    '----------------------------------------------------------------
    ' Simple (and silly) code to show how many controls we can add 
    ' in a VisualBasic.NET form before it crashes.
    '----------------------------------------------------------------
    Private Sub MaximumNumberControls_Load( _
    ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles MyBase.Load
        Dim TXT As TextBox
        Dim i As Integer = 1
        While True
            TXT = New TextBox()
            Me.Controls.Add(TXT)
            i += 1
            'Win32Exception when i = 9973 for TextBox!!!
            'Win32Exception when i = 9974 for Label!!!
            'Win32Exception when i = 9973 for Button!!!
            'Win32Exception when i = 9973 for Panel!!!
        End While
    End Sub

End Class

Así que en un formulario se admiten máximo unos 10.000 controles…

Todo esto viene a que ayer y hoy he estado peleándome con este asunto. Por un lado tengo un control personalizado que se forma con unos 150 controles entre TextBox y Label. Este control representa una previsión de stock de un determinado material para los siguientes N meses. Los TextBox y Label en cuestión son muy pequeños, pero todos muestran información única imprescindible que en algunos casos se debe poder modificar. No me sirve un DataGridView ni similares.

Sin embargo no tengo un solo material, sino cientos. De modo que cuando intento mostrar en un formulario un número demasiado elevado de estos controles personalizados obtengo ese error Win32Exception (concretamente al intentar mostrar el material 66, lógico porque 9.973 / 150 = 66).

Finalmente he encontrado la solución dando un par de vueltas al diseño de las clases involucradas. No la posteo porque es demasiado específica y nada interesante aportaría su estudio. Pero ya sabéis… si estáis diseñando controles personalizados un poco complejos, ¡tened cuidado cuando os acerquéis a los 10.000 controles en total! ;-)

PD. Ignoro si el número exacto depende de plataforma, versión de sistema operativo y demás. En cualquier caso la cifra es representativa…

Estrenando servidor (historia de la migración de WordPress).

El 17 de agosto comenté que próximamente (y eso ha terminado siendo hoy, menos de un mes después, estoy mejorando horrores en el cumplimiento de agenda) tenía intención de cambiar el servidor en el que estaba alojado este blog, ya que quería hacer que las URLs se mostraran no como…

http://www.albertmata.net/?p=70

…sino más bien como algo del estilo de…

http://www.albertmata.net/2008/07/informe-en-net-con-etc…

Eso suponía llevar a cabo un cambio en el hosting, ya que hasta ahora tenía un alojamiento Windows de Aruba y por más que lo intenté con mil y una opciones, no conseguí poner los permalinks en este nuevo formato y que no se me rompieran links a diestro y siniestro.

Pues bien, ya he cambiado… Ahora estoy en HostMonster, con una serie de prestaciones que me encantan y que, sin ir más lejos, me han permitido con un simple click dentro de WordPress tener los permalinks con el formato que quería. Y sin que por el camino se me rompa link alguno (al menos aparentemente). Otra cosa será que este baile de enlaces le guste más o menos a Google, pero después de sopesar los pros y contras decidí hacerlo de todos modos porque la estructura antigua de URLs no me gustaba nada.

La migración, en realidad, ha sido sencillísima. Resumo los pasos por si alguien se encuentra en la misma tesitura. No garantizo que así funcione, sólo garantizo que me ha funcionado a mí.

1) Utilizar la opción Exportar de phpMyAdmin en el alojamiento saliente (en mi caso Aruba) para obtener un archivo con extensión .sql (una copia de seguridad) con la base de datos que contiene las tablas de WordPress.

2) Utilizar la opción análoga Importar de phpMyAdmin en el alojamiento entrante (en mi caso HostMonster) para restaurar la copia de seguridad obtenida en el paso anterior.

3) En el nuevo alojamiento (el de HostMonster), llevar a cabo una instalación nueva limpia de WordPress y en lugar de crear una base de datos nueva, enlazarla con la base de datos recién importada. El proceso de instalación de WordPress nos permite configurar esto, pero si no también podemos hacerlo al final mediante los cambios pertinentes en el archivo wp-config.php.

4) Copiar al nuevo servidor los temas y plugins que se estuvieran utilizando en el servidor saliente.

5) Mediante el panel de administración de WordPress activar temas y plugins recién copiados según se desee.

Puede ser también necesario ajustar vía panel de WordPress y/o vía FTP (p.ej. con FileZilla) alguna ruta de alguna subcarpeta (en mi caso la de uploads de imágenes) o algún permiso. Nada serio.

Y voilá… todo parece funcionar. :-)

Importantísimo: antes de hacer experimentos todos (al menos todos los que alguna vez hemos perdido algo que no queríamos perder) sabemos que es fundamental realizar una -y mil- copias de seguridad. De archivos, imágenes, bases de datos… todo. Todo.

Jugando con formatos de fechas en MySQL.

Este post es muy simple, pero su contenido me facilita mucho la vida desde que lo programé. Se trata de un par de simples funciones para convertir los dos formatos de fecha que más utilizo en el proyecto que estoy desarrollando. Estos dos formatos son por una parte el habitual DATE de MySQL (YYYY-MM-DD) y por otra parte un formato texto VARCHAR(8) que simplemente elimina los guiones (YYYYMMDD) de la fecha. Lo de utilizar este formato en modo texto viene porque recopilo mucha información de tablas en una base de datos externa en la que las fechas están almacenadas de esta manera.

De paso tiene la ventaja de que es insensible a configuraciones regionales que tienden a cambiar mes y día a la mínima que se les da una oportunidad…

Así pues, para moverme indistintamente con los dos formatos de fecha y no tener que andar preocupándome en cada ocasión si está en uno u otro formato, tengo estas dos minifunciones almacenadas en MySQL que me sirven de ayuda.

La primera es para pasar de formato DATE a formato VARCHAR(8):

#---------------------------------------------------------------------
# STORED FUNCTION: sf_date2strng 
#---------------------------------------------------------------------
# Author:      Albert Mata (www.albertmata.net)
# Date:        20080904
# Description: Takes a date in YYYY-MM-DD format and returns it in
#              YYYYMMDD format.
#---------------------------------------------------------------------
DROP FUNCTION IF EXISTS sf_date2strng;

DELIMITER //

CREATE FUNCTION sf_date2strng(mydate DATE) RETURNS VARCHAR(8)

BEGIN
    RETURN CONCAT(MID(mydate,1,4),MID(mydate,6,2),MID(mydate,9,2));
END
//

DELIMITER ;

Y esta segunda es para pasar de formato VARCHAR(8) a formato DATE:

#---------------------------------------------------------------------
# STORED FUNCTION: sf_strng2date 
#---------------------------------------------------------------------
# Author:      Albert Mata (www.albertmata.net)
# Date:        20080904
# Description: Takes a date in YYYYMMDD format and returns it in
#              YYYY-MM-DD format.
#---------------------------------------------------------------------
DROP FUNCTION IF EXISTS sf_strng2date;

DELIMITER //

CREATE FUNCTION sf_strng2date(mydate VARCHAR(8)) RETURNS DATE

BEGIN
    RETURN STR_TO_DATE(mydate,'%Y%c%e');
END
//

DELIMITER ;

Para almacenarlas en la base de datos MySQL basta con copiar todo este código tal cual en un archivo de texto, añadirle una primera línea…

USE nameofddbb;

…y guardar el archivo con un nombre corto y en una ruta facilita (esto es opcional, pero para qué complicarse la vida), como por ejemplo C:\in.txt. Hecho esto, basta con escribir en un símbolo de sistema de Windows (antes de entrar en MySQL):

mysql -u root -p < C:\in.txt

También podemos hacerlo con un usuario no root, pero tiene que tener suficientes permisos para poder crear un procedimiento almacenado en la base de datos concreta que hayamos especificado en esa primera línea del archivo de texto.

Una vez tenemos las funciones almacenadas en MySQL comprobamos que funcionan. Primero le introducimos una fecha para que nos la convierta a texto y vemos que funciona sin problemas:

mysql> SELECT sf_date2strng('2008-09-04');
+-----------------------------+
| sf_date2strng('2008-09-04') |
+-----------------------------+
| 20080904                    |
+-----------------------------+
1 row in set (0.00 sec)

También podemos introducirle una fecha completa (con hora) y funcionará también bien. Sin embargo nos avisará de que se ha generado un warning. Si lo miramos vemos que no es nada grave, simplemente nos informa de que ha desestimado totalmente la hora, lo cual no nos importa.

mysql> SELECT sf_date2strng('2008-09-04 18:23:45');
+--------------------------------------+
| sf_date2strng('2008-09-04 18:23:45') |
+--------------------------------------+
| 20080904                             |
+--------------------------------------+
1 row in set, 1 warning (0.00 sec)

mysql> SHOW WARNINGS;
+-------+------+---------------------------------------------+
| Level | Code | Message                                     |
+-------+------+---------------------------------------------+
| Note  | 1265 | Data truncated for column 'mydate' at row 1 |
+-------+------+---------------------------------------------+
1 row in set (0.00 sec)

A continuación probamos la segunda función, introduciéndole un texto que representa una fecha para que nos la convierta a tipo DATE:

mysql> SELECT sf_strng2date('20081026');
+---------------------------+
| sf_strng2date('20081026') |
+---------------------------+
| 2008-10-26                |
+---------------------------+
1 row in set (0.00 sec)

A partir de aquí podremos utilizar estas dos funciones en cualquier consulta, vista u otro procedimiento o función almacenada que deseemos.

Estadística de visitas (200808).

Por fin terminó agosto. Sí, las vacaciones geniales, pero ese ritmo atontado de domingo eterno en el que las cosas pasan más despacio que en una película de Éric Rohmer no puede ser bueno de ninguna manera. A partir de ahora voy a comenzar de nuevo con posts con un poquito más de contenido informático en lugar de tanto off-topic. No obstante, para terminarlo bien publico como viene siendo habitual las estadísticas correspondientes al mes cerrado, que presentan :-) un notable incremento respecto a las del mes anterior. Parece que no estoy solo en este proyecto, así que gracias a todos los que pasáis por aquí.

Agosto 2008.

Número de visitas totales:       1054     (+ 76,25%)
Páginas individuales vistas:     1407     (+ 74,13%)
Promedio de tiempo en el sitio:  00:01:25 (+ 54,55%)
Porcentaje de rebote:            81,78%   (+  0,34%)
Porcentaje de visitas nuevas:    86,91%   (+  0,46%)

El día con más visitas del mes ha sido el 26 de agosto con un total de 60.

Y los tres posts que durante el mes han sido más visitados son los siguientes:

1. Informe en .NET con Crystal Reports y base de datos MySQL. (12,44%)
2. Ambrosio o cómo crear un servicio de Windows obediente en .NET. (8,24%)
3. Crear librería .dll en .NET… ¡y utilizarla! (7,53%)

Cada vez es más marcada la tendencia semanal. De lunes a viernes el número de visitas crece y es bastante uniforme, los fines de semana desciende bruscamente. En la gráfica de este mes se aprecian perfectamente las cuatro semanas enteras del mes de agosto.

Y por último paso a la sección Premio Google del Mes, este mes deslucida. Es sorprendente que de más de 800 búsquedas distintas sólo haya podido encontrar una que tenga un puntito cómico. El resto son todas acerca de contenidos de programación con términos bastante técnicos. De hecho celebro profundamente que así sea. En cualquier caso proclamo merecedor de este galardón en su tercera edición y por lo tanto…

Premio Google del Mes de Agosto del 2008

…a quien hizo la búsqueda en Google:

cuaderno parecido moleskine

En realidad esto viene enlazado justamente con el Premio Google del Mes de Julio, ya que ahí recomendé en broma este tipo de cuadernos. Espero que ahora no se produzca un alud de visitas con el término Moleskine… pero en cualquier caso son unos excelentes cuadernos, ¿para cuándo una pequeña subvención, señores de Moleskine? ;-)

Valoración personal sobre Lancelona.

Hace un par de posts comenté…

[...] he conocido de la existencia de Lancelona, ya que Asier será ponente en una de las ponencias que allí se llevarán a cabo. No tenía ni idea de qué era esto de Lancelona y no sé si al final estará bien o no, pero me ha parecido interesante comentarlo por si alguien más está interesado en acudir a algunas de las ponencias. Yo concretamente iré a las de Emprendedores Digitales, Hacking, PHP Barcelona, Licencias No Privativas y Debate Sistemas Operativos. Todas ellas gratuitas y sin necesidad de registro previo según han tenido la bondad de informarme vía email desde la propia organización, así que genial. Ya contaré mis impresiones sobre el evento cuando haya pasado (días 29 a 31 de este mismo mes de agosto).

Pues bien, este fin de semana he estado en Lancelona, así que paso a exponer mis impresiones.

El primer punto negativo fue, sin duda, la falta de indicaciones para llegar al evento. Sabía que era en el Palau Sant Jordi, así que fuimos para allá (en plural, no iba solo) el viernes a las 16 horas, momento en que comenzaban las ponencias de Emprendedores Digitales y Hacking (como iba acompañado, teníamos la intención de ir cada uno a una para después intercambiar impresiones y conocimientos). Pero nos encontramos con que el Palau Sant Jordi estaba cerrado y no había ni una sola indicación acerca de donde se celebraba Lancelona. Nos fuimos juntando un grupito de gente, alrededor de la docena, sin entender por qué no veíamos a nadie ni ningún cartelito (simples folios impresos con alguna pista hubieran sido suficientes, carteles bien preparados hubieran sido excelentes). Finalmente y tras vagar un buen rato por las inmediaciones del Sant Jordi y alguna que otra llamada al 010, descubrimos que en realidad Lancelona se celebraba en una especie de sala bis a la que se accede por una puerta trasera de servicio del Palau. Fatal, muy mal indicado, debería haber estado explicado en la página web aprovechando el propio mapa del evento.

El caso es que finalmente llegamos y conseguimos acreditarnos. La agenda prevista para la tarde del viernes era la siguiente:

16h-18h Emprendedores Digitales (Zona pública)
16h-18h Hacking (Claustro público)
18h-20h PHP Barcelona (Zona pública)

Bueno, había alguna otra ponencia, pero estas eran las que a mí me interesaban. La realidad sin embargo fue muy distinta:

16h-17h Emprendedores Digitales (Zona pública)
17h-18h Hacking (Zona pública)
20h-22h PHP Barcelona (ignoro dónde)

Es decir, las dos primeras ponencias que me interesaban las recortaron a la mitad, y aunque eso tuvo la parte buena de que pude asistir a ambas, tuvo la parte mala de que realmente supieron a muy poquito.

La ponencia sobre Emprendedores Digitales corrió a cargo de Toni Mascaró, fundador y director general de la empresa eMascaró CrossMedia. En mi opinión estuvo demasiado flojo. Se limitó a pasar un PowerPoint hablando de los rasgos que suelen caracterizar a un emprendedor o a un empresario y a mostrarnos algunas webs con algunos ejemplos de emprendedores (y algunas otras en las que su empresa ha llevado a cabo alguna acción). Demasiado poco. Faltaba ahí un trabajo un poco más concienzudo acerca de lo que ser emprendedor supone, de los beneficios y riesgos, de cosas mucho más concretas que “puedes perder a tu familia, amigos y un montón de dinero”. Faltaba profundizar en temas técnicos, económicos y legales. Faltaba explicar más a fondo situaciones reales. Y sobraba mucho PowerPoint vacío y algo de autobombo. Sin duda la intención fue buena, pero creo que en la ejecución no llegó al aprobado.

Acto seguido comenzó la ponencia de Hacking, a cargo de Pedro Laguna, experto en seguridad de Informática64. En mi opinión estuvo muy, muy bien. Mostró un gran dominio del tema, se basó en una presentación PowerPoint pero en esta ocasión no estaba vacía. Supo mantener el ritmo de la ponencia y hacerla amena e interesante. Realmente de lo mejorcito de las ponencias de Lancelona. Además, como detalle de lo cuidado de la exposición, al terminar nos pasó un formulario en donde pudimos valorar el ponente y la ponencia e incorporar nuestra dirección de e-mail si estábamos interesados en recibir el documento utilizado durante la presentación. Y debo decir que hoy mismo he recibido un correo desde el departamento de formación de Informática64 con dicho documento. Notable muy alto para ellos.

Al terminar esta ponencia debía dar comienzo la de PHP Barcelona, pero tras asistir por error durante unos minutos a otra de la que no recuerdo el título (algo de demoscenes), preguntamos a la organización y nos comentaron que habían pospuesto la de PHP Barcelona (sin previo aviso, al menos no en la página web) hasta las 20h (dos horas más tarde). Como lamentablemente no podía quedarme hasta tan tarde, me perdí esa ponencia, así que no puedo hablar de ella.

Para el domingo la agenda prevista de ponencias que me interesaban era la siguiente:

10h-11h Licencias No Privativas (Zona pública)
11h-14h Debate Sistemas Operativos (Zona pública)

Sin embargo la realidad fue:

10h-11h Licencias No Privativas (Zona pública)
11h-13h Debate Sistemas Operativos (Claustro público)

Nótese que el debate cambió de ubicación también sin aviso previo, lo que hizo que estuviéramos esperándolo en la sala equivocada durante casi media hora hasta que en ella comenzó otra ponencia que, estaba claro, no era la de sistemas operativos.

La ponencia de Licencias No Privativas estuvo a cargo de Ignasi Labastida de la UB y la verdad es que hizo una exposición muy interesante. El quórum fue escasísimo y la organización no fue capaz de facilitarle a lo largo de toda la hora un portátil con alguna versión de Office (privativa o abierta) instalada, lo que imposibilitó que nos mostrara la presentación que había preparado. Sin embargo su ponencia fue clara, amena, directa e interesante. Pudimos resolver dudas, hablar de casos concretos, poner ejemplos y en general aprender bastante sobre el tema. Notable alto también para él.

El Debate Sistemas Operativos fue, a mi entender, la clara decepción en lo que a la parte de ponencias de Lancelona se refiere. Corrió de la mano de tres ponentes (Asier Marqués para Microsoft Windows, Miguel López para Mac y Joan Martínez Serres para Linux). Es complicado poder realizar una valoración justa. El debate debería haberse realizado en un entorno más adecuado (una sala con mejor gestión del audio y proyector para mostrar presentaciones), debería haber contado con un moderador competente que fuera encauzando el ritmo evitando ciertas tonterías y debería haber partido de un guión previsto mucho más delimitado que una discusión genérica sobre sistemas operativos. Sólo así se podría haber evitado que el debate cayera en cuestiones absolutamente laterales (discusiones sobre márketing, patentes y demás) y se enfocara en temas en los que todos podríamos haber aprendido algo. Pero no. Se convirtió, como era de esperar en un debate sin gobierno, en un ataque ridiculizador a Microsoft Windows (no seré yo quien lo defienda, pero no era el objetivo del debate) y en discusiones llenas de argumentos falaces acerca de, por ejemplo, el concepto de las patentes (tampoco seré yo quien las defienda a ultranza, pero negar que en determinadas áreas fomentan la investigación y el desarrollo es partir de un conocimiento económico más bien escaso). En fin, que muy mal. Seguro que los ponentes que participaron podrían haber llevado a cabo una sesión mucho más interesante y fructífera de haber mediado una mejor organización del acto. Pero el resultado final tampoco llegó al aprobado.

En definitiva, pues, mi opinión global acerca de las ponencias de Lancelona es negativa. Quiero matizar que, como digo, me refiero únicamente a las ponencias. Lancelona es fundamentalmente una LAN Party y en ese sentido no puedo opinar porque no participé. Tal vez en esa vertiente fue un éxito, lo ignoro. Pero en las ponencias no. Las salas no eran las adecuadas para llevarlas a cabo. Los medios técnicos fallaron algunas ocasiones y fueron inexistentes otras. El quórum fue demasiado escaso en la mayoría de ellas (tal vez se podrían haber publicitado más y se podría haber establecido un sistema de registro previo para saber quién acudiría). Los horarios no se respetaron y algunos de los ponentes estuvieron demasiado flojos en sus exposiciones.

El lado positivo es, sin duda, el amplísimo margen de mejora que tienen para posteriores ediciones. Y no es un comentario irónico, en absoluto, va muy en serio. Si algo es de alabar es la iniciativa de organizar eventos y preocuparse por reunir a la gente, gestionar los medios, organizarlo todo… Pero a partir de aquí es importante buscar el máximo de calidad en lo que se hace, así que Lancelona deberá mejorar mucho en posteriores ediciones si quiere conseguir ponencias en las que los asistentes queden altamente satisfechos.

PD. Como comentario final y muy subjetivo, si participas en una ponencia deberías mostrar el máximo respeto tanto por el ponente como por el resto de asistentes. No tiene ningún sentido interrumpir constantemente, hacer comentarios supuestamente graciosos, sentirte el alma de la fiesta. Interrumpes el buen discurrir de la sesión y, salvo quizá a ti mismo, no beneficias a nadie. Al final de la ponencia puedes comentarle al ponente todo lo que te venga en gana si así lo estimas adecuado. Hacerlo antes es inadecuado.




Creative Commons License
El blog de Albert Mata by Albert Mata is licensed under a Creative Commons Reconocimiento-Compartir bajo la misma licencia 2.5 España License.