Skype no Fedora 16 64bits

Se você instalou o fedora 64 bits feliz da vida, ficou encantado com o gnome shell, como eu fiquei, e pensava que o skype seria molezinha. PEEEEMMMM, resposta errada.

A instalação do skype é tranquila, não precisei instalar dependência alguma, mas instalar é uma coisa, executar é outra completamente diferente…

Mas eu consegui executar com sucesso, vejamos o que eu fiz:

Se você não quiser ler o passo-a-passo vá para o final da página.

Primeiro precisa obter o erro.

Se você executar no terminal terá uma evidência do por que o skype não funciona.

assim:

$skype
bash: /usr/bin/skype: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

Que feio! isso significa que o skype procurou a biblioteca de execução e não encontrou! Façamos ele encontrar, como root:

#yum install glibc.i686

Então:

$skype
skype: error while loading shared libraries: libasound.so.2: cannot open shared object file: No such file or directory

WTF! outra dependecia quebrada! Perceba que isso vai ficando chato!

Mas o yum é fera, assim vamos catar quem prove esse danado do libasound.so.2:

#yum whatprovides libasound.so.2
alsa-lib-1.0.24-2.fc15.i686 : The Advanced Linux Sound Architecture (ALSA) library
Repo        : fedora
Matched from:
Other       : libasound.so.2

Lindo! o alsa-lib 32 bits! Mas… será que são somente essas bibliotecas quebradas? quantas vezes vou ter que executar linha por linha? Evoquemos o ldd!

$ldd  ` which skype`
    linux-gate.so.1 =>  (0x001da000)
    libasound.so.2 => not found
    libXv.so.1 => not found
    libXss.so.1 => not found
    librt.so.1 => /lib/librt.so.1 (0x00d1f000)
    libQtDBus.so.4 => not found
    libQtGui.so.4 => not found
    libQtNetwork.so.4 => not found
    libQtCore.so.4 => not found
    libpthread.so.0 => /lib/libpthread.so.0 (0x00984000)
    libstdc++.so.6 => not found
    libm.so.6 => /lib/libm.so.6 (0x00766000)
    libgcc_s.so.1 => not found
    libc.so.6 => /lib/libc.so.6 (0x001db000)
    libdl.so.2 => /lib/libdl.so.2 (0x007b3000)
    /lib/ld-linux.so.2 (0x008ed000)
    libX11.so.6 => not found
    libXext.so.6 => not found

O comando ldd “lista” as bibliotecas dinâmicas do qual o skype foi compilado. o comando which calcula qual o caminho completo para o skype.

Bom, vamos pegar todos os resultados que não foram encontrados e buscar os pacotes que os proveem

Para o meu caso:

yum provides libasound.so.2 libXv.so.1 libXss.so.1 libQtDBus.so.4 libQtGui.so.4 libQtNetwork.so.4 libQtCore.so.4 libstdc++.so.6  libgcc_s.so.1 libX11.so.6 libXext.so.6

E os seguintes pacotes foram listados:

alsa-lib-1.0.24-2.fc15.i686 libXv-1.0.6-2.fc15.i686 libXScrnSaver-1.2.1-2.fc15.i686  qt-4.8.0-5.fc16.i686 qt-x11-4.8.0-5.fc16.i686 libstdc++-4.6.2-1.fc16.i686 libgcc-4.6.2-1.fc16.i686  libX11-1.4.3-1.fc16.i686 libXext-1.3.0-1.fc16.i686

Assim:

yum install  alsa-lib.i686 libXv.i686 libXScrnSaver.i686 qt.i686 qt-x11.i686  libstdc++.i686 libX11.i686 libXext.i686

Respire fundo, que o yum vai calcular as dependencias e fazer a mágica para você

Findo,

skype
 

skype no fedora 64 bits

skype no fedora 64 bits


Funcionou de primeira, microfone, webcam, speaker tudo direitinho… agora é com você!

Em resumo o que você precisa fazer é:

 

yum install glibc.i686 alsa-lib.i686 libXv.i686 libXScrnSaver.i686 qt.i686 qt-x11.i686  libstdc++.i686 libX11.i686 libXext.i686

Os resultados podem variar de acordo com o que você tem instalado na sua máquina. Mas o básico é isso ai…

Python – Dividindo uma lista em n partes

Frequentemente eu uso esse código, então ao invés de ir no código antigo vou neste post.
Basicamente o que eu quero é o seguinte: Tenho uma lista e quero dividir em n partes quase-iguais. Explico

Suponha a lista [1,2,3,4,5,6,7,8,9,10] quero dividir a lista em 5 partes.

A divisão da lista resultaria em [1,2], [3,4], [5,6], [7,8], [9,10]

Ok, isso é chato de fazer…

Mas vamos ao código.

#A lista
lista = [1,2,3,4,5,6,7,8,9,10]

#quebrando tudo
def quebrador(lista,partes):
    return list(lista[ parte*len(lista)/partes:(parte+1)*len(lista)/partes ] for parte in range(partes))
print quebrador(lista,5)
print quebrador(lista,2)
print quebrador(lista,10)
print quebrador(lista,0)

É possível que ocorrram variações para o tipo de lista.

Python e lambda

Sabe lambda? Lambda é algo muito legal. Com lambda você pode criar em tempo de execução funções e fazer algumas graças.

Vejamos algo bonito com lambda. Suponha a função fatorial.

A função fatorial é definida tal que dado um número x o fatorial deste número é:

x*(x-n) com n variando de (x-1) até 1.

Logo podemos traduzir num código python:

def fatorial(x):
 if x<=1:
   return 1
 else:
   return x*fatorial(x-1)

Esse código usa recursão, espero que você saiba o que é recursão… ;)

Bom, com lambda esse mesmo código pode ter apenas uma linha, duvida?

fatorial = lambda x: 1 if x <=1 else x*fatorial(x-1)

Definimos em fatorial uma função que executa o calculo de um fatorial de um dado número x.

Agora abra o seu interpratador python copie e cole o código para testar. Né lindo?

Python tanto na versão 2 quanto na versão 3 define lambda com um atalho para criação de funções. A sintaxe é definida assim:

lambda_form  ::= "lambda" [parameter_list]: expression
old_lambda_form ::=  "lambda" [parameter_list]: old_expression

Vou ler para você: uma expressão lambda é formada pela palavra reservada lambda seguida por uma lista (não o objeto lista) de parametros seperada por “:” e a expressão.

No nosso código a cima, fatorial é o nome da expressão lambda. O python sabe que a função é um lambda porque você disse isso usando a string lambda logo no inicio da expressão.

O x é o parametro. Se você quisesse passar mais parametros, bastava separa-lo por virgulas. Assim:

funcao = lambda x,y,z: x+y+z

pergunta, qual o retorno de funcao(1,2,3) ?

Agora a parte mais difícil, a expressão.

A expressão é como você vai manipular os parametros para ter um retorno. Com lambda não é necessário por a palavra reservada return.

Essa expressão só pode ser de três formas:

  • Uma comando de uma linha (x+1)
  • outra expressão lambda.
  • Ou uma expressão condicional. (incluem testes de lógica [or, and, not] )

No fatorial eu usei uma expressão condicional. Na funcao eu usei uma expressão de uma linha. E poderia usar outra expressão lambda.

Mas para memorizar, você deve escrever a sua expressão sempre com uma linha.

Você pode fazer uso de recursão e uso avançados de exepressão.

Que tal uma bike que [quase] nunca cai?

Uma empresa desenvolveu uma roda com giroscópio que praticamente impede que a bicicleta desequilibre quando em baixa velocidade.

Acho que a roda é interessante para:

  • Idosos, que já não dispõe de tanta força para ir a grandes velocidades e manter o equilíbrio
  • Crianças, que vão ainda não sabem andar de bicicleta e estão aprendendo a andar de bicicleta. Este é o foco atual da empresa.
  • Deficientes físicos e mentais, que por suas limitações de alguma forma impedem andar de bicicleta
  • Iniciados, eventualmente nos desequilibramos, se tivermos mais uma ferramenta que aumente nossa segurança então é bem vindo!

mais informações no site da empresa: http://www.thegyrobike.com

De volta

É Isso amigos… após não sei quanto tempo estou de volta ao universo dos blogs…

Muita coisa mudou nessa pausa quase que forçada. Mas vou deixar de desculpas e voltar a blogar, interagir e voltar a ativa na produção.

Atá breve!