Atalho para todas as configurações Windows 8

Usuários do Windows 8 e Windows 7 frequentemente tem que modificar as configurações de seus sistemas operacionais,  esta dica é para criar um atalho para todas as configurações ou  pelo menos a maioria delas.

São apenas 3 passos.

 

  1. Crie uma pasta no seu desktop com um nome qualquer.
  2. Clique com o botão direito nesta pasta ou clique F2 com a pasta selecionada para renomea-la.
  3. Adicione o nome da pasta com este conteúdo:  .{ED7BA470-8E54-465E-825C-99712043E01C}. 

 

Tenha uma atenção especial aos pontos no início e fim da linha, eles tem de ser adicionados.

Pronto será criado um atalho com todas ou a maior parte das configuração dos Windows 7 e  Windows 8.

Referência: http://forum.techtudo.com.br/perguntas/2643/ative-o-modo-deus-no-windows-7

 

 

Tags: , , , , ,

Trickle

Utilizando o trickle para limitar a velocidade de transmissão de arquivos

 

Hoje vou mostrar como limitar o download/upload de arquivos através da rede por linha de comando.  Logico  que existem várias formas de fazer e cada programa tem sua utilidade e seu uso.

Vamos dizer que você queira fazer o download de um arquivo .ISO do ubuntu  e queira limitar o download a 100kb por segungo.

Vou mostrar de duas formas:

Utilizando o wget

wget --limit-rate=100k http://www.mirrorservice.org/sites/releases.ubuntu.com//precise/ubuntu-12.04.2-desktop-amd64.iso

 Utilizando o trickle

trickle -s -d 100 http://www.mirrorservice.org/sites/releases.ubuntu.com//precise/ubuntu-12.04.2-desktop-amd64.iso

Os dois comandos fazem exatamente a mesma coisa, eles fazem o download do arquivo ubuntu e o colocam na pasta corrente onde o comando esta sendo executado.

Agora vou mostrar uma outra necessidade, preciso atualizar todos os pacotes da minha distribução e sabemos que tanto o apt-get como o aptitude utilizam toda a banda de download . Este seria o momento certo de utilizar o trickle , tendo em vista,  que o  wget não recebe outros programas como entrada padrão.

Atualizando os pacotes via aptitude utilizando somente 100kb da rede.

trickle -s -d 100 aptitude safe-upgrade -y

Com este comando todos os pacotes serão atualizados utilizando somente 100kb da rede até que todos os downloads sejam finalizados.

Este comando acredito que possa ser utilizado em  conjunto com qualquer outro que utilize a rede como entrada de dados.

Vamos testar então.

Fazendo um speedTest para testar se a limitação realmente esta funcionando.

Vou abrir meu browser  chrome na página do speedTest.net  para testar se a limitação realmente esta acontecendo.  O “2 > /dev/null” redireciona  os erros (stdout) de plugins para /dev/null , pois,   assim  não  ficarei vendo erros na tela :P

A saída  será  algo em torno de 0,520MB mais ou menos.

trickle -s -d 60 /opt/google/chrome/chrome http://www.speedtest.net/  2> /dev/null

Por hoje é isso, quer maiores informações ???

man trickle

Abraços.

Dinei

Tags: , , ,

Inicialização automática VMWare Workstation

Estou trabalhando em um projeto em que necessito de recursos de uma máquina virtual. Essa máquina virtual se encontra em um host “emprestado” de amigo de trabalho porque o recurso estava parado, o grande problema é que nessa época de chuvas aqui em minha cidade (Petrópolis/RJ) falta luz com certa frequência então a máquina  Host( máquina pai)  desliga o que acarreta que o guest ( máquina interna ) também some do planeta …..  :(

 

Por algumas vezes alguém vai até a máquina HOST e liga novamente mas como ninguém conhece a senha do HOST então a máquina GUEST não liga sozinha …. não assim não me resolve em nada.

Esse é o problema agora a solução.

 

Crie um script .bat  que nesse exemplo vou colocar na raiz do sistema em uma pasta chamada startup-script.

c:\startup-script\start-vmworkstation.bat

Com o conteúdo

 

echo "Iniciando  VMware"
echo "ping localhost para esperar os servicos do vmware iniciarem" 
#Esse tempo pode variar entao teste de acordo com o seu valor.
ping -n 60 127.0.0.1 

#Caminho de instalacao do VMware Workstation
cd "C:\Program Files (x86)\VMware\VMware Workstation"

echo "Iniciando vmware guest"
vmrun start "C:\Users\Administrator\Documents\Virtual Machines\linux\freebsd-db.vmx"

exit(0)

Bem temos agora um script para inicialização de nossa máquina virtual Agora temos que colocar na inicialização do Windows que no meu caso é um 2008 R2.

Vamos aos passos agora de maneira visual.

Inicializar -> executar -> Server Manager

iniciar Server manager

iniciar Server manager

Depois disso vamos criar uma nova tarefa .

Em configuration -> Task Scheduler -> Library

add_task_001

Clique com o botão direito no link Task Schedule Library

add_task_002

Clicando em create a  basic task para criar um novo agendamento.

Depois disso começamos a configurar nosso agendamento com um novo nome e um descrição.

Clique em next .

Próximo passo é escolher quando esse agendamento vai acontecer. Para meu propósito deverá ser na inicialização do sistema. Escolha “When the computer starts”.

add_task_004

 

Próximo passo  será escolher o que esse agendamento vai fazer, escolheremos inicializar um programa. Nosso .bat é um programa que cama outro programa….

add_task_005

 

Depois de escolhido que a ação vai ser abrir um programa vamos escolher onde esse programa se encontra.

add_task_006

Depois vamos finalizar na última tela mas tem um detalhe. Temos que marcar a opção “Open the Properties dialog for this task when I Click Finish” Isso que dizer que será aberto mais opções depois de finalizado nosso passo a passo.

Segue a tela.

add_task_007

E por último vamos marcar a opção que mesmo que ninguém faça o login  na máquina o nosso script vai ser inicializado automaticamente pelo windows 2008 r2 corretamente.

Segue a tela com a opção : “Run whether user is logged on or not”

add_task_008

 

Será necessário digitar o login/senha do administrador do sistema “Administrator” ou outro admin para finalizar essa tarefa.

 

Pronto em alguns poucos passos adicionamos um agendamento ao Windows dizendo que sempre que o windows inicializar com ou sem algum usuário fazendo o login nosso script vai inicializar nossa máquina virtual.

Por hoje é isso espero que ajude em alguma coisa.  Seguindo esse conceito pode ser feito também em outros windows modificando apenas a parte de agendamento da tarefa.

A parte de colocar o script no Task Scheduler foi meu camarada Vinicius Amaral ( @vcamaral ) que teve. Valeu Pinico.

Por agora é isso, grande abraço e até.

Dinei.

Tags: , , ,

Utilizando rsync + ssh

Bem hoje será uma nota rápida que tive que procurar ajuda no google ( obrigado amigão ) porque somente pelo manual não consegui resolver.

O problema: Uma das máquinas que precisava ser sincronizado o conteúdo via rsync + ssh não estava usando a porta padrão do ssh 22 e sim uma porta modificada que nesse exemplo será a 2200.

o que diz o manual

#man rsync 
....
 -s, --protect-args          no space-splitting; wildcard chars only
     --address=ADDRESS       bind address for outgoing socket to daemon
     --port=PORT             specify double-colon alternate port number
....

Só que para mim não funcionou. :(

a sintaxe é simples.

rsync -avz -e ssh  /var/www/html  usuario@host.destino.com.br:/var/www/

Porém dessa forma não funciona porque a porta do ssh não é a padrão então será necessário modifica-la ficando dessa forma.

rsync -avz -e ssh --rsh='ssh -p2200' /var/www/html  usuario@host.destino.com.br:/var/www/

Pronto resolvido agora o ssh utilizará a porta 2200 que é a porta correta.

Estou escrevendo esse post mais para poder ter um local de consulta posterior porque já precisei disso pelo menos umas três vezes.

Tenha uma ótima semana de trabalho amigos.
Fui….

Tags: , ,

Adicionar pacotes django no ubuntu

Fala galera,

Ainda estou vivo, embora sumido mas ainda estou vivo. Recentemente troquei de emprego mudei um pouco minha linha de trabalho, não estou trabalhando mais diretamente com desenvolvimento, agora estou trabalhando com uma linha de produtos voltadas para banco de dados. Neste momento não vou citar nomes mas acreditem que são bons otimos produtos.

Vamos ao que interessa esse post vai ser pequeno. Vou repassar um script em shell para instalar todos os pacotes disponiveis para django no sistema operacional ubuntu.

Fiz os testes no Ubuntu Maverick 10.10, pois fiz a instalação do zero na máquina hoje.

Segue o mesmo script em duas versões

#uma linha
aptitude search python-django | awk -F " " '{print $2}' |  while read package; do  sudo aptitude install -y $package ; done
####
## procuro todos os pacotes python-django, filtro com awk pelo nome do pacote
## depois percorro a lista de pacotes fazendo a instalação usando a flag -y ou seja yes "sim" para todas as pergutas
####
aptitude search python-django  |  awk -F " " '{print $2}' |  while read package
 do
       sudo aptitude install -y $package ;
 done

Isso é o suficiente para instalar todos os pacotes python django :D
Ubuntu é fantástico, fazer as instalações que poderiam levar horas com único script.

Grande abraço e bons estudos a todos.

Tags: , , ,

Utilizando svn em linha de comando

Estava trabalhando em projeto com o @Joe e como estavamos em lugares diferentes tinhamos que sincronizar nosso trabalho assim sempre que terminassemos um feature simples como uma página, um layout ou qualquer coisa simples mas funcional nós mandamos para o servidor e o outro poderia pegar as atualizações e seguir com seus próprios códigos.

Para que possamos fazer isso é necessário que nossos códigos estejam sob um servidor de arquivos que faz esse controle de versionamento e outras coisas.

Esse servidor é conhecido como subversion ( http://subversion.tigris.org/ ) ele nos dá inúmeras possibilidades como adicionar arquivos, remover arquivos, sincronizar, verificar updates, avançar para novas versões, retroceder para versões anteriores de arquivos e outras coisas mais.  Assim não precisamos ficar fazendo os malditos .old, .old1, .old2, .old3.

Depois dessa micro historinha vamos aos codigos.

Para fazermos o download de um projeto para trabalharmos teremos que ter um usuário e senha cadastrados junto ao servidor isso quem tem de fazer é o administrador do projeto.

Considerando que você tenha um usuário e senha valido no servidor vamos listar as pastas e arquivos do projeto.

# Lista a raiz do projeto
svn list svn://url/servidor
# Lista a pasta path do projeto
svn list svn://url/servidor/path

Seria básicamente um ls no servidor svn.

Agora vamos fazer o download ou melhor o checkout do projeto para nossa máquina para começarmos os trabalhos, afinal tempo é dinheiro.

#fazendo o download da pasta path para uma url local
svn co svn://url/servidor/path /url/onde/ficara/projeto

Caso você não esteja logado vai ser requisitado a senha e o usuário que você esta usando no momento na maquina local vai ser
passado como parametro para o checkout no servidor svn

Caso você tenha outro usuário cadastrado no servidor svn você pode passar esse usário como parâmetro.

svn --username outroUsuario co svn://url/servidor/path /url/onde/ficara/projeto

A cada novo commit (envio de codigos para o servidor svn) será criado um novo número de controle de versão (revision).  Pensando que poderiamos mandar um código incorreto(bugado) para o servidor e um companheiro queira pegar  uma versão anterior ou seja a ultima versão correta do projeto pois você ou alguém mandou um código bugado.
Vamos pedir ao servidor informações sobre o projeto para sabermos o número da última revisão.

#Descobrindo informações sobre o projeto
# o que interessa neste momento e saber qual o numero de revision
svn info svn://url/servidor/path
#Visto o numero da ultima revisão podemos escolher qualquer versão anterior a essa passando o -r no checkout
svn --username outroUsuario -r numerorevisao co svn://url/servidor/path /url/onde/ficara/projeto

Pronto temos os códigos todos em nossa máquina agora mãos a obra vamos trabalhar com codificação.

Quando terminarmos vamos precisar mandar nossa modificações para o servidor, para isso temos um comando bem bacana e simples.

#Voce pode commitar uma pasta inteira ou  um arquivo você escolhe
svn commit -m "Seu comentário ou justificativa para as mudanças do codigo isso vai para o log do commit"  /path/a/ser/commitado /path/arquivo/commitar

Podemos verificar todos os arquivos que estão modificados em seu computador e no servidor.

svn status -u path/a/ser/verificado

Com alguma frequência dois desenvolvedores modificam o mesmo arquivo quando isso acontecer o arquivo vai ser marcado como conflict
Para ver as diferenças é possivel fazer um

 svn diff  arquivoNovo arquivoVelho

Depois de ter corrigidos todos os erros basta marcar esse arquivo como resolvido.

 svn resolv  arquivoNovo

Logo

 svn resolved  arquivoNovo

Para depois fazer seu commit corretamente, agora como você vai resolver os conflitos do arquivo…. isso é com você …

E por ultimo e não menos importante podemos ver o commit das pessoas envolvidas no projeto além de seus comentários e arquivos modificados.

#Pegando a saida do log e redirecionando para o less caso seja muito grande esse log.
svn log | less

E para uma leitura completa do log escolha um revision r visto no log visualizado anteriormente.

svn -r  -v  log

Atenção a dicas básicas, nunca apague fisicamente um arquivo com nosso amigo rm, utilize

svn del /path/arquivo
#ou
svn rm /path/arquivo

#ou para pasta com recursividade
svn rm -r /path/past

E para adicição de arquivos ao projeto.

svn add /path/arquivo

#ou para pasta //Nao testado :(  

svn add -r /path/pasta

Acredito que com esses comandos básicos já de para se divertir a vontade com o subversion, aconselho sempre usar um servidor de controle de versão. Existem outros como o CVS, GIT dentre outros mais esses ainda não experimentei , quando o fizer posto aqui alguma coisa.

Abraços

Dinei

Tags: , , ,

Editando tags id3 com python

Ola a todos,

Hoje vou falar de um problema que muitas pessoas devem ter. Ao baixar uma música qualquer da internet os carinhas colocam o nome do site no Titulo da música, no artista e nos comentários mas como isso se o o arquivo esta com nome correto?
Eles usam as tags ID3, mas então o que é a tag ID3?

“A etiqueta ID3 (em inglês: ID3 Tag) é um conjunto de informações mais usados junto com o formato de áudio MP3. Ela permite armazenar informações como o título, artista, album, número da faixa, ou outra informação sobre o arquivo no próprio aquivo.” Wikipedia [1]

Depois de ler um pouco a respeito resolvi mudar as tags das músicas para que quando as estiver escutando apareçam os dados válidos como nome da música e do Artista que a canta. Eu uso o Rhythmbox[2] e este pode até ser integrado ao seu software para conversa instantanea como AMSN[4], PIDGIN[4] dentre outros. Fazer isso na mão seria muito cansativo e não divertido, solução …. python.

Para este script utilizei uma biblioteca não padrão do python o mutagen[5], este serve para mostrar/editar as tags ID3 das músicas em formato mp3.

De acordo com o exemplo do site bastam 4 linhas para abrir->modificar->salvar o titulo de uma música em formato mp3 em seu HD.

 
 from mutagen.easyid3 import EasyID3
 audio = EasyID3("sua_musica.mp3")
 audio["title"] = "Somente um exemplo no titulo"
 audio.save()

Agora vamos a meu script, não vou comentar pois o código já esta bem comentado.

 
#!/bin/env python 
#!-*- coding: utf-8 -*-
from sys import exit
from os import walk, path
from os.path import isfile, join

"""
@author: Valdinei dos Santos 
@twitter: http://twitter.com/valdineisantos 
@site: http://www.valdineidossantos.com/
@date: 16 Janeiro 2010
"""

try:
    from mutagen.easyid3 import EasyID3
except:
    print "Necessario instalar a biblioteca mutagen"
    print "Site: http://code.google.com/p/mutagen/"
    print "Python Setup Tools: easy_install mutagen"
    exit(1)


#Diretorio que vai ser pesquisado
directory_root = "/home/valdinei/Musica/Downloads/"

def getInformations(track):
        fileAtributes = dict()
        """
        O Padrão das músicas estavam "01 - Artista - Album.mp3"
        Nesta parte de Código vc deve se adequar a sua realidade mas isso é só trabalhar com strings.
        """
        #split por "- " me dará com resultado 3 strings
        trackNumber, artist, title   =  track.split("- ")

        #Que depois de tratadas serao retorandas como valor final
        fileAtributes["trackNumber"] =  trackNumber.strip() 
        fileAtributes["artist"]      =  artist.strip() 

        #Tratando a string como um lista. O .mp3 esta sendo ignorado pois pego tudo -4 casas do final
        fileAtributes["title"]       =  title.strip()[:-4]

        return fileAtributes 

"""
Caso tenhamos mais diretorios internos sera recursivo.
Mais sobre Walk em : http://docs.python.org/library/os.html#os.walk
"""
for (original,  directoryname, filenames) in walk (directory_root):
    filenames.sort()
    
    total = len(filenames)

    cont = 0;

    for filename in filenames:
        """
        Calculando a porcentagem de arquivos feitos
        (parcial * 100)/numero total de músicas
        """
        cont = cont +  1
        percent = round (cont * 100 / total )
        print "%02d%%" % percent

        info = getInformations(filename)
        
        #Verifico se o endereço do arquivo é valido realmente e se ele continua la.
        if isfile( join(original,filename) ):
            """
            Agora vamos começar a modificar as tags ID3 dos arquivos MP3 depois salva-los.
            """
            try:
                mp3 = EasyID3( join(original,filename) )
                mp3["title"] = info["title"] 
                mp3["artist"] = info["artist"]
                mp3["tracknumber"] = info["trackNumber"]

                #Salva as informações no arquivo
                mp3.save()
            except Exception, e:
                print "%s %s" % (e.__doc__, e )

print "Todos os Arquivos foram modificados"

E com isso suas mp3 agora vão ter o formato que você definiu que teriam. Atenção eu em momento algum modifiquei o nome físico do arquivo, somente as meta informações baseadas no nome que era o que eu tinha em mãos.

Não estou em momento nenhum incentivando a NINGUÉM baixar NADA da internet. A idéia original aqui era simplesmente python + programação e algumas boas práticas.

Algumas coisas que derrepente podem ter passados despercebidas foi o uso do os.walk, os.join, os.isfile todos importados no cabeçalho. Mas isso pode ser um outro assunto de post.

Seguem os links de referencia:

[1] Wikipedia : http://pt.wikipedia.org/wiki/ID3

[2] Rhythmbox: http://projects.gnome.org/rhythmbox/

[4] AMSN: http://www.amsn-project.net/ (esse projeto originalmente era feito por um brasileiro)

[5] PIDGIN: http://www.pidgin.im/

[6] Mutagen: http://code.google.com/p/mutagen/

Tags: , , , , , , ,

Themes Gnome com Ubuntu

Recentemente fiz a atualização do meu Ubuntu e resolvi instalar alguns temas bacanas nele.  Lendo um blog show de bola para ubuntu www.ubuntudicas.com.br encontrei um site de temas bacana.

Projeto Bisigi http://www.bisigi-project.org/?page_id=6

E como tinham muitos temas resolvi fazer um script para instalar :D, novidade né ?

Segue o script:

#!/bin/bash

#Verificando se a chave publica do projeto se econtra em sua listas de chaves
sudo apt-key list | grep -qi 'bisigi'

#Caso nao encontre sera adicionada
if [ $? -gt 0 ];  
then 
    echo 'Adicionando chave do ppa launch, isso pode demorar um pouquinho tenha paciencia :D'
    sudo gpg --keyserver hkp://keyserver.ubuntu.com:11371 --recv-key 881574DE && gpg -a --export 881574DE | sudo apt-key add -
fi

#Procurando a palavra bisigi(nome do site) no source list
grep -qi 'bisigi' /etc/apt/sources.list

#Caso nao encontre vai adicionar ao source list para que possa ser feito o download dos arquivos via aptitude depois
if [ $? -gt 0 ];
then
    echo "Adicionando os repositorios ao source list "
    sudo echo "## Thèmes du projet bisigi" >> /etc/apt/sources.list
    sudo echo "deb http://ppa.launchpad.net/bisigi/ppa/ubuntu karmic main" >> /etc/apt/sources.list
    sudo echo "deb-src http://ppa.launchpad.net/bisigi/ppa/ubuntu karmic main" >> /etc/apt/sources.list
fi

echo "Atualizando a lista de software com as novas modificacoes"
sudo apt-get update

clear
echo "Instalando os pacotes"
for themeName in "aquadreams-theme" "ubuntu-sunrise-theme" "bamboo-zen-theme" "step-into-freedom-theme" "tropical-theme" "balanzan-theme" "wild-shine-theme" "infinity-theme"  "showtime-theme" "exotic-theme"
do
    echo "==== Instalando o theme ${themeName} ==========="
    #Obrigado @Henter pela dica, simples é melhor que complexo!
    sudo aptitude install -y $themeName
    sleep 1
    clear
done

echo "Finalizada a instalação, para mudar para um dos themes instalados faça:"
echo "Clique no menu principal -> Sistema -> Preferencias -> Aparencia"
echo "Escolha entre os temas apresentados o que mais agrada e seja feliz"
echo " "
echo " "

echo "Blog: http://www.valdineidossantos.com"
echo "Twitter: http://twitter.com/valdineisantos"

echo " "
echo " "

Copie o código acima e salve com o nome installThemes.sh, ou outro nome qualquer que você quiser.

Para rodar este script basta executar o comando :

   sudo bash /local/onde/salvou/installThemes.sh

Espero que gostem.

Caso tenha algum bug, correção só mandar fiz esse script rápidinho só para passar para os companheiros de trabalho.

Abraços Valdinei.

Referencias:
http://www.ubuntudicas.com.br/?p=2232

http://www.bisigi-project.org

http://www.henter.org/2009/10/04/zen-python

Tags: , , , ,

Abrindo arquivos com vim

VIM
Vou postar algumas dicas sobre o VIM, um editor em linha comando.
Básicamente vou postar alguns comandos e como deixo certas funções habilitadas setando as mesmas no seu ~/.vimrc, estou considerando que o leitor saiba os comandos básicos de VIM como abrir arquivo, fechar arquivo, entrar em modo de inserção entrar em modo comandos etc.

Abrindo várias páginas ao mesmo tempo (colocando em buffer)

$vim arquivo1 arquivo2 arquivo3

Somente o primeiro arquivo fica exposto quando o vim estiver aberto, o restante dos arquivos fica em buffer. Para mudar para o próximo arquivo no nosso exemplo o arquivo2 em modo de comando (pressione )

:bn 

E para voltar ao arquivo anterior

:bp 

Mas eu não gosto muito desta maneira de trabalho, fico mais a vontade com abas :D, o vim também pode ter abas. Usando os mesmos arquivos como exemplo, utilizaremos a opção “-p”

$vim -p arquivo1 arquivo2 arquivo3

Pronto todos os arquivos estão aberto sendo somente o primeiro sendo exibido, mas se você perceber bem na parte superior vão existir abas com os nomes dos arquivos abertos e em buffer.
Para movimentarmos entre as tabs temos comandos também, o tabnext e o tabprev.

Em modo de comando digite.

:tabnext <enter>

E para voltar para tab anterior

:tabprev <enter>

Mas como prefiro usar uns atalhos de teclado vou postar uma maneira de fazer isso com uma tecla somente, vou utilizar o comando ‘map’ para mapear uma ação de teclado.
No arquivo ~/.vimrc entre com essas linhas de comando salve e feche.

map  <M-Left> :tabprev <CR>
map <M-Right> :tabnex <CR>

Agora com a combinação <alt>+<seta para direita> tenho o comando tabnext e para esquerda tenho o tabprev.
Os comandos:
map -> mapeando a ação do usuário.
M -> alt
Left/Right -> setas direita esquerda
-> Enter

Obs.: Tentei de varias formas fazer com que o atalho fosse alt+1 (número um é representado por Char-061 ficando <M-Char-061> ) e alt+2 (número dois é representado por Char-062 ficando <M-Char-062> ) mas não consegui então fiz com as setinhas mesmo. Ajudas serão bem vindas :D

Essa dica é pequena e rápida depois faço um compilado de mais alguns comandos e post aqui.
Abraços
Valdinei

Tags: , ,

Mensagens Diarias com o Fortune

Hoje vou falar sobre o Fortune, mas o que seria o fortune?  De acordo com o Man Page ” print a random, hopefully interesting, adage”  Imprimir algo interessante ao acaso, não sei se está é melhor tradução mas já deu para entender o que o texto quis dizer.

Ele é baseado nos biscoitos da sorte chineses (fortune cookies em inglês),  quando configurado pode mostrar uma mensagem de sua base de consulta ao fazer o login no terminal ou mesmo ao carregar o sistema operacional.

Para rodar o programa, caso ele esteja instalado claro,  basta chamar o comando:

$fortune
Você não precisa ser o melhor. Basta procurar fazer bem aquilo que faz, sem esperar recompensa ou castigo, simplesmente pelo prazer de fazer bem-feito, que se esgota no ato de fazer

--Adib Jatene

No meu caso instalei uma base de língua portuguesa e recebi como mensagem esta acima, minha máquina roda ubuntu e o fortune já estava instalado sendo assim para instalar a base de mensagens brasileira basta usar este comando:

$ sudo aptitude install fortune  fortune-mod fortunes-br

Para usar somente mensagens em português você pode indicar qual será a base de consulta ao chamar o programa.

$ fortune brasil
O trabalho e a perdicao das classes bebedoras.
-- Mike Romanoff

Como trabalho com alguns colegas que estão meio estressados pensei em colocar algumas mensagens estimulantes e divertidas nos servidores da empresa, então fiz uma pesquisa para encontrar o fortune para FreeBSD.

No FreeBSD encontrei o fortune instalado por padrão então bastava procurar por bases motivantes e divertidas :P

No repositorio  do BSD ( www.freebsd.org/ports/ ) encontrei algumas  como futurama, Bíblia Sagrada encontrei também em outras linguas como Russa e Italiana . Com as bases instaladas agora basta fazer aparecer quando o individuo logar por ssh/terminal criando um script shell

Quando fui editar o arquivo ~/.profile do FreeBSD já existia uma entrada para chamar o fortune.

#Padrão do BSD
[ -x /usr/games/fortune ] && /usr/games/fortune freebsd-tips

Ou de pode ser desta maneira também

if [ -a /usr/games/fortune ]; then
   echo " "
   /usr/games/fortune freebsd-tips
   echo " "
fi

Ótimo agora tenho como chamar o fortune passando como argumento uma base de dados. E você também pode criar sua própria base na comunidade viva o linux tem um post sobre isso explicando a criação e os argumentos que pode ser usados http://www.vivaolinux.com.br/artigo/Configurando-o-Fortune/ além é claro do man page http://linux.die.net/man/6/fortune.

Prontinho tudo instalado e funcionando.
Não posso me despedir sem mandar essa mensagem que recebi do fortune.

$ fortune -m 'win' brasil | less
P. Se o windows 98 fosse concessionária, que carro venderia?
R. BUG, é claro!!!
%
O windows 98 é o maior e mais mal feito vírus conhecido.
%
Se o seu windows não der problema, reclame com a Microsoft!
%
O windows não é ruim, esperem só ele ficar pronto...
%
Como transformar um Pentium em XT? Digite "win".
%
Chernobyl usava windows 95 para monitorar seus reatores.
%

heheheheh não foi eu quem disse nada disso foi os autores da base do fortunes hhehehehheheh

*Fontes

http://linux.die.net/man/6/fortune

http://www.vivaolinux.com.br/artigo/Configurando-o-Fortune/

http://www.freebsd.org/cgi/ports.cgi?query=fortune&stype=all&sektion=all

Tags: , , ,