'programação' Category

  • fev
    28
    2010

    Simple C macro for debugging

    A little trick if you use printf to debug information in your code and don’t like to comment/uncomment.

    #include <stdio.h>
     
    #define dprintf if (debug) printf
     
    const char debug = 1; /* or 0 if you want disable debug */
     
    int main(int argc, char *argv[] ) {
    dprintf ("debug message");
    return [...]

  • fev
    23
    2010

    Uploads de fotos no Flickr! usando API e Python

    A API (Interface de Programação de Aplicativo) do Flickr! é bem documetada e rapidamente você pode fazer bastante coisa. Se você desejar usar a linguagem Python como método de acesso, em linhas gerais você precisa.

    Criar uma chave na API do Flickr!
    Download do binding para acesso a API (flickrapi)

    Nas distribuições Linux, um dos jeitos de instalar [...]

  • fev
    13
    2010

    Twitter @hashunifei

    Sempre tive curiosidade de fazer um agregador para o Twitter, ou seja, criar um usuário que fizesse o retwitt de todos os termos que aparecem sobre determinada palavra. Para fazer um teste resolvi criar um usuário chamado @hashunifei que irá agregar o que pessoal escrever sobre a UNIFEI (Universidade Federal de Itajubá) incluindo o nome antigo [...]

  • jan
    28
    2010

    Byte Order

    In the book about Linux Kernel Programming the author Robert Love demonstrated a trick to check your hardware endianness.

    int x = 1;
    if (*(char *)&x == 1)
    /* little endian */
    else
    /* big endian */

    Using GCC you can use -mbig-endian or -mlittle-endian to generate appropriate endianess. Remember to check man pages section on your architecture (i.e: i386 and [...]

  • nov
    29
    2009

    Assembly inline

    I’ve made some code snippets about assembly inline with GCC. A quick search points to a lot of good documentation.

    IBM DeveloperWorks about Inline asssembly for x86 in Linux
    Linux Documentation Project HOWTO describing GCC Inline Assembly

    The syntax may be confusing, if you don’t understand read the documentation available. Each example are an C function with [...]

  • nov
    25
    2009

    Google Translate na linha de comando

    Isto pode ser feito de mil maneiras diferentes (e até mais simples) : usando shell script, python, php, etc. Resolvi fazer uma prova do conceito em Qt/C++ para treinar. Para executar baixe o script de instalação install-translate.sh que ira fazer o downlad dos arquivos e compilar.

  • nov
    12
    2009

    Otimização

    Dentre as diversas apresentações no Linux Kongress 2009 a palestra do Felix von Leitner’s me chamou atenção. Com título “Compiler Optimization Survey” ele discutiu os aspectos relacionados a programação nos compiladores modermos e as possibilidades de otimização (slides).  A idéia básica é que:

    Otimização é importante
    Mas frequentemente: Código legível é mais importante
    Aprenda o que seu compilador [...]

  • set
    27
    2009

    Depurando programas em assembly no GNU/Linux (parte 1)

    Embora eu particularmente prefira a sintaxe AT&T à Intel. Estou tendo que aprender a usá-la (e bem). Para os estudos optei pelo NASM, GNU ld e o GDB. Um processo simples, descrito abaixo:
    #nasm -g -f elf programa.asm
    #ld programa.o
    #gdb -q a.out
    Vamos fazer um pequeno programa teste que carrega no registro ecx o valor da variável [...]