CentOS: Instalar o Netatalk 3.1.0 (Time Machine)

Antigamente eu utilizava um HD usb ligado na minha maquina para fazer o backup porem, fui ficando incomodado com o fio e o HD na mesa. Sem falar que passava semanas sem eu ligar o HD então o backup não servia para nada. Sempre li vários [1] [2] [3] artigos em blog de como configurar um servidor AFP no Linux e assim o Time Machine conseguir fazer backup.

Atualmente estou utilizando o meu netbook como servidor domestico, instalei nele o Plex e um cliente de torrent, e ele fica ligado 24H então nada melhor que fazer dele o meu servidor AFP. Mas o netatalk que esta disponível no EPEL não é compatível com o OS X Mavericks e consultando a documentação do Netatalk 3.1.0 ele esta muito mais fácil de configurar.

Primeiramente vamos instalar todas as pendências necessárias para instalar o Netatalk:

yum groupinstall "Development tools"
yum install db4-devel avahi-devel cracklib-devel openssl-devel quota-devel pam-devel tcp_wrappers-devel libgcrypt-devel libacl-devel openldap-devel dbus-devel dbus-glib-devel glib2-devel systemtap-sdt-devel libtdb-devel avahi

Com as dependências instaladas vamos fazer download e compilar o software

wget http://sourceforge.net/projects/netatalk/files/netatalk/3.1/netatalk-3.1.0.tar.gz/download
configure --with-pkgconfdir=/etc --with-cracklib --with-pam --with-shadow --with-uams-path=/usr/lib/netatalk --enable-shared --enable-krbV-uam --enable-overwrite --with-gnu-ld --with-init-style=redhat-sysv --with-libgcrypt --without-tdb --with-pam-confdir=%/etc/pam.d --with-dbus-sysconf-dir=/etc/dbus-1/system.d --without-mysql-config
make
make install

Agora vem a parte mais simples, configurar o Netatalk para usarmos como servidor do Time Machine. Vamos editar o arquivo /etc/afp.conf e deixar ele com o seguinte conteudo.

[Global]

[My Time Machine Volume]
    path = /mnt/timemachine
    time machine = yes

[DADOS]
	path = /mnt/DADOS1

Sim é somente isso, basta adicionar o parâmetro “time machine = yes”. Esta funcionando perfeitamente e meu backup esta sendo realizado via WIFI sem eu perceber :)

Referencia: http://netatalk.sourceforge.net/wiki/index.php/Netatalk_3.1.0_SRPMs_for_Fedora/Scientific_Linux/CentOS

Brincando com o GNU parallel

Gnu Parallel

O GNU parallel é um ferramenta muito poderosa que pode executar os seus programas (shell script, python, java e etc) em paralelo em varias maquinas. Complicada de ser usada porem, a sua documentação é bem completa e lotada de exemplos: http://www.gnu.org/software/parallel/parallel_tutorial.html

O meu exemplo que vou mostrar que de ler um arquivo com 8080000 e fazer insert no MySQL utilizando Python sem utilizar qualquer habilidade de paralelismo em python, somente na chamada do software feita via o GNU parallel. O código em python é bem simples:

 #!/usr/bin/env python
 # -*- coding: iso-8859-15 -*-

import sys
 import MySQLdb
 import datetime

print "Iniciando importação do arquivo ("+ str(sys.argv[1]) +"): " + str(datetime.datetime.now())

f = open(sys.argv[1],"r")
 con = MySQLdb.connect(host='127.0.0.1', user='root', passwd='root',db='tmp')
 c = con.cursor()

for linha in f:
 c.execute("INSERT INTO teste VALUES (%s)",linha)
 #print ("INSERT INTO teste VALUES (%s)",linha)

con.commit()
 c.close()
 con.close()

print "Terminou em : " + str(datetime.datetime.now())
 

Vamos a execução simples lendo o arquivo:

 mac-tadeucruz:~ tadeucruz$ time ./tst.py arquivoGiganteMesmo
 Iniciando importação do arquivo (arquivoGiganteMesmo): 2013-09-07 12:43:13.554324
 Terminou em : 2013-09-07 12:57:32.932870

real 14m19.552s
 user 3m22.196s
 sys 1m44.406s
 mac-tadeucruz:~ tadeucruz$
 

Agora vem o poder do GNU parallel, somente na chamada do programa conseguimos separar os arquivos com o numero de linhas que desejamos (-N100000), informar quantas chamadas de programas podem ser executado em paralelo sem modificar o código em python. Abaixo a execução de modo simples e com os valores chutados para o numero de jobs e do split dos arquivos :D.

 mac-tadeucruz:~ tadeucruz$ time cat arquivoGiganteMesmo |parallel --pipe -N100000 -j 8 'cat > /tmp/parallel_test_{#}; python tst.py /tmp/parallel_test_{#}'
 parallel: Warning: A full record was not matched in a block. Increasing to --blocksize 1363150
 parallel: Warning: A full record was not matched in a block. Increasing to --blocksize 1772096
 parallel: Warning: A full record was not matched in a block. Increasing to --blocksize 2303726
 Iniciando importação do arquivo (/tmp/parallel_test_3): 2013-09-07 12:59:04.140435
 Terminou em : 2013-09-07 12:59:25.564032
 Iniciando importação do arquivo (/tmp/parallel_test_2): 2013-09-07 12:59:04.081028
 Terminou em : 2013-09-07 12:59:25.532993
 Iniciando importação do arquivo (/tmp/parallel_test_1): 2013-09-07 12:59:04.038172
 Terminou em : 2013-09-07 12:59:25.528484
 Iniciando importação do arquivo (/tmp/parallel_test_5): 2013-09-07 12:59:04.255318
 Terminou em : 2013-09-07 12:59:25.731718
 Iniciando importação do arquivo (/tmp/parallel_test_4): 2013-09-07 12:59:04.197139
 Terminou em : 2013-09-07 12:59:25.812025
 Iniciando importação do arquivo (/tmp/parallel_test_8): 2013-09-07 12:59:04.493999
 Terminou em : 2013-09-07 12:59:25.902990
 Iniciando importação do arquivo (/tmp/parallel_test_7): 2013-09-07 12:59:04.395691
 Terminou em : 2013-09-07 12:59:25.916693
 Iniciando importação do arquivo (/tmp/parallel_test_6): 2013-09-07 12:59:04.311710
 Terminou em : 2013-09-07 12:59:25.825379
 Iniciando importação do arquivo (/tmp/parallel_test_10): 2013-09-07 12:59:25.779596
 Terminou em : 2013-09-07 12:59:47.366380
 Iniciando importação do arquivo (/tmp/parallel_test_9): 2013-09-07 12:59:25.729972
 Terminou em : 2013-09-07 12:59:47.316062
 Iniciando importação do arquivo (/tmp/parallel_test_12): 2013-09-07 12:59:25.923218
 Terminou em : 2013-09-07 12:59:47.507909
 Iniciando importação do arquivo (/tmp/parallel_test_11): 2013-09-07 12:59:25.845911
 Terminou em : 2013-09-07 12:59:47.473447
 Iniciando importação do arquivo (/tmp/parallel_test_13): 2013-09-07 12:59:25.986016
 Terminou em : 2013-09-07 12:59:47.660657
 Iniciando importação do arquivo (/tmp/parallel_test_14): 2013-09-07 12:59:26.064241
 Terminou em : 2013-09-07 12:59:47.676953
 Iniciando importação do arquivo (/tmp/parallel_test_15): 2013-09-07 12:59:26.144381
 Terminou em : 2013-09-07 12:59:47.753178
 Iniciando importação do arquivo (/tmp/parallel_test_16): 2013-09-07 12:59:26.224373
 Terminou em : 2013-09-07 12:59:47.883110
 Iniciando importação do arquivo (/tmp/parallel_test_24): 2013-09-07 12:59:48.002237
 Terminou em : 2013-09-07 13:00:10.624973
 Iniciando importação do arquivo (/tmp/parallel_test_23): 2013-09-07 12:59:47.928754
 Terminou em : 2013-09-07 13:00:10.614774
 Iniciando importação do arquivo (/tmp/parallel_test_22): 2013-09-07 12:59:47.853943
 Terminou em : 2013-09-07 13:00:10.534407
 Iniciando importação do arquivo (/tmp/parallel_test_21): 2013-09-07 12:59:47.788513
 Terminou em : 2013-09-07 13:00:10.519201
 Iniciando importação do arquivo (/tmp/parallel_test_20): 2013-09-07 12:59:47.721100
 Terminou em : 2013-09-07 13:00:10.479861
 Iniciando importação do arquivo (/tmp/parallel_test_19): 2013-09-07 12:59:47.680146
 Terminou em : 2013-09-07 13:00:10.450647
 Iniciando importação do arquivo (/tmp/parallel_test_18): 2013-09-07 12:59:47.566300
 Terminou em : 2013-09-07 13:00:10.438301
 Iniciando importação do arquivo (/tmp/parallel_test_17): 2013-09-07 12:59:47.494297
 Terminou em : 2013-09-07 13:00:10.332406
 Iniciando importação do arquivo (/tmp/parallel_test_29): 2013-09-07 13:00:11.640717
 Terminou em : 2013-09-07 13:00:34.050611
 Iniciando importação do arquivo (/tmp/parallel_test_28): 2013-09-07 13:00:11.561615
 Terminou em : 2013-09-07 13:00:34.002774
 Iniciando importação do arquivo (/tmp/parallel_test_27): 2013-09-07 13:00:11.492844
 Terminou em : 2013-09-07 13:00:34.000185
 Iniciando importação do arquivo (/tmp/parallel_test_26): 2013-09-07 13:00:11.426481
 Terminou em : 2013-09-07 13:00:33.854380
 Iniciando importação do arquivo (/tmp/parallel_test_25): 2013-09-07 13:00:11.371262
 Terminou em : 2013-09-07 13:00:33.770446
 Iniciando importação do arquivo (/tmp/parallel_test_32): 2013-09-07 13:00:11.876941
 Terminou em : 2013-09-07 13:00:34.300271
 Iniciando importação do arquivo (/tmp/parallel_test_31): 2013-09-07 13:00:11.832811
 Terminou em : 2013-09-07 13:00:34.203030
 Iniciando importação do arquivo (/tmp/parallel_test_30): 2013-09-07 13:00:11.733957
 Terminou em : 2013-09-07 13:00:34.181630
 Iniciando importação do arquivo (/tmp/parallel_test_40): 2013-09-07 13:00:34.748505
 Terminou em : 2013-09-07 13:00:57.386107
 Iniciando importação do arquivo (/tmp/parallel_test_39): 2013-09-07 13:00:34.665373
 Terminou em : 2013-09-07 13:00:57.342095
 Iniciando importação do arquivo (/tmp/parallel_test_38): 2013-09-07 13:00:34.571066
 Terminou em : 2013-09-07 13:00:57.300464
 Iniciando importação do arquivo (/tmp/parallel_test_37): 2013-09-07 13:00:34.462575
 Terminou em : 2013-09-07 13:00:57.212343
 Iniciando importação do arquivo (/tmp/parallel_test_36): 2013-09-07 13:00:34.397192
 Terminou em : 2013-09-07 13:00:57.220788
 Iniciando importação do arquivo (/tmp/parallel_test_35): 2013-09-07 13:00:34.335466
 Terminou em : 2013-09-07 13:00:57.168574
 Iniciando importação do arquivo (/tmp/parallel_test_34): 2013-09-07 13:00:34.273930
 Terminou em : 2013-09-07 13:00:57.107431
 Iniciando importação do arquivo (/tmp/parallel_test_33): 2013-09-07 13:00:34.245024
 Terminou em : 2013-09-07 13:00:57.083016
 Iniciando importação do arquivo (/tmp/parallel_test_44): 2013-09-07 13:00:58.284316
 Terminou em : 2013-09-07 13:01:20.737677
 Iniciando importação do arquivo (/tmp/parallel_test_46): 2013-09-07 13:00:58.399885
 Terminou em : 2013-09-07 13:01:20.757263
 Iniciando importação do arquivo (/tmp/parallel_test_45): 2013-09-07 13:00:58.335097
 Terminou em : 2013-09-07 13:01:20.756538
 Iniciando importação do arquivo (/tmp/parallel_test_43): 2013-09-07 13:00:58.235875
 Terminou em : 2013-09-07 13:01:20.680664
 Iniciando importação do arquivo (/tmp/parallel_test_42): 2013-09-07 13:00:58.200798
 Terminou em : 2013-09-07 13:01:20.632231
 Iniciando importação do arquivo (/tmp/parallel_test_41): 2013-09-07 13:00:58.158214
 Terminou em : 2013-09-07 13:01:20.632424
 Iniciando importação do arquivo (/tmp/parallel_test_48): 2013-09-07 13:00:58.552426
 Terminou em : 2013-09-07 13:01:20.928383
 Iniciando importação do arquivo (/tmp/parallel_test_47): 2013-09-07 13:00:58.482741
 Terminou em : 2013-09-07 13:01:20.887160
 Iniciando importação do arquivo (/tmp/parallel_test_56): 2013-09-07 13:01:21.352022
 Terminou em : 2013-09-07 13:01:43.978159
 Iniciando importação do arquivo (/tmp/parallel_test_55): 2013-09-07 13:01:21.299097
 Terminou em : 2013-09-07 13:01:43.973215
 Iniciando importação do arquivo (/tmp/parallel_test_54): 2013-09-07 13:01:21.224712
 Terminou em : 2013-09-07 13:01:43.972154
 Iniciando importação do arquivo (/tmp/parallel_test_53): 2013-09-07 13:01:21.171747
 Terminou em : 2013-09-07 13:01:43.883031
 Iniciando importação do arquivo (/tmp/parallel_test_52): 2013-09-07 13:01:21.081758
 Terminou em : 2013-09-07 13:01:43.841214
 Iniciando importação do arquivo (/tmp/parallel_test_51): 2013-09-07 13:01:21.003631
 Terminou em : 2013-09-07 13:01:43.841046
 Iniciando importação do arquivo (/tmp/parallel_test_50): 2013-09-07 13:01:20.931655
 Terminou em : 2013-09-07 13:01:43.649009
 Iniciando importação do arquivo (/tmp/parallel_test_49): 2013-09-07 13:01:20.909307
 Terminou em : 2013-09-07 13:01:43.673769
 Iniciando importação do arquivo (/tmp/parallel_test_61): 2013-09-07 13:01:45.006056
 Terminou em : 2013-09-07 13:02:07.478467
 Iniciando importação do arquivo (/tmp/parallel_test_60): 2013-09-07 13:01:44.931471
 Terminou em : 2013-09-07 13:02:07.416445
 Iniciando importação do arquivo (/tmp/parallel_test_59): 2013-09-07 13:01:44.888272
 Terminou em : 2013-09-07 13:02:07.334330
 Iniciando importação do arquivo (/tmp/parallel_test_58): 2013-09-07 13:01:44.830278
 Terminou em : 2013-09-07 13:02:07.264803
 Iniciando importação do arquivo (/tmp/parallel_test_57): 2013-09-07 13:01:44.735322
 Terminou em : 2013-09-07 13:02:07.211841
 Iniciando importação do arquivo (/tmp/parallel_test_64): 2013-09-07 13:01:45.326177
 Terminou em : 2013-09-07 13:02:07.702834
 Iniciando importação do arquivo (/tmp/parallel_test_63): 2013-09-07 13:01:45.224707
 Terminou em : 2013-09-07 13:02:07.604323
 Iniciando importação do arquivo (/tmp/parallel_test_62): 2013-09-07 13:01:45.129806
 Terminou em : 2013-09-07 13:02:07.526345
 Iniciando importação do arquivo (/tmp/parallel_test_72): 2013-09-07 13:02:08.108142
 Terminou em : 2013-09-07 13:02:30.718348
 Iniciando importação do arquivo (/tmp/parallel_test_71): 2013-09-07 13:02:08.032702
 Terminou em : 2013-09-07 13:02:30.692496
 Iniciando importação do arquivo (/tmp/parallel_test_70): 2013-09-07 13:02:07.934592
 Terminou em : 2013-09-07 13:02:30.657136
 Iniciando importação do arquivo (/tmp/parallel_test_69): 2013-09-07 13:02:07.842209
 Terminou em : 2013-09-07 13:02:30.603386
 Iniciando importação do arquivo (/tmp/parallel_test_68): 2013-09-07 13:02:07.777486
 Terminou em : 2013-09-07 13:02:30.547846
 Iniciando importação do arquivo (/tmp/parallel_test_67): 2013-09-07 13:02:07.714291
 Terminou em : 2013-09-07 13:02:30.456079
 Iniciando importação do arquivo (/tmp/parallel_test_66): 2013-09-07 13:02:07.661779
 Terminou em : 2013-09-07 13:02:30.438521
 Iniciando importação do arquivo (/tmp/parallel_test_65): 2013-09-07 13:02:07.645986
 Terminou em : 2013-09-07 13:02:30.428696
 Iniciando importação do arquivo (/tmp/parallel_test_74): 2013-09-07 13:02:31.582967
 Terminou em : 2013-09-07 13:02:54.091581
 Iniciando importação do arquivo (/tmp/parallel_test_73): 2013-09-07 13:02:31.554669
 Terminou em : 2013-09-07 13:02:54.114477
 Iniciando importação do arquivo (/tmp/parallel_test_75): 2013-09-07 13:02:31.656460
 Terminou em : 2013-09-07 13:02:54.218899
 Iniciando importação do arquivo (/tmp/parallel_test_76): 2013-09-07 13:02:31.732328
 Terminou em : 2013-09-07 13:02:54.300030
 Iniciando importação do arquivo (/tmp/parallel_test_77): 2013-09-07 13:02:31.763734
 Terminou em : 2013-09-07 13:02:54.396711
 Iniciando importação do arquivo (/tmp/parallel_test_78): 2013-09-07 13:02:31.906018
 Terminou em : 2013-09-07 13:02:54.435246
 Iniciando importação do arquivo (/tmp/parallel_test_79): 2013-09-07 13:02:31.974130
 Terminou em : 2013-09-07 13:02:54.514689
 Iniciando importação do arquivo (/tmp/parallel_test_80): 2013-09-07 13:02:32.020529
 Terminou em : 2013-09-07 13:02:54.551570
 Iniciando importação do arquivo (/tmp/parallel_test_81): 2013-09-07 13:02:54.340778
 Terminou em : 2013-09-07 13:03:03.045623

real 3m59.654s
 user 7m14.517s
 sys 3m6.999s
 mac-tadeucruz:~ tadeucruz$
 

A diferença de tempo foi de 10 minutos, e com o SpeedUP de 3.5. Acho que esse vai ser somente o primeiro de muitos arquivos sobre essa poderosa ferramenta.

Dicas: Plex Media Center

imgPlexMenuHome

Procurando por outra solução de media center encontrei o Plex e gostei muito do que ele tem a oferecer. O Plex é um “fork” do XBMC porem, em vez de utilizar um único aplicativo para gerenciar e reproduzir o conteúdo do seu media center, como o XBMC, o Plex é dividido em 2 aplicativos:

  1. Plex Media Server é responsável por organizar os seus arquivos (filmes ou series) pegando as capadas, descrição e se configurado até legendas automaticamente. 
  2. Plex Media Center é o XBMC modifica para buscar os conteúdos no Plex Media Server. Porem também posso acessar o conteúdo do Plex Media Server com IOS e Android reproduzindo o conteúdo no seu Device. 

O interessante é que posso ter vários Plex Media Server e um único cliente Plex que consegue reproduzir o conteúdo de todos Server. O Plex tem as mesma vantagens que o XBMC de plugins que fazem downloads automaticamente das legendas, baixar capas (TV, Filmes), descrição e etc. Outra vantagem é a possibilidade de controlar a sua biblioteca via interface WEB permitindo editar informações e ate mesmo assistir pelo o navegador os seus vídeos.

Eu tenho sorte que minha TV Samsung tem um app nativo do Plex, assim não preciso ficar ligando sempre o notebook na TV. Um projeto futuro é compra um Raspberry Pi e instalar o http://rasplex.com/ e deixar uma maquina exclusivamente com os meus filmes e series de TV. O Plex tem suporte ao UPnP porem não suporta legendas e alguns formatos de vídeos utilizando ele.

Minecraft: Corrigindo o erro java.lang.UnsatisfiedLinkError: liblwjgl.so: classe ELF errada: ELFCLASS32

minecraft-logo

Executando o minecraft no Ubuntu 13.04 aparece o erro no terminal:

erro-minecraft

O erro é porque o java não esta encontrando algumas LIB para executar o jogo.Para arrumar o erro temos 2 alternativas:

1 – Criar um shell script para executar o minecraft

 #!/bin/bash
 export LD_LIBRARY_PATH="/usr/lib/jvm/java-7-oracle/jre/lib/amd64"
 java -Xmx1024M -Xms512M -cp minecraft.jar net.minecraft.LauncherFrame
 

2 – Configurar o ld.so.conf.d para carregar automaticamente sem a necessidade do shell script.

Cria o arquivo /etc/ld.so.conf.d/java.conf com o seguinte conteúdo:

 /usr/lib/jvm/java-7-oracle/jre/lib/amd64
 

Bom Jogo :)

Referencia: http://askubuntu.com/questions/100751/minecraft-in-jdk-1-7-0-u2-x64

Migrando do DreamHost para DigitalOcean

digitalocean-horizontal-eps

Sempre foi usuário do DreamHost, desde de 2007, utilizava o seu plano sem limites de transferência e de utilização de espaço. Porem o meu Blog e um site que estou em desenvolvimento começaram a ter problemas de velocidades. Nessa época comecei a analisar a contratação de um VPS para migrar o site porem, para projetos simples não valia pagar mais que 15 dólares ao mês.

Foi ai que resolvi tentar o VPS do próprio DreamHost, tudo funcionou perfeitamente até o primeiro reboot automático da minha VPS, simplesmente porque passei dos 300MB de memoria contratados. Como assim o DreamHost simplesmente reiniciam a maquina, tinha que chegar ao máximo de memoria e deixar o Linux fazer SWAP (Infelizmente o DreamHost não habilitar o SWAP) ou deixar o Linux se virar com a memoria que ele tem. Aumentei o plano para 400 MB que chegou aos 20 ao mês porem os reboot continuavam.

Pesquisando na Internet achei o DigitalOcean uma nova empresa que para todos os planos oferecem SSD e com um preço inicial de 5 dólares ao mês. Acabei migrando todos os meus dados para esse novo servidor e estou muito feliz com o desempenho. O plano que escolhi tem somente 512 de RAM para segurar o Mysql e Apache porem, a DigitalOcean deixa você criar SWAP utilizando o próprio disco SSD com isso a maquina anda fazendo SWAP mas como SSD é rapido você nem percebe a diferença de performance. Ainda mais que sou um Blog pequeno e com poucos acessos.

No final acabei ficando com 2 VPS e pagando o mesmo preço do DreamHost para a maquina compartilhada.

Fedora 18 e 19: Instalando Steam

O Steam funciona muito bem no Fedora 18 e 19, para a instalação dele vamos utilizar o repositório do Tom ‘spot’ Callaway que é Fedora Engineering Manager(http://fedoraproject.org/wiki/User:Spot). O único problema é que até o dia 16/01/2013 ele ainda não tinha liberado a ultima versão do Steam, mesmo assim o Steam funcionava sem problemas.

1 – Configuração do YUM

su
cd /etc/yum.repos.d/
curl http://spot.fedorapeople.org/steam/steam.repo >> steam.repo

2 - Instalação do Steam

su
yum update
yum install steam

Update: O repositório do ‘spot’ já esta sendo atualizado novamente.

Steam rodando no Fedora 18

Steam rodando no Fedora 18

Fedora 18 e 19: Instalando driver fglrx / catalyst

Se sua placa de vídeo ATI é da serie HD ou superior você pode utilizar esse tutorial. Se for inferior a AMD não da mais suporte e o RPM Fusion contem somente a ultima versão dos drivers.

Para você poder instalar os drivers da sua placa de rede no Fedora 18 e 19 é necessário executar os seguintes passos:

1 - Adicionar o RPM Fusion

su -c 'yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm'

2 - Instalar o pacote do RPM Fusion

su
yum install akmod-catalyst xorg-x11-drv-catalyst xorg-x11-drv-catalyst-libs.i686 gcc kernel-devel kernel-headers wget

3 – Gerar um novo initramfs

su
new-kernel-pkg --kernel-args=nomodeset --mkinitrd --dracut --update $(rpm -q --queryformat="%{version}-%{release}.%{arch}\n" kernel | tail -n 1)

4 – Reiniciar

reboot

5 – Removendo o logo “AMD Testing use only”

vi /etc/ati/signature

Apagar o que estiver no arquivo e colocar o seguinte conteudo

9777c589791007f4aeef06c922ad54a2:ae59f5b9572136d99fdd36f0109d358fa643f2bd4a2644d9efbb4fe91a9f6590a145:f612f0b01f2565cd9bd834f8119b309bae11a1ed4a2661c49fdf3fad11986cc4f641f1ba1f2265909a8e34ff1699309bf211a7eb4d7662cd9f8e3faf14986d92f646f1bc

O interessante de utilizar o RPM Fusion é que ele está com a ultima versão do driver, então quando sair uma versão mais nova vai ser posivel atualizar utilizando o yum sem dores de cabeça.

Referencia: http://www.forums.fedoraforum.org/showthread.php?t=155503
Referencia: http://askubuntu.com/questions/206558/how-to-remove-the-amd-testing-use-only-watermark-from-ubuntu-12-10

Compilando WRF serial no Ubuntu 12.04 Precise Pangolin LTS

Esse post tem como base em meu outro post, nesse mesmo blog: http://blog.tadeucruz.com/2012/05/compilando-wrf-serial-no-debian/, porem o texto aqui foi adaptado para o WRF compilar no Ubuntu 12.04 Precise Pangolin LTS.

Todos os programas/dependencias usando neste tutorial podem ser encontrado facilmente usando o Google, porem você pode fazer download deles aqui: http://tadeucruz.com/WRF/src . Estou colocando todos os programas neste diretório para facilitar e garantir a compilação do WRF. Faça o download de todos os arquivos que se encontra no link acima e salve em uma única pasta.

Importante, todos os programas compilados vão ser estar na pasta /home/tadeucruz/wrf/stuff/, então se deseja mudar o local de instalação modifique substitui todos os /home/tadeucruz/wrf/stuff/ pela a pasta desejada.

1 – Instalação das dependências do Debian.

apt-get install gfortran gfortran-4.6-multilib csh build-essential libcloog-ppl0 m4

2 – Instalação do HDF5 e suas dependências:

tar xvfz szip-2.1.tar.gz
cd szip-2.1
./configure --prefix=/home/tadeucruz/wrf/stuff/
make
make check
make install
cd ..
tar xvfz zlib-1.2.6.tar.gz
cd zlib-1.2.6
./configure --prefix=/home/tadeucruz/wrf/stuff
make
make check
make install
cd ..
tar xvfj hdf5-1.8.9.tar.bz2
cd hdf5-1.8.8
./configure --prefix=/home/tadeucruz/wrf/stuff/ --with-zlib=/home/tadeucruz/wrf/stuff --with-szip=/home/tadeucruz/wrf/stuff --enable-fortran --enable-cxx
make
make check
make install

3 – Instalação do NETCDF:

tar xvfz netcdf-4.1.3.tar.gz
cd netcdf-4.1.3
LD_LIBRARY_PATH=/home/tadeucruz/wrf/stuff/lib/:$LD_LIBRARY_PATH CPPFLAGS=-I/home/tadeucruz/wrf/stuff/include LDFLAGS=-L/home/tadeucruz/wrf/stuff/lib ./configure --prefix=/home/tadeucruz/wrf/stuff
make
make check
make install
cd ..

4 – Instalação do WRFV3.

4.1 Se tem a necessidade de compilar o WRFV3.3.1.TAR.gz

tar xvfz WRFV3.3.1.TAR.gz
cd WRFV3
export NETCDF=/home/tadeucruz/wrf/stuff/
export WRF_EM_CORE=1
export WRF_NMM_CORE=0
./configure
#Resposta serial usando o gfortran e logo depois escolha a opção 1
vi phys/module_cu_g3.F
## Procurar por: integer, dimension (8)
## Substituir por: integer, dimension (12)
./compile em_real
cd ..

4.2 – Usando a versão mais nova WRFV3.4.TAR.gz

tar xvfz WRFV3.4.TAR.gz
cd WRFV3
export NETCDF=/home/tadeucruz/wrf/stuff/
export WRF_EM_CORE=1
export WRF_NMM_CORE=0
./configure
#Resposta serial usando o gfortran e logo depois escolha a opção 1
./compile em_real
cd ..

5 – Instalação do WPS e suas dependências:

tar xvfz libpng-1.5.8.tar.gz
cd libpng-1.5.8
CPPFLAGS=-I/home/tadeucruz/wrf/stuff/include LDFLAGS=-L/home/tadeucruz/wrf/stuff/lib ./configure --prefix=/home/tadeucruz/wrf/stuff/
make
make check
make install
cd ..

unzip jasper-1.900.1.zip
cd jasper-1.900.1/
./configure --prefix=/home/tadeucruz/wrf/stuff/
make
make check
make install
cd ..
tar xvfz ncl_ncarg-6.0.0.tar.gz
cd ncl_ncarg-6.0.0/
cp config/LINUX.64.GNU config/LINUX
./Configure -v
#http://tadeucruz.com/WRF/Compilando-NCL.mp4
make Everything
make install

cd ..

5.1 – WPSV3.3.1.TAR.gz

export NCARG_ROOT=/home/tadeucruz/wrf/stuff/
export PATH=$NCARG_ROOT/bin:$PATH
export NETCDF=/home/tadeucruz/wrf/stuff/
tar xvfz WPSV3.3.1.TAR.gz
cd WPS
./configure
#Escolher Serial no GRIB2 usando gfortran.
./compile
cd ..

5.2 – WPSV3.4_r675.TAR.gz

export NCARG_ROOT=/home/tadeucruz/wrf/stuff/
export PATH=$NCARG_ROOT/bin:$PATH
export NETCDF=/home/tadeucruz/wrf/stuff/
tar xvfz WPSV3.4_r675.TAR.gz
cd WPS
./configure_old
#Escolher Serial no GRIB2 usando gfortran.
./compile
cd ..

6 – Pronto você já tem o WRF pronto para ser executado, porem antes de poder fazer isso você tem que exportar algumas variáveis de ambientes.

LD_LIBRARY_PATH_WRF=/home/tadeucruz/wrf/stuff/lib/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH_WRF:$LD_LIBRARY_PATH
export NCARG_ROOT=/home/tadeucruz/wrf/stuff/
export PATH=$NCARG_ROOT/bin:$PATH
ulimit -s unlimited

Serviio media server

Comprei uma SmartTV da Samsung e ela veio com um adaptador Wifi para ter acessos ao YouTube, FaceBook e etc.

Porem um dos melhores recursos na minha opnião é o suporte do UPnP pela a TV, com isso eu poderia eliminar um cado (HDMI) quando eu ia assistir algum filme/serie na TV. Uma solução bastante popular é o ps3 mediaserver http://www.ps3mediaserver.org/ que funciona, porem ele não permite, por exemplo, avançar o filme ate um ponto. Uma outra solução bastante interessante é o software Serviio http://www.serviio.org/ que faz as mesmas coisas que o ps3 mediaserver porem é mais simples de configurar e permite avançar os filmes e carrega automaticamente os subtitles e enviar junto com o filme para a TV.

O Serviio é um ótimo software e vem para complementar a lista do meu outros post sobre o mesmo assunto: http://blog.tadeucruz.com/2008/09/upnp-media-center/

Compilando WRF serial no Debian Squeeze

Todos os programas/dependencias usando neste tutorial podem ser encontrado facilmente usando o Google, porem você pode fazer download deles aqui: http://tadeucruz.com/WRF/src . Estou colocando todos os programas neste diretório para facilitar e garantir a compilação do WRF. Faça o download de todos os arquivos que se encontra no link acima e salve em uma única pasta.

Importante, todos os programas compilados vão ser estar na pasta /home/tadeucruz/wrf/stuff/, então se deseja mudar o local de instalação modifique substitui todos os /home/tadeucruz/wrf/stuff/ pela a pasta desejada.

1 – Instalação das dependências do Debian.

apt-get install gfortran gfortran-4.4-multilib csh build-essential libcloog-ppl0

2 – Instalação do HDF5 e suas dependências:

tar xvfz szip-2.1.tar.gz
cd szip-2.1
./configure --prefix=/home/tadeucruz/wrf/stuff/
make
make check
make install
cd ..
tar xvfz zlib-1.2.6.tar.gz
cd zlib-1.2.6
./configure --prefix=/home/tadeucruz/wrf/stuff
make
make check
make install
cd ..
tar xvfj hdf5-1.8.8.tar.bz2
cd hdf5-1.8.8
./configure --prefix=/home/tadeucruz/wrf/stuff/ --with-zlib=/home/tadeucruz/wrf/stuff --with-szip=/home/tadeucruz/wrf/stuff --enable-fortran --enable-cxx
make
make check
make install

3 – Instalação do NETCDF:

tar xvfz netcdf-4.1.3.tar.gz
cd netcdf-4.1.3
LD_LIBRARY_PATH=/home/tadeucruz/wrf/stuff/lib/:$LD_LIBRARY_PATH CPPFLAGS=-I/home/tadeucruz/wrf/stuff/include LDFLAGS=-L/home/tadeucruz/wrf/stuff/lib ./configure --prefix=/home/tadeucruz/wrf/stuff
make
make check
make install
cd ..

4 – Instalação do WRFV3.

tar xvfz WRFV3.3.1.TAR.gz
cd WRFV3
export NETCDF=/home/tadeucruz/wrf/stuff/
export WRF_EM_CORE=1
export WRF_NMM_CORE=0
./configure
#Resposta serial usando o gfortran e logo depois escolha a opção 1
./compile em_real
cd ..

5 – Instalação do WPS e suas dependências:

tar xvfz libpng-1.5.8.tar.gz
cd libpng-1.5.8
CPPFLAGS=-I/home/tadeucruz/wrf/stuff/include LDFLAGS=-L/home/tadeucruz/wrf/stuff/lib ./configure --prefix=/home/tadeucruz/wrf/stuff/
make
make check
make install
cd ..

unzip jasper-1.900.1.zip
cd jasper-1.900.1/
./configure --prefix=/home/tadeucruz/wrf/stuff/
make
make check
make install
cd ..
tar xvfz ncl_ncarg-6.0.0.tar.gz
cd ncl_ncarg-6.0.0/
cp config/LINUX.64.GNU config/LINUX
./Configure -v
#http://tadeucruz.com/WRF/Compilando-NCL.mp4
make Everything
make install

cd ..
export NCARG_ROOT=/home/tadeucruz/wrf/stuff/
export PATH=$NCARG_ROOT/bin:$PATH
export NETCDF=/home/tadeucruz/wrf/stuff/
tar xvfz WPSV3.3.1.TAR.gz
cd WPS
./configure
#Escolher Serial no GRIB2 usando gfortran.
./compile
cd ..

6 – Pronto você já tem o WRF pronto para ser executado, porem antes de poder fazer isso você tem que exportar algumas variáveis de ambientes.

LD_LIBRARY_PATH_WRF=/home/tadeucruz/wrf/stuff/lib/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH_WRF:$LD_LIBRARY_PATH
export NCARG_ROOT=/home/tadeucruz/wrf/stuff/
export PATH=$NCARG_ROOT/bin:$PATH
ulimit -s unlimited