QUrl (mis)usage: appendix, avoid automatic cast from QString

As I was introducing in the former entry QUrl (mis)usage, the direct creation of a QUrl from a QString should be avoided in any software that is not trying to smartly guess what a user input should lead to.

So, going directly to the ham, to avoid mistakes due to automatic conversions from QString to QUrl, I encourage the usage of the QT_NO_URL_CAST_FROM_STRING macro. The only thing you have to do is adding a line to your qmake project file like this:

# Avoid automatic casts from QString to QUrl. Dangerous!!!
DEFINES += QT_NO_URL_CAST_FROM_STRING

Or add it directly to the compilation line, like this

g++ ... -DQT_NO_URL_CAST_FROM_STRING ...

As I was pointing in my previous post, the usage of QUrl::fromLocalFile(QString) and QUrl::fromEncoded(QByteArray, QUrl::StrictMode) is recommended when dealing with QString and QUrl, but committing mistakes is a human condition so it is pretty easy to end passing a QString as a parameter to some API expecting a QUrl, or assigning a QString to a QUrl with the «=» operator through the C++ automatic cast mechanism which is implemented in the QUrl class. That’s why forbidding these automatic casts in our code is of such importantance.

La voz de los jóvenes en 59 segundos

Recientemente, puesto que sigo en Finlandia y no puedo «sintocinar» Televisión Española, me he descargado y visto el último programa de la temporada de 59 segundos: La voz de los jóvenes.

Mi interés vino debido a este video, en el que se compilan las intervenciones de Alberto Garzón en dicho programa. Pero no adelantemos el contenido de esta entrada …

Todos los que me conocen saben lo mucho que me interesan los debates de todo tipo y, sobre todo, en temas de economía y política. La mayoría me define como pesimista, aunque yo me identifico más con un optimista bien informado. Como dice el lema de Zanussi; El tiempo nos da la razón.

En todo caso, y en esto trabajo para mejorar mi actitud, mi pensamiento es hipercrítico, y eso es algo que en líneas generales, no es bueno. No atrae simpatías, ni anima al cambio al no resaltar con mayor énfasis los puntos positivos. De todas formas, no voy a hacer un gran esfuerzo en esta entrada en ese sentido 😉

Como decía, he terminado de ver dicho programa dedicado a los jóvenes hace no mucho tiempo. En él, en una mesa en la que se sientan, junto a la moderadora, 6 jovenes de distintos ámbitos, se debatía (?) la actual crisis que vive España en términos económicos, políticos y sociales.

Los «actores» eran; Javier Dorado, el secretario general de «Nuevas Generaciones del PP», Sergio Gutiérrez, el secretario general de «Juventudes Socialistas», Antonio Ruano, el presidente de la asociación «Jóvenes Empresarios de Jaén», Olga Mikhaylova, en representación de «Democracia Real YA», Pau García-Milà, como ejemplo de joven emprendedor, y Alberto Garzón, economista de «ATTAC-España».

Paso ahora a valorar, uno por uno, sus intervenciones durante el programa:

  • Javier Dorado: como era de esperar en cualquier representante político del PP, mantuvo un tono demagógico y de confrontación, en lo que se puede resumir como un pequeño «mitin» fragmentado en intervenciones de 59 segundos. Su mensaje fue tan claro en culpabilizar de la crisis por entero al actual gobierno socialista como difuso en cuanto a las medidas que el PP pretende tomar para atajar los problemas; dar un mensaje de esperanza, ser solventes, dar confianza y certidumbre, y crear empleo. Palabras huecas sin ningún contenido tangible que repitió hasta la extenuación.
    Lo único que me quedó claro de sus intervenciones fue que quería flexibilizar el mercado laboral (quien sepa leer entre líneas que lo haga), que quería reformar los servicios públicos (quien sepa leer entre líneas que lo haga), que quería proponer un nuevo marco legislativo para los emprendedores (no explica minimamente su contenido que, tras excarvar un poco en la página del PP, es este), un bachillerato de 3 años (no explica muy bien para qué), un sistema «dual» de educación en el que 2/3 se realicen en una empresa por una «beca» de 450EUR (nuevamente, quien sepa leer entre líneas que lo haga) y que, cuando se debatió sobre la burbuja inmobiliaria, en vez de opinar sobre la misma se salió por la tangente y volvió a hacer un discurso demagógico sobre la importancia de la educación.
  • Sergio Gutiérrez: aunque intentó evitar la confrontación PP/PSOE, trató de contestar en todo momento las descalificaciones del representante del PP y, tal y como está haciendo Alfredo Pérez Rubalcaba, marcó distancias entre las políticas que, según él, el PSOE se estaba viendo obligado a realizar dada la situación económica, mientras que su programa real es mucho más social. Es decir, de una hipocresía y debilidad que no deja en mucho peor lugar las aportaciones (?) del PP sobre el tema.
  • Antonio Ruano: ya de primeras, me pregunto qué tipo de representación y fuerza tiene una asociacion de «Jóvenes Empresarios de Jaén».
    No me entendáis mal, pero yo soy de León que, en términos de tamaño y población, es semejante a Jaén y, francamente, no sé de dónde se pueden sacar esos «Jóvenes Empresarios» como para poder hacer una asociación.
    El tema, aquí, es tratar de entender qué significa el término «empresario», si es que se refiere a un empresario clásico o a un emprendedor, tal y como esta entrada en el blog de Ignacio Escolar acertadamente diferencia. En todo caso, sus intervenciones se resumen en la petición de facilitar los trámites a las empresas, ayudar a los autónomos y flexibilizar el mercado laboral (quien sepa leer entre líneas, que lo haga), además de enfatizar en los empresarios (?) como los creadores de puestos de trabajo y riqueza.
    Nuevamente, el discurso es difuso. Por un lado admite que el 80% del tejido empresarial español son autónomos y PyMEs mientras, que, por otro, ensalza al empresario como máximo actor de creación de puestos de trabajo, cuando queda claro que, tras lo anteriormente dicho, es muy poco el margen que le queda.
  • Olga Mikhaylova: es el paradigma del movimiento «Democracia Real YA». Las ideas de fondo son potentes, pero no están bien articuladas, organizadas ni expuestas. Sus intervenciones fueron desordenadas, identificando bien los grandes problemas, sí, pero sin exponer una línea clara más allá de las 8 propuestas que figuran en su web.
    La verdad es que, sinceramente, el éxito del 15M creo que pasa necesariamente por la creación de una estructura organizativa y de acción mucho más clara y efectiva.
  • Pau García-Milà: ejemplo de joven emprendedor.
    Para empezar, quiero recordar que yo también soy joven (cada vez menos) y emprendedor, socio de una pequeña empresa, Igalia, que tiene la gran peculiaridad de tener una estructura plana. Además, al igual que Pau, mi empresa también se dedica al desarrollo de software libre. Es por esto que me sentí realmente triste y, de todo, menos identificado con sus intervenciones.
    En un tono de chascarrillo generalizado con anécdotas del día a día que no venían a cuento, su discurso viene a resumirse en que los problemas son sólo una consecuencia de la actitud con la que uno los afronta. Todo tiene solución si uno los afronta con optimismo, alegría y mucho esfuerzo. La verdad es que me cuesta pensar en una idea más pueril de la situación actual. Vino a ningunear los grandes problemas económicos y sociales, como la discriminación hacia la mujer, sin darse cuenta de que sólo una «joven» se sentaba a la mesa entre cinco hombres (sin contar la moderadora). La verdad, bastante lamentable, aunque tengo que reconocerle su habilidad para utilizar su forma pueril y jocosa de hablar en su favor, de tal forma que, si no profundizas en las sandeces que está diciendo, hasta te puede acabar cayendo bien, por graciosete.
  • Alberto Garzón: sin ninguna duda, el más claro, organizado, directo, y con mayor respaldo de datos de todos los que estaban en la mesa. Queda claro con quién simpatizó más a estas alturas, verdad 🙂 .
    Sus intervenciones se centraron en la necesidad de reformar la sociedad y el modelo económico actual, puesto que no sirven, de raíz.
    Enfatizo en la banca privada como principal culpable de la crisis y diferenció a las grandes empresas y sus intereses como impedimento para el desarrollo de PyMEs y autónomos. Finalmente, criticó a la clase política y sus partidos como títeres y aliados de la banca privada y grandes empresas. Para mí, verdades como puños, asistidas por los datos estadísticos que aportó en cada intervención. Sus propuestas pasaban por:
    • La creación necesaria de una Banca Pública para la financión de PyMEs y autónomos y evitar presiones en el sector de la política.
    • La ejecución de medidas para la liberación de viviendas en poder de especuladores, como el gravamen de impuestos sobre segundas, terceras, cuartas viviendas, etc
    • La reforma de la democracia, en su más amplio término, puesto que los partidos políticos no son democráticos y los políticos en sí no legislan según les dicta el pueblo si no las empresas del IBEX y la banca privada.

Me quedo con dos cosas. Primero, este programa ha sido el primer foro de los medios de comunicación para masas en el que se ha mencionado dos cosas con las que que yo llevaba ya años machacando a los pobres que me soportan; la desgracia que es que el sistema educativo español, y en concreto las universidades, sean fábricas de funcionarios, aspiración máxima de cualquier españolito recién titulado, y la posibilidad del gravamen de las viviendas que no son de primera residencia como medida combativa contra la especulación inmobiliaria. Segundo, Alberto me ha metido curiosidad por conocer la asociación ATTAC España, de la que espero saber mucho más en cuanto tenga algo de tiempo (si es que dejo de escribir estúpidas entradas en este blog 😉 ).

blog.andresgomez.org

I’ve just migrated my blog to a new domain, blog.andresgomez.org, and this is the first post I write on it.

I hope to extend it now more often and with more «unpolite thinking» entries 🙂 .


Acabo de migrar mi blog a un nuevo dominio, blog.andresgomez.org, y esta es la primera entrada que escribo en él.

Espero aumentar el número de entradas más a menudo y con un mayor número de «unpolite thinking» 🙂 .

QUrl (mis)usage

Lately, I’ve been developing some software which makes an intensive usage of QUrls as resource locators for local files. Nothing wrong here. QUrl is a powerful way of sharing the locations of those in an universal way. The problem is when you construct those QUrls from QStrings and you actually forget that QUrls are meant for much more than representing local file locations.

Authority chunks on an URL

Authority chunks on an URL

At the moment of writing this, QUrl documentation, although quite complete, could be much more explanatory. For example, it says that the recommended way for creating a QUrl from a QString is:


* When creating an URL QString from a QByteArray or a char*,
always use QString::fromUtf8().
* Favor the use of QUrl::fromEncoded() and QUrl::toEncoded()
instead of QUrl(string) and QUrl::toString() when converting
QUrl to/from string.

But this is explained in the documentation for QUrl::fromUserInput(), instead of in the Detailed Description [ 1 ].

What is important from this explanation is that it is not a matter of favor the use of QUrl::from/toEncoded() over QUrl::(from)toString() but, I would say, a must if you don’t want to end up with bogus corner cases.

Why would this happen? Well, as I was saying, QUrl is meant for much more than universally representing the location of a file so, here go the big tips:

  1. If you want to get the QUrl from a local file represented with a QString, use always QUrl::fromLocalFile ( const QString & localFile ) . Don’t use QUrl::QUrl ( const QString & url ) if you don’t want to end up with some problems. In the same way, get the path to the local file always with QUrl::toLocalFile().
  2. If you want to get a QUrl from a QString representing an URL, be sure that the QString is actually representing a percent encoded URL, as it should to be a valid URL, and always use QUrl::fromEncoded ( const QByteArray & input, ParsingMode parsingMode ), with QUrl::StrictMode as the QUrl::ParsingMode.
  3. If you want to get a QString representation of an URL from a QUrl use always QUrl::toEncoded ().

Bogus examples for each case:

Local file

/mypath/my#file.jpg

Correct:

QUrl myUrl = QUrl::fromLocalFile("/mypath/my#file.jpg")

Incorrect:

QUrl myUrl = QUrl("file:///mypath/my#file.jpg")

The problem here is the way QUrl will treat the «#» character in the second example. It will think, as it actually doesn’t have a way of guessing, that the character is delimiting the fragment part of the URL.

Fragment part on an URL

Fragment part on an URL

As a result, calling to:

myUrl.toLocalFile()

in the first case will result to:

/mypath/my#file.jpg

while in the second will be:

/mypath/my

Parsing mode

/mypath/my#file.jpg

(encoded) url representation:

file:///mypath/my%23file.jpg

Correct:

QUrl myUrl = QUrl::fromEncoded("file:///mypath/my%23file.jpg", QUrl::StrictMode)

Incorrect:

QUrl myUrl = QUrl::fromEncoded("file:///mypath/my%23file.jpg")

The problem here is the way QUrl will treat the «%23» encoding in the second example. Although it is not explicitly explained in the documentation [ 2 ], QUrl will use QUrl::TolerantMode as ParsingMode by default. Therefore, it will think that the input comes from an ignorant user which was actually trying to pass «file:///mypath/my#file.jpg». Again, it will understand after converting back «%23» to «#», that the character is delimiting the fragment part of the URL.

As a result, calling to:

myUrl.toLocalFile()

in the first case will result to:

/mypath/my#file.jpg

while in the second will be:

/mypath/my

Encoded usage

/mypath/my#file.jpg

(encoded) url representation:

file:///mypath/my%23file.jpg

(unencoded and wrong) url representation:

file:///mypath/my#file.jpg

Correct:

QUrl myUrl = QUrl::fromEncoded("file:///mypath/my%23file.jpg", QUrl::StrictMode)

Incorrect:

QUrl myUrl = QUrl("file:///mypath/my#file.jpg")

Here, we have another incarnation of the very same problem than the two examples above. QUrl will think, again, as it actually doesn’t have a way of guessing, that the character is delimiting the fragment part of the URL.

As a result, calling to:

myUrl.toLocalFile()

in the first case will result to:

/mypath/my#file.jpg

while in the second will be:

/mypath/my

Corollary:

The default behavior of QUrl is to provide an easy handling of URLs to the user of our programs, the end user, but not the user of QUrl, the developers. I find this quite awkward but, still, it is a decision of Qt people and, as developers, we only have to take this into account when writing our code.

These bogus URLs, which are to be corrected with the usage of the QUrl::TolerantMode ParsingMode, usually come from a text entry box «à là» browser location bar, but this use case is, actually, not so common when talking from the developer’s point of view. When dealing with URLs in our code we have to take into account what an URL is and how it should be formatted/encoded to be valid. Therefore, if I’m receiving a wrongly encoded URL I should go to the source code providing this URL and fix the problem there rather than trying to smartly guess which should be the proper URL. For example, in my software currently in development we use Tracker and I rely on it to feed my code with properly formatted URLs. If for some reason Tracker gives me a wrongly encoded one, the place for solving it is, actually, Tracker, and not my software. I should not and must not interpret what Tracker may have wanted to pass me, but open a bug in its bugzilla and provide as accurate information as I can to help them solve this issue.

Just so my friend Iván Frade doesn’t kill me, make notice that Tracker is, so far, perfectly dealing with URLs 🙂

Netiquette en tu mail

¡¡ADVERTENCIA!!!

Si no tienes el suficiente sentido del humor y la predisposición a aprender alguna cosilla sobre el uso del correo electrónico, entonces mejor haz click aquí.

¿A qué viene este post?

Pues viene a que ha pasado algo que yo pensaba que era prácticamente imposible. Alguien ha llenado el buzón de correo de GMail. 7.5GB (2 DVDs completos) de presentaciones, fotos y videos.

El caso es que le ha pasado a mi padre y, como consecuencia:

  • No le han llegado correos, porque el buzón estaba lleno.
  • Me he tirado, digamos que un par de horitas, borrando correos de su cuenta. Muy divertido, vamos …

Aún así, esto no es una crítica contra mi padre. De hecho, es un crack. Es la primera persona que conozco que haya saturado su cuenta de GMail. Además, me da en la nariz que ha coincidido en el tiempo con la misteriosa pérdida masiva de correos de Google. Qué puede haber más guay que un papi poniendo en entredicho a la todopoderosa Google? Y eso con una dedicación y esfuerzo encomiable de envío de correos con presentaciones durante años. Vamos, lo que se merece es un monumento 😀

Ahora que ya he salvado mi parte de la miserable herencia que me quedará tras tanto viaje del Imserso, voy a intentar, por enésima vez, inculcaros unos cuantos buenos hábitos para hacer(me) la vida más agradable 😉

  1. ME HAN ENVIADO UNA PRESENTACIÓN SUPERCHULA Y QUIERO REENVIARLA. CÓMO LO HAGO?

    Nunca, nunca, nunca, nunca, nunca reenvíes archivos pesados (presentaciones, videos, imágenes, música/audio, documentos) por correo electrónico, si no es totalmente necesario.

    Empecemos con las presentaciones.

    Las presentaciones normalmente se envían en formato PowerPoint (archivos acabados en la extensión .pps o .ppt). El formato de PowerPoint es propietario así que, ya de principio, deberías evitarlo porque no todo el mundo tiene el dichoso Microsoft Office para poder verlo adecuadamente.

    Por orden, esto es lo que debes hacer:

    1. Busca la presentación en SlideShare u otro servicio similar de compartición de presentaciones.

      En esta página hay chorrocientas presentaciones de todas las maravillas del mundo y exaltación de la amistad.

      Sí, quienes suben las presentaciones son unos borrachos, como tú, que les mola cantidubi decir lo mucho que quieren a sus amigos.

      Es fácil que la que te han pasado esté allí. Simplemente busca por el título de la que te enviaron a ti y, voilá! en el 99.9% de las ocasiones, la presentación ya estará allí, con lo que lo único que tienes que hacer es reenviar el enlace a esta presentación dentro de SlideShare

    2. La presentación no está en SlideShare.

      Súbela allí o a Google Docs y compártela mediante un enlace público.

    3. Pero es que no tengo cuenta en Google.

      Mira que eres pesadín … imprime la presentación en un PDF, que ocupará bastante menos, es un formato estándar y envíala adjunta.

      Yo no te agradeceré que lo hagas. Prefiero que no me la envíes.

  2. ME HAN ENVIADO EL VIDEO MÁS GRACIOSO DEL MUNDO Y QUIERO REENVIARLO. CÓMO LO HAGO?

    1. Busca el video del niño cayéndose del columpio que te han enviado en YouTube u otro servicio similar de compartición de videos.

      Simplemente, pon el título del video y, voilá! en el 99.9% de las ocasiones, el video ya estará allí, con lo que lo único que tienes que hacer es reenviar el enlace a este video dentro de YouTube.

    2. El video no está en YouTube.

      Pues súbelo y compártelo mediante un enlace público.

    3. Pero es que no tengo cuenta en YouTube (Google).

      Mira que eres pesadín … comprímelo en un fichero ZIP (extensión .zip). No ganarás mucho, pero algo sí.

      Yo no te agradeceré que lo hagas. Prefiero que no me lo envíes.

  3. ME HAN ENVIADO (UN AUDIO) UNA CANCIÓN FANTÁSTICA O UN CORTE DE LA RADIO O CHISTE Y QUIERO REENVIARLO. CÓMO LO HAGO?

    1. Busca el video de la canción o chiste o lo que sea que te hayan enviado en YouTube u otro servicio similar de compartición de videos.

      Simplemente, pon el título del audio y, voilá! en el 80% de las ocasiones, el audio ya estará allí, en un video, con lo que lo único que tienes que hacer es reenviar el enlace a este video dentro de YouTube.

    2. El audio no está en un video de YouTube.

      Si es música, búscalo en GoEar o en Spotify, por ejemplo. Lo único que tienes que hacer es reenviar el enlace a este audio.

      Si no es música, búscalo en su fuente original. Un corte de la radio, en la página de la emisora, por ejemplo. Lo único que tienes que hacer es reenviar el enlace a este audio.

    3. Sigo sin encontrarlo.

      Mira que eres pesadín … comprimelo en un fichero ZIP (extensión .zip). No ganarás mucho, pero algo sí.

      Yo no te agradeceré que lo hagas. Prefiero que no me lo envíes.

  4. TENGO UNAS FOTOS QUE QUIERO COMPARTIR. CÓMO LO HAGO?

    1. Sube las fotos a Flickr, Picasa, Facebook, DropBox o cualquier otro servicio de compartición de imágenes y/o archivos en general que existen.

    2. Pero es que no tengo cuenta ni en Flickr (Yahoo!), ni en Picasa (Google), ni en Facebook ni en Dropbox, ni en ningún otro servicio.

      1. Reduce el tamaño de la imagen.

        Utiliza un programa de retoque fotográfico para hacer la imagen más pequeña, ya que no necesito que sea una sábana para ver a tu hijo con su disfraz de carnaval.

        Otras opciones son que cambies el formato a uno que sea más ligero mediante el uso de paletas indexadas de colores o incremento en la intensidad de la compresión con pérdida.

      2. Lo cualo????????

        Mira que eres pesadín … comprimelo en un fichero ZIP (extensión .zip). No ganarás mucho, pero algo sí.

  5. QUIERO ENVIARTE UN DOCUMENTO. NORMALMENTE, ADEMÁS, TIENES UNAS CUANTAS IMÁGENES. CÓMO LO HAGO?

    Ya te veo venir. Seguro que el documento en cuestión es de formato Microsoft Word (extensión .doc). El formato de Word es propietario así que, ya de principio, deberías evitarlo porque no todo el mundo tiene el dichoso Microsoft Office para poder verlo adecuadamente.

    1. El documento es importante y no quiero que cambie el formato.

      1. Deberías obligar a usar un formato estándar en vez de fastidiar al personal con los puñeteros formatos de Microsoft. Usa OpenOffice.org o LibreOffice.org y guarda el documento en formato OpenDocument (extensión .odt). Como es un estándar abierto, cualquier podrá verlo y, además, estos documentos vienen comprimidos por defecto, con lo que pesan considerablemente menos que los de Microsoft.

      2. Que te mola mogollón Microsoft Word?

        Mira que eres pesadín … si sólo necesitas que lo lea, y no que lo modifique, imprime el documento en un PDF, que ocupará bastante menos, es un formato estándar y envíalo adjunto.

        Si necesitas que lo modifique, comprimelo en un fichero ZIP (extensión .zip) y envíalo adjunto.

    2. El documento no es importante y me importa su formato un comino.

      Súbelo a Google Docs y compártelo mediante un enlace público.

    A parte de estas cuestiones, deberías de sopesar:

    1. Es realmente necesario que sea un documento de texto? No puedo escribir su contenido sin más en el correo sin tener que adjuntar el documento?

    2. He metido imágenes a tutiplén y no me he parado a pensar si eran grandes o pequeñas. Véase la sección «3. TENGO UNAS FOTOS QUE QUIERO COMPARTIR. CÓMO LO HAGO?«, apartado 2.1.

  6. UN COLEGA ME HA ENVIADO UN CORREO EN EL QUE SE DICE QUE HAY UN VIRUS POR AHÍ SUELTO QUE ES EL ANSIA VIVA Y TE COME POR DENTRO.

    ADEMÁS, AL PRIMO DEL COLEGA LE HA ENVIADO OTRO CORREO EN CADENA SOBRE UN EMPLEADO DE BANCA AL QUE LE HA  DESAPARECIDO SU HIJA DE 13 AÑOS.

    AÑADE QUE AL CONCUÑADO DEL SUSODICHO PRIMO DE MI  COLEGA LE HA LLEGADO UN CORREO SOBRE UNA PAREJA DE ARKANSAS, MOREJÓN, ESTADOS UNIDOS DE LA PATAGONIA, QUE TIENE UN NIÑO SIN PIES NI MANOS QUE NECESITA UN TRIPLE BYPASS EN EL OÍDO Y NECESITA QUE REENVÍE SU CORREO PARA QUE GOOGLE LE DÉ PASTA PARA LA OPERACIÓN.

    FINALMENTE, A LA NOVIA DE MI PRIMO, EL DE ALICANTE, LE HA LLEGADO OTRO CORREO DE UN MILLONARIO NIGERIANO QUE QUIERE COMPARTIR PASTA CON ELLA. ESTOY EN UN MAR DE DUDAS. QUÉ HAGO, POR DIOS, QUÉ HAGO?!!!

    1. Usa tu sentido común.

      Indudablemente, tu sentido común te dice que borres directamente el correo y te vayas a comer un bocata de chorizo.

    2. El sentido común es el menos común de los sentidos.

      OK, pero antes de reenviar el correo, haces una búsqueda ultrarrápida en Google con palabras clave del correo que te ha llegado y, opcionalmente, las palabras «bulo» y/o «cadena». En el 99.9% de los casos, en uno de las primeros resultados, alguien con más sentido común que tú te explicará que el correo en cuestión es una memez, y las baterías de los móviles no explotan porque sí.

    3. Vaya!, pues parece que Google no sabe si lo del rico nigeriano es cierto o no.

      Enga, vuelve a hacer un pequeño esfuerzo. Repite de nuevo la búsqueda con esa palabra clave que no pusiste en la casilla de búsqueda de Google la primera vez: «nigeriano».

    4. Que no, que te juro que Google no tiene ni zorra sobre el rico nigeriano.

      Vaaaamos, que ya casi está! Si no es que yo no te crea! Pero tú, mete la palabra «bulo» en la casilla de búsqueda.

    5. De verdad que no miento, Google se ha quedado mudo y no sabe nada de dinero y Nigeria.

      Mira que eres pesadín … reenvíalo pero, al menos, no metas a toda tu lista de contactos en el «Para:» o en el «CC:«. Mételos en el «BCC/CCO:» y pon tu propia dirección en el «Para:«.

      Yo no te agradeceré que lo hagas. Prefiero que no me lo envíes.

  7. HE SACADO UNAS OPOSICIONES AL CUERPO DE SEXADORES DE POLLOS Y QUIERO DECIRLE A TODO EL MUNDO LO SUPERCONTENTO QUE ESTOY. COMO LO HAGO?

    1. Estás seguro de que quieres que el resto del mundo mundial sepa que te vas a dedicar a sexar pollos el resto de tu vida?

      No.

    2. Sí que quiero. Soy asín de guay y desinhibido.

      1. Si vas a escribir un rollo macabeo como el presente, haz como yo y escribe una entrada en un blog, como WordPress o Blogger (Google).

      2. Si es una cosa cortita, o ultracortita, escríbela en tu red social favorita, como Twitter, FaceBook o Tuenti, donde están el resto de los pobres a los que quieres dar la turra.

    3. Pero es que soy un triste que no tiene ni blog ni cuenta en otra red social.

      Vaaaaale, dejamos que envíes un correo. Pero, por dios!!!!! a no ser que sea imprescindible, al menos, no metas a toda tu lista de contactos en el «Para:» o en el «CC:«. Mételos en el «BCC/CCO:» y pon tu propia dirección en el «Para:«.

      Esto también es preferible a que envíes un correo por cada contacto. Más que nada porque te vas a cansar y porque, como lleve una de esas presentaciones tan maravillosas que sigues enviando ya que no me has hecho caso en la sección «1. ME HAN ENVIADO UNA PRESENTACIÓN SUPERCHULA Y QUIERO REENVIARLA. CÓMO LO HAGO?«, te va a llevar un buen rato hacer pasar tanto mega por tu mierda de conexión a Internet, ya que estamos en España y Timofónica & Co. «no tienen» la tecnología que tiene el resto del continente.

      Para más INRI, por cada correo que envíes, se te va a crear una copia del mismo en la bandeja de «Enviados» con lo que prepárate para tener tu buzón de correo o disco duro lleno en menos que canta un gallo.

  8. ESTOY SIGUIENDO TU CONSEJO Y VOY A ENVIAR UN ENLACE, DIGAMOS DE GOOGLE MAPS, PERO EL TEXTO ES MÁS LARGO QUE UN DÍA SIN PAN Y, ADEMÁS, PARECE QUE ME ESTÁ MENTANDO A MI MADRE EN ARAMEO. COMO PUEDO HACER PARA NO METER TANTA BASURA?

    Joé, se me van a saltar las lágrimas. De verdad que me estás haciendo caso? Qué orgulloso me siento, esto es mejor que cuando descubrí los Fresquitos.

    No hay problema, chaval. Símplemente haz uso de uno de los múltiples servicios de simplificación y acortación de URLs que existen, como, por ejemplo, MiniURL.

  9. TENGO UN VIDEO DE CÓMO A QUIQUE DANCE SE LE CAE LA BLACKBERRY POR EL «EXCUSADO» CUANDO LA ESTABA USANDO EN EL MISMO

    ADEMÁS, TAMBIÉN HE CONSEGUIDO OTRO VIDEO DE COMO EL YATE Y EL JET PRIVADO DE MATRIN VRASAS-KY SE ESTAZAN EL UNO CONTRA EL OTRO AL BUSCAR COBERTURA EN UNA FRONERA CERCANA. QUÉ HAGO??

    Por dios!!! Envíame todo el material cuanto antes, adjunto y a máxima calidad. Las cosas importantes como esta sí merecen ser enviadas por correo electrónico. No lo dudes!!!

  10. POR QUÉ DEBERÍA DE HACER CASO A TODAS ESTAS RECOMENDACIONES Y NO REENVIAR SIN MÁS?

    Porque, aunque tú te ahorres el tiempo de llevar a cabo estos pasos, otros tendrán que perder ese tiempo, ya sea esperando a que se descargue tu video de tropecientos megas o borrando luego los correos que les envías, para no tener su correo saturado.

    Además, si todos hacemos lo mismo, tú tampoco tendrás que perder el tiempo esperando a que se descargue ese correo con el video de 20MB, porque los demás también habrán aprendido a enviarte un enlace.

    Finalmente, te asegurarás de que amigos con peores pulgas que yo, no se pasen por tu casa y te arranquen la cabeza.

    … Y ya sabemos que la salud es lo más importante … 🙂

    Ale, ahora llamadme pesao y pasad de mi. Yo seguiré borrando vuestros correos 😛

Honored to share with you: 4 new partners at Igalia

Lately I’ve not been blogging that often. My daily work has lead me to be more involved in the coordination of development teams rather than in the development itself. Therefore, it becomes more difficult to talk about this or that GNOME related technology.

Even, early this week, I’ve been attending a Scrum Mastering course. Not that I’m a crazy fan of Scrum. As other Agile methodologies, it has pros and cons so, better you get what it works for you and forget about the rest. But that would be the subject for another post …

This post is about an event that happened at Igalia some days ago which maybe you already are aware of.

Four Igalians have joint the group of shareholders of the company and this is not something that happens every day.

Being already an owner myself, I’m really happy and honored of these 4 fellows having accepted the offer to get a part of my company:

    Alejandro Piñeiro, or API, as he is broader known, has been involved in GNOME related technologies for quite a lot. However, you may know him for his Accessibility work, mainly with Hildon, Clutter and Gnome Shell.
    Javier Muñoz is one of the Igalians in the shadow since, as an experienced sysadmin and team coordinator, has less opportunities to have some focus and receive congratulations. Not surprisingly, Igalia is able to run every day because of his restless effort 🙂

Personally, I think it is something logical to extend the sharing philosophy of the Free Software to the management and decisions taking processes of the company. Our greatest good is our staff and what they have been working for is exactly the same values for what the founders created Igalia 9 years ago, having into account our self imposed professional, internal and social responsibilities.

All, in all, I’m very happy today 🙂

Congrats, guys, I’m really honored of sharing with you!!!

Grub2 splash theme for Igalia

Igalia Grub2 splash

Following with the idea of creating a full theme for Igalia covering the whole artwork that is shown in a Gnome desktop. I’ve created a Debian package and a sample picture to place in the Grub2 splash, at the computer startup. I’ve uploaded it to a public Git repository which you can download with the following command:

$ git clone http://git.igalia.com/art/grub2-igalia-splashimages.git

You can create and install the Debian package with:

$ cd grub2-igalia-splashimages
$ dpkg-buildpackage -rfakeroot
...
$ dpkg -i ../grub2-igalia-splashimages*deb

In order to use any of the images in the package to show as Grub2 splash, you just have change a line like:

$ cat /etc/grub.d/05_debian_theme 
...
  for i in {/boot/grub,/usr/share/images/desktop-base}/moreblue-orbit-grub.{png,tga} ; do
...
  set color_normal=black/black
  set color_highlight=magenta/black
...

to

$ cat /etc/grub.d/05_debian_theme 
...
  for i in {/boot/grub,/usr/share/images/desktop-base,/usr/share/images/grub}/igalia_black.{png,tga} ; do
/some_file.tga
... 
  set color_normal=light-gray/black
  set color_highlight=white/black
... 

and run:

$  update-grub2

Grub splash theme for Igalia

Igalia Grub splash

Lately, some people at Igalia have been thinking about creating a full theme for the company covering the whole artwork that is shown in a Gnome desktop. With this in mind, I’ve been playing for a while in order to create some sample pictures to place in the Grub splash, at the computer startup. I’ve create my first serie of 3 images and I’ve uploaded them, and the material needed to create them, in a public Git repository which you can download with the following command:

$ git clone http://git.igalia.com/art/grub-theme-igalia.git

I’ve not created a Debian package to comfortable install them yet but, in the meanwhile, I suggest to make use of the «mini» version, which thumbnail you can see at the top of this post. Just compress the file with gzip (not really needed) and place it in the  your favorite directory for Grub splash images. For example:

$ gzip -c igalia-grub-splash-mini.xpm > /boot/grub/igalia-grub-splash-mini.xpm.gz

Then, you just have to select such splash image in the «menu.lst» grub file. Also, I recommend to modify the preferred background and foreground colors for the booting menu:

$ cat /boot/grub/menu.lst
...
splashimage=(hd0,0)/grub/igalia-grub-splash-mini.xpm.gz

foreground=8cb6d2
background=14418b

Ubuntu Usplash theme for Igalia revamped (a.k.a. Jaunty’s edition)

Jaunty Usplash 300x225

Following my post about the creation of an Usplash theme for Igalia, I’ve just revamped the package and artwork to the latest stable version of Ubuntu. Therefore, as always, helped by Juan, here you are the i386 package for Ubuntu Jaunty, or the source code from our brand new public Git repository, if you want to play with it, through the following command:

$ git clone http://git.igalia.com/art/usplash-theme-igalia.git

Abierto el plazo de solicitud de prácticas de verano en Igalia

Primero el anuncio oficial:


Igalia, empresa española de Software Libre, ofrece por octavo año consecutivo la posibilidad de realizar prácticas en la empresa durante este verano, en sus instalaciones de A Coruña o Pontevedra, a Ingenieros en Informática o Ingenieros Técnicos en Informática con más del 50% de los créditos superados.

¿Por qué lo hacemos?

  • La mayoría de nosotros hicimos prácticas en empresa cando eramos estudiantes.
  • Es una buena forma de devolverle algo a la Universidad de la que venimos.
  • También es una buena manera de contratar gente. Casi el 50% de las personas que hicieron prácticas con nosotros en el pasado forman parte de la empresa en la actualidad.

¿Cómo son?

  • Un total de 350 horas con una planificación flexible de 5 a 8 horas diarias durante los meses de julio, agosto y septiembre.
  • 325 horas trabajando en un proyecto de Software Libre y 25 horas para redactar la memoria.
  • Ayuda de 1200 €.

Si estás interesado en optar a las prácticas, el período de recepción de solicitudes abarca desde el 11 hasta el 22 de mayo.

Por favor, envíanos tu carta de presentación, CV y copia del expediente académico a rrhh[arroba]igalia[punto]com, indicando «[internship] Apellido, Nombre» en el asunto.

Más información: http://www.igalia.com/igalia/workwithus/internship/


Y ahora, algunos comentarios ;).

Como dice en las razones para hacer las prácticas, creemos que es una buena manera de devolverle algo a la universidad de la que venimos. La mayoría de mis compañeros, como es natural, provienen de las universidades gallegas y, como las sedes están en A Coruña y Pontevedra, es normal que la mayoría de las solicitudes vengan de estas universidades, pero nuestras prácticas no están limitadas a las mismas, y tanto es asi que hemos tenido a gente incluso de universidades portuguesas como la de Évora. Es por esto que estaría encantado si este año pudiéramos seleccionar a gente de mi universiad de origen, UniLeón, o de otras universidades cercancas, como UniOvi de donde provienen un montón de amigos de AsturLiNUX, con los que recientemente estuve compartiendo su décimo aniversario.

Por otro lado, he estado revisando los premios que este año se han otorgado en el Concurso Universitario de Software Libre y me han llamado especialmente la atención los proyectos Tucan, LongoMatch y AVBOT. Se ve que, aunque escaso, visto el debate que mantuvimos durante el aniversario de AsturLiNUX, hay cierto movimiento en la Universidad con respecto al Software Libre.

Así que ya sabes, si estás interesado en el desarrollo con Software Libre y te gustaría realizar prácticas de empresa, quizá Igalia es tu empresa para este verano 😀