Thanks to visit codestin.com
Credit goes to corecode.wordpress.com

Feeds:
Posts
Comments

Archive for February, 2012

Há alguns dias atrás eu postei sobre um plugin que vinha fazendo pro rhythmbox, inicialmente fiz ele apenas pra mim, mas agora to lançando a versão pra quem quiser usar. Lembrando que pra usar o plugin você tem que ter conta no lastfm.

Segue alguns passos para uso do plugin:

1) Após baixar o plugin copiar a pasta top10 para o seu $HOME/.local/share/rhythmbox/plugins;

2) Dentro da pasta top10 há um arquivo com  .xml cópia este arquivo como root dá seguinte forma: sudo cp usr/share/glib-2.0/schemas/;

3) Agora como root execute.: sudo glib-compile-schemas /usr/share/glib-2.0/schemas/;

4) Abra o seu rhythmbox, procure por plugins, procure por Top1o, habilite o plugin e deverá aparecer uma imagem no seu player como esta abaixo.

Se essa imagem apareceu, então tudo correu bem.

5) Em plugins no rhythmbox clique em preferências no Top10, digite o seu login do lastfm e escolha o período do qual você  quer o seu top10. Quando você fizer isso uma animação de loading vai aparecer embaixo, assim que ela sumir feche o dialogo de configuração, desabilite o plugin e habilite novamente, agora uma imagem com o seu ranking irá aparecer ao lado. Se não aparecer, se ainda persistir na mesma imagem você deve ter digitado o seu login errado.

6) Caso não queira ficar digitando o seu login/user do lastfm basta editar o arquivo .xml, procurar pelo campo lastfmuser e setar entra as tags <default> </default> o seu usuário. Lembrando que se fizer isso deverá executar o passo 3 novamente, ou o 2 e o 3 caso edite direto na pasta do top10.

Nota.: Por algum motivo do além, ou algum bug safadjenho do ubuntu como rhythm quando abro aqui o meu via launch o plugin não funciona corretamente, mas se abro via terminal ele funfa de boa. Caso alguém venha a ter o mesmo problema, ou não, ou conseguir resolver antes de mim, avisa ae blz :D?!

Link para o plugin: Top10lastfm 

Read Full Post »

Programando em C: const

Vamos entender como essas palavras “mágicas” extern, const e volatile funcionam em C (C puro, não C++).

Vamos começar com const. Como o nome já diz const define um tipo constante, mas quando usar? Para que usar? Por que usar?

Quando usar.: use const quando quiser definir uma variável constante que jamais poderá ser alterada. Usar const é similar a usar #define var 2, por exemplo.

Para que usar.: É muito comum a gente vê códigos de bibliotecas como o abaixo.


void Func(const int v1, const int v2)
{

...
}

Esse tipo de uso é comum para  documentar as funções. Quando se escreve uma função assim queremos dizer que os parâmetros passados não serão modificados por ela.

Por que usar.: Para documentar, para evitar que ponteiros mudem o endereço no meio do caminho, etc.

Agora vamos ver o uso de const com ponteiros e ver que há uma diferença sútil.


// São equivalentes.
const int *a;
int const *b;

// Já o trecho abaixo não é.
int const *a;
int *const b;

Na linha 6 do código acima a variável ‘a’ é um ponteiro para o tipo inteiro e é uma constante, ou seja, o seu valor não pode ser alterado, mas o seu ponteiro pode. Já na linha 7 temos um ponteiro constante, logo o ponteiro não pode ser alterado (não podemos alterar o endereço para o qual ele aponta), mas o valor armazenado no endereço para o qual ele aponta pode. Se você quiser que nem o valor armazenado seja alterado, nem o endereço, basta declarar como const int *const var.  Como vimos o conceito de const é bem simples, mas quando lida com ponteiros pode ser um pouco confuso. Por isso vamos revisar ;). Revisando.: int const *b (um ponteiro para uma variável constante), o ponteiro pode ser modificado; int *const b; (um ponteiro para um inteiro onde o ponteiro é constante, o valor pode ser alterado, mas o ponteiro não).

No próximo post trago detalhes sobre o uso de volatile e em seguida extern.

Referências.:

[1]http://boredzo.org/pointers/

[2]http://publications.gbdirect.co.uk/c_book/chapter8/const_and_volatile.html

Read Full Post »

Esse post é dedicado a todos aqueles que começaram agora a programar em C  e nos seus estudos se depararam com códigos como o abaixo:

union name
{
    int var1;
    float var2;
    double var3;

    struct _name
    {
    ...
    } name;
}

Muitos, senão todos, já sabem para que serve a struct, certo? Como o nome já diz, para criar uma estrutura e que “carrega” variáveis na sua API/lib/projeto, etc.

Qual seria então a diferença entre union e struct? Pelo que se pode ver do código acima, elas são muito parecidas senão iguais. A única coisa que difere o uso de um e de outro é a palavra reservada, union pra união e struct para estruturas. Ok. Mas qual a diferença Kirotawa?

A diferença está no uso da área de memoria. Enquanto estruturas usam disponibilizam uma área de armazenamento do tamanho da estrutura, o que quer dizer a soma dos tipos dentro dela. Deixa eu explicar melhor, supondo que você tenha a seguinte estrutura abaixo.

struct _person
{
    int id;
    char* name;
    float fee;
}person;

O tamanho da estrutura será a soma do total de variáveis pelos tipos, ou seja, 4bytes para int e float e 1byte para char, no final teremos 9 bytes. Já no caso de uma union o que acontece é que as variáveis são armazenadas com base no tamanho do maior tipo dentro da união, ou seja, se a estrutura acima fosse uma union o tamanho alocado na memoria seria o de 4bytes e nada mais nada menos que isso. Ai agora você me pergunta “Que tipo de magia é essa, e como acesso as variáveis”. Calma :P, não é magia, a união armazena o espaço com base no maior tipo e o acesso se dá do mesmo modo que nas estruturas, MAS, de uma variável por vez. Dessa forma você deve saber o que está sendo armazenado na sua união para que não receba como retorno um comportamento indefinido.

O que você ganha ao usar union? Você usa menos memoria, mas avalie bem se é o caso usar union, e lembre-se que você deve estar atento ao acesso e ao que tem lá dentro.
Quer um bom exemplo do uso de unions, dá uma olhada no código do SDL_Event.

Referências.:

[1] http://stackoverflow.com/questions/4788965/c-c-when-would-anyone-use-a-union-is-it-basically-a-remnant-from-the-c-only

[2] http://wiki.answers.com/Q/What_are_the_differences_between_a_union_and_a_structure_in_C

Read Full Post »

Design a site like this with WordPress.com
Get started