Publi

  • Cuando Facebook hace de las suyas [ BUG CSS ]

    Durante este año y varias veces ha habido un pequeño bug CSS que hace que los que mantenemos aplicaciones para Facebook (y no es un trabajo a tiempo completo) nos tiremos de los pelos.

    Y es que al cargar nuestra aplicación, los estilos css no funcionan, no cargan, y si cargamos el archivo de Facebook del tipo:

    http://external.ak.fbcdn.net/fbml_static_get.php?src=http%3A%2F%2Fmiurl.com%2Faplicacion%2Fcss%2Ffilo.css%3F_fb_q%3D1&appid=107083291268&pv=1&sig=5ee8229e4afbee29836224de876dfa&filetype=css

    nos devolverá un precioso mensaje que dice:

    Parámetro no válido: Error desconocido

    Lo mejor es que el mensaje está traducido al español, por lo que al principio podemos sospechar que falla nuestra aplicación y luego cuando buscamos el error lo tenemos más difícil, aunque podemos buscar lo siguiente (aparece también en inglés, según nuestra localizacion):

    Invalid parameter: Unknown error

    El bug aún está abierto (a día 17 de Abril de 2010): podéis consultar el estado actualizado aquí.… Leer artículo completo

  • Aprovechando el return de la función main()

    turn

    Imaginamos que en la realización de nuestro shell-script utilizamos un pequeño programa que hemos hecho en C (por ejemplo) y, además de su salida por pantalla, debemos tener también otro valor de retorno (ya sea un código de error, un número de veces que se ha realizado una acción, etc). Es decir, nuestro int main() { return X; }.

    Para ello tenemos este programa:

    1
    2
    3
    4
    int main()
    {
      return 4;
    }

    Lo llamamos test.c y lo compilamos:

    $ gcc -o test test.c

    y justo después de ejecutar el programa, debemos leer el valor de $?Leer artículo completo

  • Control-D para terminar la entrada estándar (EOF stdin)

    A veces, con muchos comandos, por ejemplo sort, tail, cat, read, o muchos otros programas que leen datos de un fichero que luego procesan, tenemos la necesidad de utilizarlos con la entrada estándar del sistema, ya sea para hacer una prueba rápida, evitar tener que escribir un fichero o cualquier otra cosa.

    Pero podemos estar introduciendo texto para esos comandos de forma indefinida:

    $sort
    estrella
    mar
    troglodita
    alienígena
    carpa
    kiosko
    gatillo

    ¿La forma de dejar de introducir texto?… Leer artículo completo

  • Ejecutar una orden externa redirigiendo STDIN [C]

    Cuando lo hacemos desde la línea de comando, es muy fácil:

    echo -e «david\njose\nalfredo\nzacarias\npatrick\ngaspar» | sort

    Pero a la hora de querer hacer un programa que ejecute la orden sort, pasándole una serie de líneas no es tan intuitivo.

    Para ello, he construido una tubería, y para ello hacemos que el descriptor STDIN_FILENO sea input[0] es decir, el descriptor de lectura de la pipe (con dup2).
    Luego pasamos las líneas que necesitemos a la pipe a través del descriptor input[1] y lo cerramos para dar por finalizada la entrada de datos.… Leer artículo completo

  • Contar letras (caracteres) en EMACS

    letrasHay ocasiones en las que, cuando estamos escribiendo en nuestro editor de texto, necesitamos saber cuántas letras tiene un texto seleccionado.

    Podemos hacerlo a la antigua usanza (la mayoría de los editores nos dicen el número de línea y carácter donde está el cursor, pues miramos al final del texto y al comienzo y restamos. Aunque emacs tiene un comando específico que nos hará esa tarea más fácil.

    M-x count-lines-region

    Nos devolverá el número de líneas y caracteres que tiene un texto seleccionado, como carácter se cuenta también el retorno de carro.… Leer artículo completo

  • Abbrev mode para EMACS (utiliza abreviaturas)

    perritoCuando estamos programando, normalmente hay palabras o bloques de texto que tenemos que repetir varias veces. Por ejemplo:

    • Cuando creo una función, tengo un bloque grande de comentarios para Doxygen. Crear esos comentarios, cuando lo haces 20 ó 30 veces ya resulta pesado.
    • Cuando creo una clase, pasa exactamente lo mismo que antes.
    • Suelo escribir los nombres y los mails de las personas que intervienen en el proyecto, uso atajos: «Gaspar@» devolverá mi nombre y mi mail.
    Leer artículo completo
  • Documentando el código con Doxygen

    librosssTanto o más importante que tirarse horas programando una aplicación es su documentación, y debemos hacerlo aunque nosotros seamos los únicos que intervengamos en su desarrollo.
    Algo que siempre digo en mis clases de programación es que a poco que compliquemos el código si no comentamos lo que estamos haciendo, en séis meses cuando toque hacer una siguiente versión no tendremos ni idea de lo que hace; y esto conlleva pasar más tiempo para hacer las modificaciones que necesitamos, que al final se traducen en dinero.… Leer artículo completo

  • Plantillas en EMACS

    pie-grandeEs la primera entrada de mi editor de texto favorito.

    Cuando pasas gran parte del día editando archivos, es muy útil que al empezar un fichero nuevo haya algo escrito, algo que siempre toca escribir a mano, unos pocos comentarios donde dices más o menos de qué va lo que hay en el fichero y poco más.

    Casi todos los editores modernos disponen de esa característica y emacs no iba a ser menos, sólo que hay que instalar una extensión (se puede hacer sin necesidad de extensiones, pero hace falta programar un poco y lo que queremos es una solución rápida que nos permita seguir trabajando en lo realmente importante), después de probar dos o tres, me quedo con emacs-template, es fácil de instalar y de configurar.… Leer artículo completo

  • Monitoriza las aplicaciones con las que trabajas

    dtracks Lo leí hace tiempo en Genbeta pero hasta hace unos días no me decidí a probarlo (lo dejé medio olvidado en la lista de cosas por hacer), pero me ha gustado bastante.
    Sirve para saber con qué programas pasas el tiempo en el ordenador, y así podemos ver lo productivos que somos, según esto mi productividad puede mejorar.
    Es un programa pequeño pero muy útil. Se puede descargar el código fuente desde aquí, pero podéis probar a ver si vuestra distribución lo trae en sus repositorios.… Leer artículo completo

  • Extraer una copia de seguridad de Plesk

    discoduroMuchos proveedores utilizan Plesk como panel de control, y en ocasiones, es necesario extraer dichas copias de seguridad, no sólo restaurarlas automáticamente vía Plesk.

    Necesitamos el paquete munpack (la mayoría de las distribuciones lo traen en sus repositorios, si no, siempre podemos compilarlo desde el código fuente ( ftp://ftp.andrew.cmu.edu/pub/mpack/ ).

    Si el fichero de copia de seguridad es copia_plesk, hacemos lo siguiente:

    $ zcat copia_plesk copia_plesk_descomprimida
    $ cat copia_plesk_descomprimida | munpack

    En este punto tendremos muchos ficheros tar (tal vez el correo, las páginas web que tengamos, los logs y demás servicios que tengamos contratados), sólo tendremos que extraer los archivos:

    $ tar xvf [archivo_tar_a_extraer]

    Debemos procurar que los archivos generados por plesk no sean de más de 2Gb (el panel de control tiene la opción de fragmentar los archivos), ya que munpack se quejará en este caso, tendríamos que recortar el fichero descomprimido.… Leer artículo completo