Arquivo da Categoria “Tecnologia”

Como muitas pessoas, meu computador fica ligado 24 horas por dia para baixar arquivos da internet, principalmente via BitTorrent. Com o crescimento das mídias – principalmente agora que filmes e séries de TV em alta definição já são norma -, é necessário usar (mais de) um HD de alta capacidade. Além disso, ficar preso a um HD externo USB num notebook é um fator que limita a movimentação. Por estes motivos, resolvi montar um servidor de arquivos.

Antes porém, uma contextualização necessária. Desde que tenho mais de um computador na casa, compartilho os arquivos com os outros computadores através de um servidor SSH. O problema desta solução é que isso é um desperdício de energia tremendo! Para ter uma ideia, meu computador antigo tinha como processador um AMD Phenom X4 9500+. Uma bela máquina, bastante rápida, mas que consumia (o processador sozinho, sem considerar os outros componentes como placa-mãe, memória RAM etc.) 95W. Isso é mais que uma lâmpada incandescente – ligada à toa 24 horas por dia, 7 dias por semana. Depois, o troquei por um notebook com um Core 2 Duo T5800 que consome menos da metade – 35W – mas que me deixa preso à mesa – não posso tuitar cagando ter liberdade de movimentação com 3 HDs pendurados em 3 portas USB. Por fim, para ter alguma liberdade de movimento, acabei deixando os downloads sendo feitos na máquina do meu irmão, um Athlon X2 3000+, ligando os HDs de dados somente quando queria acessar algum dado. Definitivamente, solução longe do ideal.

Para resolver estes problemas, resolvi montar uma máquina para ser servidora de arquivos, com os componentes mais econômicos energética e monetariamente quanto possível à venda no mercado nacional. Vejamos a configuração:

  1. Placa-mãe Phitronics PC3000E+ com processador VIA C7-D 1.6 GHz (20W de TDP) – R$ 160
    Produzida pela Phitronics, uma marca da ECS/PC Chips de placas fabricadas no Brasil, bastante econômica (veja o tamanho do cooler do processador! Parece um 486 :) ). Conta ainda com um slot PCI Express, o que é bastante interessante pois possibilitará uma futura transformação num HTPC. Infelizmente só tem 2 portas SATA, mas isto pode ser corrigido com uma controladora SATA PCI que já está vindo do DealExtreme ;) ;
  2. Fonte Zalman ZM360B-APS – R$ 215
    Tão importante quanto a fonte ser “real”, é a eficiência energética dela e a qualidade dos seus componentes. Essa fonte foi escolhida por ter duas características: ser da categoria 80 Plus, o que indica que sua eficiência energética é igual ou maior que 80%, o que trará uma economia a médio prazo na conta de luz, e ter PFC Ativo, o que significa que faz a transformação de voltagens para o computador de forma mais contínua, o que prolonga a vida útil dos componentes. Uma explicação bem completa sobre PFC pode ser encontrada no fórum Clube do Hardware;
  3. Gabinete VCOM RJAC-8805 sem fonte – R$ 45
    O mais barato que consegui encontrar. Infelizmente um gabinete HTPC bacanudo ficou para a próxima. As outras peças que eu já tinha:
  4. 1GB de memória RAM Kingston KVR800D2N6/1G
  5. 2 HDs SATA-II Maxtor 1TB
  6. Adaptador IDE/SATA-USB
  7. HD SATA-II Seagate 1.5TB

Depois de montado o sistema, instalei o Ubuntu 9.10, versão de Desktop mesmo, pegando o monitor do meu irmão emprestado. Após a instalação, basta configurar o acesso remoto: em Sistema > Preferências > Área de trabalho remota, marque a caixa Permitir que outros usuários vejam sua área de trabalho, desmarque a caixa Você deve confirmar cada acesso à esta máquina e marque a caixa Configurar a rede para aceitar automaticamente conexões. É uma boa ideia marcar também a caixa Exigir que o usuário digite esta senha e digitar uma senha no campo. Feito isso, basta clicar em Fechar.

O processo pode continuar de qualquer outra máquina na rede, seja Linux (no Ubuntu, ir em Aplicativos > Internet > Visualizador da Área de Trabalho Remota) ou Windows (usar um visualizador de VNC, sugiro o UltraVNC que é livre). Conectando nela, uma boa pedida é instalar as atualizações e o servidor SSH – pacote openssh-server. Depois é só configurar o Transmission para fazer downloads e partir pro abraço. No meu caso só uso SSH por só usar Linux nos meus desktops (meu irmão que se vire com o WinSCP :D ) mas pode ser uma boa pedida instalar o Samba para montar os HDs externos como compartilhamentos de rede no Windows.

Para utilizar o Transmission, há algumas opções além da interface web. Para Linux, há o Transmission Remote GUI e para Windows, o Transmission Remote Dotnet.

Comments 4 comentários »

Ano retrasado conheci um site muito interessante, o OpenStreetMap. Audacioso, o projeto se propõe a construir e manter um mapa-mundi semelhante ao Google Maps e afins (só o mapa, sem as imagens de satélite) porém com conteúdo unicamente postado por usuários e sob uma licença livre (GFDL). Enquanto certas cidades européias encontram-se mapeadas com fidelidade igual ou (frequentemente) superior às alternativas comerciais, aqui no Brasil ainda temos um esforço colaborativo a ser feito. Foi divertido mapear meu bairro. :)

De qualquer forma, o post do Rafael Rossignol Felipe no Br-Linux sobre o OpenStreetMap me introduziu o GpsMid, um programa feito em Java (J2ME) para exibir os mapas do OSM em seu celular. Além do fato de ser totalmente livre, o uso do GpsMid apresenta algumas vantagens, como o fato de exibir os mapas e traçar rotas offline, isto é, sem tráfego de dados. Sendo Java, serve para praticamente qualquer celular, testei aqui no meu N95 e funcionou perfeitamente.

A instalação ainda não é trivial, ou melhor, a geração do instalador, já que o programa utiliza os mapas offline que precisam estar embutidos dentro do arquivo .jar. Criei um com o mapa da cidade do Rio de Janeiro e arredores, cujo link para download está no fim do post.

Primeiro precisamos definir qual área do mapa queremos ter. Não é possível ter o mundo inteiro – para você ter uma idéia, o arquivo planet.osm, um XML que contém o mapa-mundi bruto, tem hoje 95 GB (ou 4 GB compactado em bzip2). O ideal então é pegar somente a cidade que você vive, ou a região a qual você vai. Neste exemplo, criei com a cidade do Rio de Janeiro. Como ainda não temos muita gente mapeando o Brasil, acredito que o país inteiro – ou melhor, o que há mapeado dele – não ocuparia mais que 50 MB, mas não experimentei. De qualquer forma, entre no OpenStreetMap e dê zoom até a região que deseja construir o mapa:

Rio de Janeiro no OpenStreetMapRio de Janeiro no OpenStreetMap

Enquanto isso, baixe o JOSM – Java OpenStreetMap Editor. Execute-o com java -jar josm-latest.jar. Vá na opção File > Download from OSM… e entre com o link do mapa, encontrado na parte inferior direita do mesmo (Permalink) ou, caso prefira, entre com a latitude e longitude de começo e fim, e clique em OK.

Fazendo download do mapa com o JOSM

O JOSM irá efetuar o download do mapa bruto e o exibirá na tela. Vá na opção File > Save e dê um nome qualquer com a extensão osm, como rio.osm. Alternativamente, você poderá efetuar o download do planeta inteiro, veja mais informações no Wiki do OpenStreetMap.

JOSM exibindo o mapa do Rio de Janeiro

De qualquer forma, tendo o mapa .osm em mãos, é hora de misturar o mapa com o GpsMid, utilizando o Osm2GpsMid. Baixe-o e execute-o com java -jar Osm2GpsMid-*.jar, selecione a área a ser incluída no programa utilizando o botão direito do mouse; em Openstreetmap data source escolha o mapa osm; em Midlet name digite algo ou deixe o padrão e clique em Create GpsMid midlet.

Osm2GpsMid

O programa irá criar dois arquivos, um .jad e um .jar, agora basta transferi-los para seu telefone, abrir o .jad e instalar. Confira o screenshot:

GpsMid-RioDeJaneiro

Se quiser experimentar e não quiser passar por todo o processo, baixe aqui o GpsMid-RioDeJaneiro.

Tags:, , , , ,

Comments 6 comentários »

Apesar de utilizar o Symbian OggPlay para tocar arquivos OGG e FLAC no meu N95, a não-utilização do player de música padrão da Nokia me impedia de usufruir de certas funcionalidades, como o scrobbling para o Last.fm (com o Mobbler), o AVRCP (controle das faixas com o fone bluetooth), integração com o Nokia Sports Tracker etc. Assim, resolvi converter minhas músicas em FLAC para AAC.

Por que AAC?
Ao contrário do MP3, o modelo de licenciamento do formato AAC é menos pior, permitindo a distribuição de músicas no formato, embora ainda haja a necessiade de (quebra de) patentes para binários dos codecs (codificadores e decodificadores). Além disso, a compressão é melhor que a do MP3, permitindo arquivos menores com qualidade semelhante.

Na verdade, o AAC foi criado para ser o sucessor do MP3. Todos os tocadores de música decentes o suportam, como iPods, a grande maioria dos celulares, videogames, dentre outros, tirando os players chineses MPn. Além disso, ele é o formato utilizado no ISDB-T(b), de forma que provavelmente esses arquivos tocarão (ou poderiam tocar…) nos decoders de TV digital.

Para criar e tocar arquivos AAC no Linux, existe a dupla FAAC e  FAAD2 (Free Advanced Audio Coder / Decoder). Para utilizá-los no Ubuntu, basta instalar os pacotes flac, faac e ubuntu-restricted-extras.

Os arquivos AAC possuem a extensão .aac, mas geralmente são encapsulados pelo container MPEG4 (para poder conter metadados), possuindo a extensão .mp4 ou .m4a.

Script flac2mp4
Assim sendo, criei um script para converter minhas músicas FLAC para MP4. Sua utilização é: flac2mp4 arquivo.flac capa.jpg A imagem é opcional. Segue o código do script:

#!/bin/sh

echo ""
echo "flac2mp4 - script de conversão de áudio FLAC para MP4 (AAC)"
echo "Por Arlindo \"Nighto\" Pereira"
echo ""

if [ "$2" ]
then
	flac --totally-silent -d -c "$1" | faac - -o "$(pwd)/$(basename "$1" .flac).m4a" \
	--title "$(metaflac --show-tag=TITLE "$1" | sed 's/TITLE=//g')" \
	--artist "$(metaflac --show-tag=ARTIST "$1" | sed 's/ARTIST=//g')" \
	--album "$(metaflac --show-tag=ALBUM "$1" | sed 's/ALBUM=//g')" \
	--year "$(metaflac --show-tag=DATE "$1" | sed 's/DATE=//g')" \
	--track "$(metaflac --show-tag=TRACKNUMBER "$1" | sed 's/TRACKNUMBER=//g')" \
	--genre "$(metaflac --show-tag=GENRE "$1" | sed 's/GENRE=//g')" \
	--cover-art "$2"
elif [ "$1" ]
then
	flac --totally-silent -d -c "$1" | faac - -o "$(pwd)/$(basename "$1" .flac).m4a" \
	--title "$(metaflac --show-tag=TITLE "$1" | sed 's/TITLE=//g')" \
	--artist "$(metaflac --show-tag=ARTIST "$1" | sed 's/ARTIST=//g')" \
	--album "$(metaflac --show-tag=ALBUM "$1" | sed 's/ALBUM=//g')" \
	--year "$(metaflac --show-tag=DATE "$1" | sed 's/DATE=//g')" \
	--track "$(metaflac --show-tag=TRACKNUMBER "$1" | sed 's/TRACKNUMBER=//g')" \
	--genre "$(metaflac --show-tag=GENRE "$1" | sed 's/GENRE=//g')"
else
	echo "Entre com o nome do arquivo para converter:"
	echo "flac2mp4 arquivo.flac [capa-do-disco]"
	echo ""
exit 1
fi

Para utilizar o script, salve-o com o nome de flac2mp4 e, num terminal, digite: chmod +x flac2mp4 && sudo mv flac2mp4 /usr/local/bin. Para converter todas as músicas de um disco (todos os arquivos de um diretório), pode utilizar da seguinte forma:

for i in *.flac ; do flac2mp4 "$i" capa.jpg ; done

Fontes:

Edit: troquei a extensão do arquivo gerado de mp4 para m4a para ficar semelhante ao arquivo gerado pelo iTunes ao ripar CDs e adicionei os pacotes flac e faac na lista de pacotes para utilizar o script no Ubuntu. (Em 28/02/2010)

Edit: adicionei uma subrotina de verificação para utilização sem imagem de capa de disco. (Em 01/03/2010)

Tags:, , , , , , , ,

Comments 2 comentários »

Existem duas formas de converter vídeos com o Linux para um formato que o player de vídeo padrão do N95 consiga tocar, que são utilizando o FFmpeg e utilizando o MEncoder. Procurando no Google, a maioria dos tutoriais recomendam usar o FFmpeg, porém como a versão do dele no Ubuntu não vem compilada com os codecs que precisamos, temos de baixar o código-fonte e recompilá-lo, ao passo que utilizando o MEncoder isto não é necessário.

Antes de mais nada, instale o MEncoder (ou confira se ele está instalado):

sudo apt-get update && sudo apt-get install mencoder

Agora, entre na pasta do vídeo (neste exemplo vamos supor que ele está em ~), e entre com o comando:

mencoder -of lavf -lavfopts format=mp4 -oac lavc -ovc lavc -lavcopts aglobal=1:vglobal=1:acodec=libfaac:abitrate=128:vcodec=mpeg4:keyint=25 -ofps 25 -af lavcresample=44100 -vf harddup,scale=320:-3 -mc 0 -noskip video-original.avi -o video-convertido.mp4

Como o comando é gigantesco, vamos simplificar o processo. Entre com o seguinte comando:

sudo touch /usr/local/bin/n95enc && sudo chmod +x /usr/local/bin/n95enc && sudo gedit /usr/local/bin/n95enc

(Sinta-se livre para substituir o gedit pelo editor de sua preferência.) Na janela que se abrir, entre com o seguinte:

#!/bin/sh
mencoder -of lavf -lavfopts format=mp4 -oac lavc -ovc lavc -lavcopts aglobal=1:vglobal=1:acodec=libfaac:abitrate=128:vcodec=mpeg4:keyint=25 -ofps 25 -af lavcresample=44100 -vf harddup,scale=320:-3 -mc 0 -noskip "$1" -o "$2"

Salve e saia. Agora para converter os vídeos é só fazer como em:

n95enc video-original.avi video-convertido.mp4

Fonte: Xiaoka Notes

Tags:, , , , , , ,

Comments Nenhum comentário »

Seguindo a idéia do post anterior sobre C, hoje abordaremos a compilação de programas em Pascal no Linux. Os códigos em Pascal são compilados com o GPC, o Compilador de Pascal da GNU, um primo do GCC. Para instalá-lo no Ubuntu, clique aqui ou entre com o seguinte comando num terminal: sudo apt-get install build-essential gpc

Veja um exemplo de programa em Pascal, o clássico “Olá Mundo”:

program olamundo;
begin
	writeln('Olá mundo');
end.

Salvando como olamundo.pas, compila-se com: gpc -o olamundo olamundo.pas, e executamos o binário gerado com ./olamundo.

Muitos cursos de Pascal são focados na utilização do Borland Pascal ou DevPascal do Windows, que já vem com algumas bibliotecas que por padrão não vêm junto do gpc. Por exemplo, se o seu programa usa a biblioteca “crt” e, ao compilar, você obtém a seguinte mensagem:

programa.pas:2: erro: module/unit interface `crt' could not be imported

isto acontece porque a biblioteca que trabalha com interfaces de terminal, a CRT, não está instalada. Instale-a com sudo apt-get install libncurses2-dev e compile com a flag --automake (gpc --automake -o programa programa.pas).

Tags:, , , ,

Comments Nenhum comentário »