Ir para o conteúdo
ou

Software livre Brasil

Magnun

Nenhum artigo selecionado ainda.
Tela cheia
 Feed RSS

Blog

27 de Maio de 2009, 0:00 , por Software Livre Brasil - | Ninguém está seguindo este artigo ainda.

Game Over

3 de Maio de 2010, 0:00, por Software Livre Brasil - 0sem comentários ainda

Olá pessoal!! A um certo tempo não posto nesse blog e nem apareço aqui pela under-linux, saibam que não é por desinteresse ou outro motivo qualquer. Peço desculpa a todos que acompanham meu blog e à equipe de administração da Under por não estar colaborando recentemente, mas é por um bom motivo...




Volto assim que possível!
Até mais...



Dobrando o Mundo!

17 de Março de 2010, 14:47, por Mind Bending em Portugês - 0sem comentários ainda

Olá a todos e sejam bem vindos ao Mind Bending!

Alegro-me por anunciar o início desse blog! Muito irão se perguntar quem sou eu, então eu postei aqui uma breve descrição de quem eu sou e o o que faço. Vou adiantar que não sou ninguém importante e eu não sou nenhum especialista, eu simplesmente vou usar esse blog para postar algumas notícias que eu ache relevante, relatar um pouco sobre meus projetos e para documentar algumas coisas interessantes que eu venha a descobrir. Geralmente irei postar sobre assuntos relacionados com FOSS e GNU/Linux, diversos códigos em Python, jogos e, esporadicamente, alguns desenhos.

Antes que alguém pergunte vou falar sobre "o que é Mind Bending". Traduzindo ao pé da letra, Mind Bending seria algo como dobrando a mente. A palavra bend em inglês tem um outros significados além de dobrar como, dar nova forma, tornar algo submisso, focar sua mente em algo e etc. Desta forma, o título seria "dobrando a mente" no sentido de:

Dobrando o Mundo! é um artigo original de Mind Bending



Dobrando o Mundo!

17 de Março de 2010, 11:47, por Software Livre Brasil - 0sem comentários ainda

Olá a todos e sejam bem vindos ao Mind Bending!

Alegro-me por anunciar o início desse blog! Muito irão se perguntar quem sou eu, então eu postei aqui uma breve descrição de quem eu sou e o o que faço. Vou adiantar que não sou ninguém importante e eu não sou nenhum especialista, eu simplesmente vou usar esse blog para postar algumas notícias que eu ache relevante, relatar um pouco sobre meus projetos e para documentar algumas coisas interessantes que eu venha a descobrir. Geralmente irei postar sobre assuntos relacionados com FOSS e GNU/Linux, diversos códigos em Python, jogos e, esporadicamente, alguns desenhos.

Antes que alguém pergunte vou falar sobre "o que é Mind Bending". Traduzindo ao pé da letra, Mind Bending seria algo como dobrando a mente. A palavra bend em inglês tem um outros significados além de dobrar como, dar nova forma, tornar algo submisso, focar sua mente em algo e etc. Desta forma, o título seria "dobrando a mente" no sentido de:

Dobrando o Mundo! é um artigo original de Mind Bending



Lançamento do USBManager 1.0.0

16 de Março de 2010, 0:00, por Software Livre Brasil - 0sem comentários ainda

Olá pessoal! Após um bom tempo como Release Candidate, tenho o prazer de anunciar o USBManager 1.0.0. O pessoal que acompanhou a versão 1.0-rc vai perceber que, visivelmente, poucos alterações foram feitas. A maioria das mudanças foram realizadas "debaixo do capô", para deixar o aplicativo mais estável e rápido.

Nesses meses foram reportados poucos bugs, a maioria simples e que não impactavam no funcionamento do aplicativo, com excessão do bug #423476.



Downloading e instalação

O USBManager 1.0.0 pode ser baixado aqui. Para instalar, descompacte o arquivo e execute a seguinte linha:
sudo ./setup.py install

Utilização

O USBManager pode ser utilizado através do menu Aplicações->Sistema. Alternativamente, você pode chamá-lo com o comando: usbmanager.

Clique na imagem para uma versão maior Nome:	          9657-mainwindow..png Visualizações:	110 Tamanho: 	24,6 KB ID:      	 9671



É possível montar e desmontar o dispositivo clicando no checkbox. Para Obter mais informações sobre um dispositivo, basta selecioná-lo e clicar no ícone de propriedade (catraca), ou simplesmente um duplo clique sobre o dispositivo. Nessa janela também é possível alterar o label do dispositivo.

Clique na imagem para uma versão maior Nome:	          9654-properties1..png Visualizações:	109 Tamanho: 	37,1 KB ID:      	 9672 Clique na imagem para uma versão maior Nome:	          9655-properties2..png Visualizações:	109 Tamanho: 	36,4 KB ID:      	 9673




A "função systemtray" pode ser usada chamando o USBManager com a seguinte linha: usbmanager --tray

Clique na imagem para uma versão maior Nome:	          9644-tray_icon..png Visualizações:	108 Tamanho: 	12,5 KB ID:      	9674

O 'system tray' te dá a possibilidade de montar e desmontar os dispositivos com 2 cliques. Com ele também é possível chamar a interface do USBManager rapidamente.

Clique na imagem para uma versão maior Nome:	          9646-tray_context&#.png Visualizações:	108 Tamanho: 	12,1 KB ID:       	9675


Uma boa sugestão é configurar o USBManager para inicializar no system tray juntamente com o sistema operacional, desta forma ele irá monitorar todas as atividades de dispositivos USB.

Clique na imagem para uma versão maior Nome:	          9653-old_notifica&#.png Visualizações:	106 Tamanho: 	27,8 KB ID:       	9676

Clique na imagem para uma versão maior Nome:	          9656-old_notifica&#.png Visualizações:	110 Tamanho: 	31,5 KB ID:       	9677

Clique na imagem para uma versão maior Nome:	          9652-old_notifica&#.png Visualizações:	108 Tamanho: 	34,3 KB ID:       	9678



Além de tudo isso, o USBManager ainda te dá a possibilidade de formatar dispositivos. Basta selecionar o dispositivo desejado e clicar na 'vassoura'.

Clique na imagem para uma versão maior Nome:	          9648-formating_fa&#.png Visualizações:	109 Tamanho: 	23,7 KB ID:       	9679


Para ter mais possibilidades de formatação, sugerimos a instalação das ferramentas mlabel, ntfsprogs e e2label.




Melhoramentos

Visivelmente o USBManager apresenta as seguintes novas funcionalidades:


Melhor suporte para distribuições baseadas em Red Hat (como o Fedora).

Essa funcionalidade é resultado da correção do Bug #423476. Distribuições Red Hat não possui o gksudo, com isso foi criada uma rotina para pre-selecionar a função de credenciamento a ser utilizada. Atualmente a rotina busca as funções gksudo, gksu e beesu. Se sua distribuição não suporta nenhuma destas, reporte um bug aqui informando qual função de credenciamento pode ser utilizada que eu providenciarei a correção imediatamente.

Novo design da janela de análise de utilização de disco.

Agora ela possui barras coloridas para ressaltar os arquivos que mais ocupam espaço do dispositivo, além de uma disponibilizar uma macro análise do dispositivo informando, numero total de arquivos, tamanho médio de arquivo, numero total de pastas e tamanho médio de pastas.

Clique na imagem para uma versão maior Nome:	          9642-disk_usage..png Visualizações:	114 Tamanho: 	87,5 KB ID:      	 9670

Suporte ao formato do tipo EXT.

Agora o USBManager suporta os seguintes formatos: FAT16, FAT32, NTFS, EXT2, EXT3 e EXT4.

Clique na imagem para uma versão maior Nome:	          9641-formating_ex&.png Visualizações:	109 Tamanho: 	24,8 KB ID:       	9680


Desmontagem inteligente.

Agora, antes de mudar o label do dispositivo, o USBManager automaticamente desmonta o dispositivo correspondente.

Mais notificações

Algumas novas notificações como quando um dispositivo é desmontado.

Clique na imagem para uma versão maior Nome:	          9645-new_notifica&#.png Visualizações:	107 Tamanho: 	32,9 KB ID:       	9681 Clique na imagem para uma versão maior Nome:	          9647-new_notifica&#.png Visualizações:	110 Tamanho: 	28,1 KB ID:       	9682


As mudanças não visíveis mais importantes são descritas a baixo:

Sinais GOBjects

Todos os objetos dentro do USBManager se comunicam através de sinais, reduzindo o uso de ponteiros e trazendo mais flexibilidade ao código.

Análise sob demanda

A ferramenta da análise de disco foi modificada para escanear e analisar o conteúdo das pastas somente quando esta pasta é expandida, tornando o tempo de inicialização dessa função muito mais rápida.

Traduções cooperativas:

O USBManager agora utiliza o Rosetta, ferramenta de tradução do Lanchpad, com isso as traduções podem ser feitas pela Web, sem a necessidade de instalar nenhum programa adicional. As traduções, de tempos em tempos, incluídas dentro da base de código do USBManager automaticamente.

Mais Traduções
Além das línguas inglesas e português brasileiro, o USBManager está disponível (graças as contribuições dos usuários do Launchpad) em mais 5 línguas:

  • Holandês
  • Francês
  • Alemão
  • Russo
  • Espanhol
Clique na imagem para uma versão maior Nome:	          9683-traducao..png Visualizações:	109 Tamanho: 	6,6 KB ID:      	9684


Atualmente estão sendo feitas traduções para Tailandês (25% traduzido), Turco (84% traduzido) e Árabe (23% traduzido).



Bugs Corrigidos

Lista de correção de "Bugs leves":

  • #413438 - Detalhamento do arquivo README
  • #413995 - Renomear o arquivo .desktop para ser compativel com o resto do projeto
  • #494026 - Erros de digitação de algumas palavras


Lista de correção de "Bugs médios:

  • #414003 - Erro de codificação de arquivos



Lista de correção de "Bugs importantes":

  • #423476 - Desmontar o volume resultava em falhas (para distribuições baseadas em Red Hat)



Agradecimentos

Apesar do USBManager ser desenvolvido exclusivamente por mim, tenho que agradecer a algumas pessoas pela realização desse trabalho. Deve agradecer, por exemplo, a todos que ajudaram a espalhar esse meu aplicativo pela Web e a todos que reportaram bugs e erros no meu projeto.

Um agradecimento especial ao Fabian Affolter por me ajudar a melhorar meu projeto com sugestões e por empacota-lo para o Fedora. Em breve estarei disponibilizando um pacote do USBManager para Ubuntu.

Tradução para o Árabe: Nizar Kerkeni
Tradução para o Holandês: Donkade e cumulus007
Tradução para o Francês: Guillaume Mazoyer, Nicolas Delvaux, Nizar Kerkeni, Pascal Lemazurier e Sorkin.
Tradução para o Alemão: BBO, Fabian Affolter, Fred Seidemann, Georg Engelmann e mogli.
Tradução para o Russo: Nikolay Edigaryev, Petron, Sergey Sedov e vsink.
Tradução para o Espanhol: Demuxer, Monkey, Paco Molinero, guillemsster e kaeltas.
Tradução para o Tailandês: Krit Marukawisutthigul.
Tradução para o Turco: zeugma



[Curso de Python] Correção: Estruturas For Aninhadas

8 de Março de 2010, 0:00, por Software Livre Brasil - 0sem comentários ainda

Antes de prosseguir leia os artigos anteriores aqui.



Olá pessoal!! Depois de uma sumida pra conseguir lançar um dos meus projetos, estou retomando o curso. A um tempo deixei uns exercícios mas não corrigi. Logo... vamos corrigi-los!



Correção: Estruturas For Aninhadas



1. O dicionário abaixo representa uma lista de alunos (chaves) e suas notas (valores). Percorra esse dicionário e calcule a média de cada aluno imprimindo o nome do aluno seguido de sua nota.
alunos = {'fulano':[6, 7, 5, 2], 'sicrano':[7, 8, 9, 8], 'beltrano':[10, 9, 10, 10]}


Esse exercício é muito divertido e simples. A grande sacada está em lembrar de usar o método items() em conjunto com o for. Vamos ver o código.

Código:
alunos = {'fulano':[6, 7, 5, 2], 'sicrano':[7, 8, 9, 8], 'beltrano':[10, 9, 10, 10]}
for aluno,notas in alunos.items():
    media = 0
    for nota in notas:
        media += nota
    media = float(media) / len(notas)
    print \"Aluno:\",aluno
    print \"Média:\",media
    print
Nada muito complexo. Declaramos o dicionário com os alunos, e já vamos para o for. Nele "desempacotamos" as variáveis aluno (string) e a variável notas (lista de números). É importante notar que esse "desempacotamento" só é possível porque usamos o método items(), caso contrário só seria possível obter o nome do aluno. Depois criamos um novo for, que irá pegar cada nota dentro de notas. Esse for simplesmente soma todas notas do aluno. Depois desse for podemos dividir pelo comprimento da variável notas, assim obtemos a média!


2. Repita o exercício 1 informando, ao final de tudo, a média da turma.

Código:
alunos = {'fulano':[6, 7, 5, 2], 'sicrano':[7, 8, 9, 8], 'beltrano':[10, 9, 10, 10]}
media_turma = 0
for aluno,notas in alunos.items():
    media = 0
    for nota in notas:
        media += nota
    media = float(media) / len(notas)
    media_turma += media
    print \"Aluno:\",aluno
    print \"Média:\",media
    print

media_turma = float(media_turma)/len(alunos)
print \"Media da turma:\",media_turma
Aqui bastou adicionar uma outra variável com o nome media_turma. Nela somamos todas as médias e depois dividimos pelo número de alunos.


3. Repita o exercício 2 informando quais alunos foram aprovados (média deve ser maior ou igual a 6).

Código:
alunos = {'fulano':[6, 7, 5, 2], 'sicrano':[7, 8, 9, 8], 'beltrano':[10, 9, 10, 10]}
media_turma = 0
for aluno,notas in alunos.items():
    media = 0
    for nota in notas:
        media += nota
    media = float(media) / len(notas) 
    media_turma += media
    print \"Aluno:\",aluno
    if media < 6:
        print \"Média:\",media,\"(Reprovado)\"
    else:
        print \"Média:\",media
    print

media_turma = float(media_turma)/len(alunos)
print \"Media da turma:\",media_turma
Para resolver esse, bastou adicionar um if verificando se a nota é menor que 6 (de 0 até 5.9).

Até mais...


Tags deste artigo: python linux arch programação desenvolvimento vim