Blog jubilado de Paco Ros

Fue bonito mientras duró

Archive for marzo 2007

Castells

Posted by Paco Ros en 30 \30\+01:00 marzo \30\+01:00 2007

Fui a ver ayer la conferencia de Castells a la fundación Sa Nostra.

Sentía cierta curiosidad por si ese «parell» de doctorados y esa cátedra en Berkeley eran casualidad o si realmente era una mente inquieta.

El resultado fue una delicia de casi dos horas con un buen prólogo de Llorenç Valverde.

Comenta en general varias ideas muy interesantes, aunque me quedo con un par de pinceladas:

  • Las personas no razonan y luego tienen sentimientos. Son sus sentimientos los que les llevan a razonare intentan convencer a los demás para que tengan los mismos sentimientos. De ahí los esfuerzos para desacreditar moralmente al adversario (político, principalmente) en lugar de atacar propuestas razonadas sobre temas puramente políticos.
  • El papel de los medios de comunicación es indiscutible en el escenario anterior. Aunque sus intereses no son ideológicos, sino empresariales. Además, estos medios no son el cuarto poder, es una patraña que se han inventado, ya que, como cualquier negocio, la autoridad les puede hacer cerrar cuando quiera.
  • Comenta la importancia de internet y los blogs (y lugares colaborativos en general) y cómo, poco a poco, van invadiendo los mass media. También hace notar dos cosas itneresantes: que internet está estrechamente vigilado y que, si bien es posible matar al mensajero, no es posible destruir el mensaje sin destruir todo el medio.
  • Comenta la importancia de que internet se mueva con software libre, dado que, si no fuese así, no sería un medio de comunicación real, sino el instrumento de una empresa.

Por elegir algo, me quedo con la idea transmitida de que para transmitir honestidad y confianza es necesario un rostro humano en un mundo sentimental dominado por imágenes.

Un 10 a Castells.

Actualización: Acabo de ver que Ricardo también habla de Castells en su blog. También explica muy bien las ideas que nos expuso.

Anuncio publicitario

Posted in Internet | 1 Comment »

La pasta

Posted by Paco Ros en 15 \15\+01:00 marzo \15\+01:00 2007

Me llaman la atención los flames que se montan por el salario que perciben los informáticos. El último que he visto es este del menéame, pero hay muchos.

Una empresa ofrece 750¤ netos al mes a un diplomado / ingeniero técnico en informática para programar MySQL y PHP. La mayoría entran en cólera y se quejan de lo mal que está el sector asegurando que de paleta se gana más.

Por otra parte, estos días he emprendido de nuevo mis clases en la EPS. Hacía bastante que no iba (casi un año) y ya no me acordaba del radio patio y de las charlas de los alumnos en el bar.

Me sigue llamando la atención como los mismos que se quejan de los miserables sueldos al finalizar la carrera, se quejan porque les hacen programar C (con punteros!!!) en 5º.

Ya sabemos de qué va el tema, sabemos que no es oro todo lo que reluce, sabemos que hay maestros, profesores y (adjetivo calificativo de índole personal suprimido para no herir sensibilidades).

Un alumno puede apuntarse a una beca de 20h semanales y sacarse 450¤ al mes. Eso sin tener ni puta idea del 85% de lo que va aser su trabajo.

¿Alguien ha trabajado con un becario alguna vez? Yo sí. He tenido mucha suerte, han sido gente muy proactiva y eficiente, que aprendían rápido y se iban contentos a casa. Pero hace falta dedicarles tiempo y, cuando ya saben manejarse solos, finaliza la beca y puede que no los vuelvas a ver.

Mi primer curro fue a razón de 100.000 pts netas al mes (12 pagas). Y creo que nunca en mi vida he tenido más pasta en el bolsillo que por aquél entonces. Gracias a eso aprendí muchas cosas. Me dí cuenta de para qué servía realmente lo que explican por la UIB y a día de hoy, casi 10 años después me siento muy orgulloso de aquellas 100.000 pelas.

Lo único que hace falta para ganar un sueldo decente son ganas, ilusión y esfuerzo. La oferta es ámplia y el mundo grande. Si en tu barrio no te tratan bien, puedes ir a otro barrio, a otra ciudad, a otro país. ¡Ah! y con respecto al C, algunos no te contratarían si no sabes lo que es un puntero.

Posted in Varios | 1 Comment »

Concatenando Strings en Java

Posted by Paco Ros en 4 \04\+01:00 marzo \04\+01:00 2007

Es un truco muy conocido y lo recuerdan en esta entrada de javaHispano.

Cuando se usa el operador «+» con dos instancias de String, el compilador, lo que hace es sustituir la operación por la creación de un StringBuffer.

En el ejemplo del artículo aparecen estos dos fragmentos de código:

// Caso ineficiente (pero típico)
long start = System.currentTimeMillis();
String str = "";
for(int i = 0; i < 10000; i++)
str += i;
System.out.println((System.currentTimeMillis() - start) / 1000.0d);

// Caso eficiente
start = System.currentTimeMillis();
StringBuffer strb = new StringBuffer();
for(int i = 0; i < 10000; i++)
strb.append( i );
System.out.println((System.currentTimeMillis() - start) / 1000.0d);

En el primer fragmento de código, el compilador sustituye el contenido del bucle con un código similar al siguiente:

for (int i=0; i<10000; i++){
    StringBuffer sb = new StringBuffer(str);
    sb.append(i);
    String straux = sb.toString();
    str = sb.toString();
}

A cada iteración se debe ubicar en memoria un nuevo objeto y ese objeto tiene un tamaño cada vez mayor.
La creación dinámica de memoria es una de las operaciones más costosas en Java (y en la mayoría de lenguajes que conozco) y la creación de 10000 instancias de StringBuffer hace que el mismo código resulte mucho más lento.

Ejecutando el código comparativo en mi portátil obtengo 3.277s para ejecutar el bucle con la versión ineficiente y 0.004s en la versión eficiente.

Podéis comprobarlo personalmente copiando y pegando este codigo:

public class Test{
        public static void main(String[] args){
                long start;
                String str;
                StringBuffer strb;

                // Usando el operador "+"
                str = "";
                start = System.currentTimeMillis();
                for(int i = 0; i < 10000; i++) str += i;
                System.out.println((System.currentTimeMillis() - start) / 1000.0d);

                // Usando una instancia de StringBuffer y el método append()
                strb = new StringBuffer();
                start = System.currentTimeMillis();
                for(int i = 0; i < 10000; i++) strb.append(i);
                System.out.println((System.currentTimeMillis() - start) / 1000.0d);

                // Reroducción de lo que hace el compilador en el caso 1
                str = "";
                start = System.currentTimeMillis();
                for (int i=0; i<10000; i++){
                        StringBuffer sbaux = new StringBuffer();
                        sbaux.append(str);
                        sbaux.append(i);
                        String straux = sbaux.toString();
                        str = straux;
                }
                System.out.println((System.currentTimeMillis() - start) / 1000.0d);
        }
}

Posted in Java | 4 Comments »

Samsung incumple la GPL

Posted by Paco Ros en 1 \01\+01:00 marzo \01\+01:00 2007

Compré una impresora Samsung ML-2510 el martes. Muy bien en general. Se trata de una láser B/N y la compré en PC Box por 69¤. Además la añadí un servidor de impresión Conceptronic USB – Wi-Fi, que me permite colocarla en cualquier parte de la casa.

Me encantó que en la impresora pusiera bien clarito que funcionaba en Windows, Mac OS X y GNU/Linux (bueno, ellos lo llaman «linux»).

Ahora mismo, tengo en casa una máquina que ejecuta cada uno de estos sistemas operativos. Así que inicié el farragoso y repugnante proceso de instalar una impresora. Parece mentira que a estas alturas de la vida, todavía sea tan y tan complicado configurarla.

Fue un trauma en todos los casos y pasaba necesariamente por usar el CD que acompaña la impresora.

Es uno de esos CDs multisesión donde cada pista es reconocida por el sistema operativo del que contiene los drivers. Así, pues, no «ves» lo mismo cuando lo metes en el mac, que cuando lo arrancas en GNU/Linux.

El hecho de que los drivers para Mac o para Windows fueran privativos (ni una línea de código fuente) no me extrañó. Pero lo que sí me molestó mucho es que los drivers para GNU/Linux sí lo fueran. Y más teniendo en cuenta que empaquetan el siguiente software como parte de sus drivers:

  • libqt-mt
  • CUPS
  • SANE
  • glibc

Todos sabemos que, si bien se pueden obtener versiones de las Qt con licencias no libres, no sucede así con, por ejemplo, la glibc de la que se ofrecen drivers sólo en formato binario en el CD.

Es inexplicable. Además, examinando los scripts de instalación, se pueden observar claramente algunas chapuzas como «if» que nunca se van a cumplir o maneras complicadísimas de hacer cosas mucho más sencillas.

Hubiera sido mucísimo más fácil publicar el código de los drivers de la impresora y dejar que las distribuciones más conocidas lo empaquetaran y fuera tan facil como hacer apt-get install samsung-ml-2510.

Algunos fabricantes no lo entienden. Más que un problema de publicación de código fuente, es de igonorancia, de pasividad. Les importa un huevo la calidad del software. Sólo les importa vender. Casi habría preferido un modelo no soportado y que alguien hubiera desarrollado un driver como tantas otras veces ha pasado.

Si tiene que ser así, mejor que los fabricantes no soporten GNU/Linux.

Posted in Linux, Privativo, Software | 1 Comment »

Dell: No hay huevos

Posted by Paco Ros en 1 \01\+01:00 marzo \01\+01:00 2007

Lo malo que tiene pedir la opión de tus clientes es que, si no les haces caso, está bien claro: no tienes huevos. Y, como decía la DGT «las imprudencias se pagan. Cada vez más» Y si no que les pregunten a los de HP, a ver qué tal les va.

Posted in Hardware | 5 Comments »