RandomBanner – Classe para mostrar banner aleatório em Imagem ou Flash

22 dezembro, 2009

Mais um post aqui, agora sobre uma classe em PHP que eu desenvolvi para mostrar banners aleatoriamente.

Anteriormente havia desenvolvido essa classe para um site que estou adaptando no WordPress, mas ela só funcionava com imagens. Hoje adicionei suporte a Flash, à pedidos, e resolvi divulgá-la.

Já postei no PHPClasses.org (uhu, minha primeira contribuição!), já abri um projeto no Freshmeat.net, por indicação do PHPClasses.org, e também estarei adicionando ao VivaOLinux (Minha segunda contribuição). Ainda não foi aprovado no PHPClasses.org, mas quando for, colocarei o link aqui.

Abaixo segue o código da classe. Após o código, mostro também um exemplo de uso. Os comentários estão em inglês, pois tive que traduzí-los para enviar pro PHPClasses.org

RandomBanner.php

<?php
/**
 * Class RandomBanner
 * - Show random banners (Image or Flash)
 *
 * @author              Jonathas Rodrigues <jonathas at archlinux dot us>
 * @copyright           2009, Jonathas Rodrigues
 * @version             1.5
 * @license             http://opensource.org/licenses/gpl-license.php GNU Public License
 */

class RandomBanner {

    private $content;

    private $links;

    private $height;

    private $width;

    private $banner;

    /*
     * This method adds a banner.
     * The associated values below, are the default ones for the parameters.
     * To add an image, $content and $link are necessary.
     * To add a Flash Banner, $content, $type and $pos are necessary, and
     * anything other than "img" must be associated to $type.
     * If you want the Flash Banner to be a sidebar banner, anything other than "top" must be associated to $pos.
     * The height and width for the top or sidebar Flash Banners can be changed below.
     * @access  public
     * @param   String $content
     * @param   String $link
     * @param   String $type
     * @param   String $pos
     * @return  void
    */
    public function setBanner($content,$link="nothing",$type="img",$pos="top") {

        $this->links[] = $link;
        $this->content[] = $content;

        if($type != "img") {

            if($pos == "top") {
                $this->height = "142";
                $this->width = "709";
            }
            else {
                $this->height = "371";
                $this->width = "117";
            }
        }
    }

    /*
     * This method randomizes the Banner
     * @access  private
     * @return  void
    */
    private function randomizeBanner() {
        $total = count($this->content);
        $total--;
        $this->banner = rand(0,$total);
    }

    /*
     * This method generates the banner's HTML.
     * It calls randomizeBanner(), finds out the file extension,
     * and if it is swf, it generates HTML to insert the Flash Banner.
     * If it is anything other than swf, it generates HTML to insert an image.
     * @access  private
     * @return  String
    */
    private function generateBanner() {

        $this->randomizeBanner();

        $ext = array_reverse(explode(".",$this->content[$this->banner]));

        if($ext[0] == "swf") {
            $result = "<object id=\"FlashID\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\"".$this->width."\" height=\"".$this->height."\">
                       <param name=\"movie\" value=\"".$this->content[$this->banner]."\" />
                       <param name=\"quality\" value=\"high\" />
                       <param name=\"wmode\" value=\"opaque\" />
                       <param name=\"swfversion\" value=\"9.0.45.0\" />
                       <!-- This param tag prompts users with Flash Player 6.0 r65 and higher to download the latest version of Flash Player. Delete it if you don’t want users to see the prompt. -->
                       <param name=\"expressinstall\" value=\"Scripts/expressInstall.swf\" />
                       <!-- Next object tag is for non-IE browsers. So hide it from IE using IECC. -->
                       <!--[if !IE]>-->
                       <object type=\"application/x-shockwave-flash\" data=\"".$this->content[$this->banner]."\" width=\"".$this->width."\" height=\"".$this->height."\">
                       <!--<![endif]-->
                       <param name=\"quality\" value=\"high\" />
                       <param name=\"wmode\" value=\"opaque\" />
                       <param name=\"swfversion\" value=\"9.0.45.0\" />
                       <param name=\"expressinstall\" value=\"Scripts/expressInstall.swf\" />
                       <!-- The browser displays the following alternative content for users with Flash Player 6.0 and older. -->
                       <div>
                       <h4>Content on this page requires a newer version of Adobe Flash Player.</h4>
                       <p><a href=\"http://www.adobe.com/go/getflashplayer\"><img src=\"http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif\" alt=\"Get Adobe Flash player\" width=\"112\" height=\"33\" /></a></p>
                       </div>
                       <!--[if !IE]>-->
                       </object>
                       <!--<![endif]-->
                       </object>
                       <script type=\"text/javascript\">
                       <!--
                       swfobject.registerObject(\"FlashID\");
                       //-->
                       </script>";

        }
        else {

            $result = "<a href=\"javascript:void(0);\" onclick=\"window.open('".$this->links[$this->banner]."');\">
                   <img class=\"banner\" src=\"".$this->content[$this->banner]."\" alt=\"Banner\" /></a>";

        }

        return $result;
    }

    /*
     * This method shows the random Banner.
     * @access  public
     * @return  void
    */
    public function showBanner() {
        echo $this->generateBanner();
    }

}

?>

example.php

<?php

require_once "RandomBanner.php";

$bannertop = new RandomBanner();

/* Parameters: $content,$link="nothing",$type="img",$pos="top"
 * To insert a Flash Banner, it's not necessary to set the link here,
 * as it's set in the Flash file itself.
 * You need to tell the method that the file is a Flash file,
 * setting anything other than "img" in the type parameter.
 * It can be anything. I wrote "flash" down here, so it's a better example.
 * If no position is specified for the Flash Banner, it's understood that it's a top Banner,
 * and it'll be generated with top Banner's width and height.
 * When you insert a Flash Banner in the sidebar, after the "type" parameter,
 * you have to write anything other than "top", so it'll be understood that's not a top Flash Banner,
 * but a sidebar Flash Banner, and it'll be generated with sidebar Banner's width and height.
 * Below, there's an example of how to set Flash and some images as Banners:
*/

$bannertop->setBanner("banners/banner1.swf","","flash");
$bannertop->setBanner("banners/header_ad1.jpg","http://www.example1.com");
$bannertop->setBanner("banners/header_ad2.jpg","http://www.example2.com");
$bannertop->setBanner("banners/header_ad3.jpg","http://www.example3.com");

$bannertop->showBanner();

unset($bannertop);

?>

Shell Script de Backup para MySQL

11 dezembro, 2009

MySQL

Nas últimas semanas, estive envolvido no desenvolvimento de um sistema, e tive que desenvolver um script de backup para o banco de dados dessa empresa.
O script desenvolvido em Shell Script, possui as seguintes features:

  1. Efetua dump do banco MySQL em um arquivo .sql
  2. Compacta em bzip2
  3. Tira MD5Sum do arquivo, para checagem de integridade
  4. Salva em pasta de backup com data e hora no filename.

Está licenciado pela GPL, então resolvi fazer um post aqui falando sobre ele.

Ok, eu poderia ter feito esse dump e backup com alguma classe em PHP do PHPClasses, pra já integrar com o sistema, mas não gostei de nada que encontrei.. todos os códigos era muito gigantescos, e eu sigo declaradamente a filosofia KISS (Keep it simple, stupid!).

Cheguei até a desenvolver uma classe para compactar em Bzip2, e outra pra fazer o mysqldump, mas era o PHP chamando uma função no sistema (Linux/FreeBSD) pela função system().
Além disso, quando fui testar no servidor essa classe em PHP que eu tinha desenvolvido, o apache roda como o usuário “nobody”,
que não tem permissão para usar o mysqldump do sistema, então ele estava criando um dump de 0kb. Ou seja, não funcionou.

Achei melhor escrever um shell script, para rodar como o usuário do servidor, em vez do usuário do apache.
Esse script pode ser configurado para ser executado periodicamente pelo cron do servidor.
Testei-o por SSH, e o dump já não foi mais de 0kb. Funcionou satisfatoriamente ;)

Abaixo segue o código na íntegra:

#!/bin/bash
#
# JonMyBackup
# Script de Backup para MySQL
# 2009.11.26
#
# - Efetua dump do banco MySQL em um arquivo .sql
# - Compacta em bzip2
# - Tira MD5Sum do arquivo, para checagem de integridade
# - Salva em pasta de backup com data e hora no filename.
#
# @author              Jonathas Rodrigues <jonathas arroba archlinux ponto us>
# @copyright           2009, Jonathas Rodrigues
# @version             1.0
# @license             http://opensource.org/licenses/gpl-license.php GNU Public License

# Data: Ano-Mes-Dia-Hora-Minuto-Segundo-Abreviação alfabética do fuso horário (por exemplo, BRT)
data=`date +%Y-%m-%d-%H-%M-%S-%Z`

# Variáveis de conexão
host="nomedohostaqui"
user="nomedousuarioaqui"
password="senhaaqui"
dbname="nomedobancodedadosaqui"

# Variáveis do script
backupdir="/home/jonathas/backupdb"
tmpdir="/tmp"
bz2file=$dbname-$data.tar.bz2
dump=$dbname.sql
md5file=$dbname-$data.md5

clear
echo '####################################'
echo '#       JonMyBackup v1.0           #'
echo '#  Script de Backup para MySQL     #'
echo '#          2009.11.26              #'
echo '####################################'
echo

# Bloqueando execução como root
if [ `whoami` == 'root' ];then
  echo 'Por favor, por questão de segurança, não rode este programa como root!'
  exit 1
fi

# Função para fazer o dump do banco de dados em um arquivo .sql
dumpDB() {

  # Checando se o diretório temporário existe. Se não, criando um.
  if [ -e $tmpdir ]; then
    echo 'Diretório temporário ok...'
  else
    echo 'Criando diretório temporário...'
    mkdir $tmpdir
  fi

  # Executando dump
  echo 'Executando dump...'
  /usr/bin/mysqldump --opt -h $host -u$user -p$password $dbname > $tmpdir/$dump

}

# Função para compactar o dump para tar.bz2, com a formatação correta da data no filename
bzip2Compress() {

  cd $tmpdir &&
  echo 'Compactando dump...' &&
  tar cjf $bz2file $dump &&
  rm $dump

}

writeMD5Sum() {

  echo 'Criando MD5SUM...'
  echo `md5sum $bz2file` > $md5file

}

moveFiles() {

  # Checando se o diretório de Backup existe. Se não, criando um.
  if [ -e $backupdir ]; then
    echo 'Diretório de Backup ok...'
  else
    echo 'Criando diretório de Backup...'
    mkdir $backupdir
  fi

  mv $tmpdir/$md5file $backupdir &&
  mv $tmpdir/$bz2file $backupdir &&
  echo 'Backup feito com sucesso e armazenado no diretório de Backup!'

}

main() {
  dumpDB
  bzip2Compress
  writeMD5Sum
  moveFiles
}

main

Caso tenham algo a dizer, ou acrescentar ao script, por favor deixem nos comentários. Obrigado.


Testando Sistemas Operacionais através de Máquinas Virtuais (VMs)

18 outubro, 2009

Android

Escrevo neste artigo, parte da minha experiência com máquinas virtuais e screenshots de alguns sistemas que já testei dessa forma.

Antes de tudo, o que é uma máquina virtual?

Uma máquina virtual é como se fosse um novo computador (um computador virtual) dentro do seu computador, ou seja, você pode rodar um outro
sistema operacional em uma janela (ou tela cheia) dentro do sistema operacional que você está usando atualmente.

Dessa forma, é possível usar 2 ou mais Sistemas Operacionais ao mesmo tempo. A máquina virtual compartilha recursos do seu computador;
por exemplo, você pode alocar parte da sua memória RAM para ser usada pela máquina virtual, e 1 dos núcleos do seu processador.
O conceito é bem interessante, pois também não é preciso que seja feito particionamento do HD, nem instalação de um gerenciador de boot para escolher em qual sistema entrar;
em vez disso, é alocado também um espaço no HD para o HD virtual, que fica armazenado em um ou mais arquivos usados pela máquina virtual.

Outro ponto interessante sobre esse conceito, é que é possível fazer backup desse aquivo que representa o HD virtual com o sistema instalado, e caso aconteça algum problema no sistema instalado na máquina virtual, o que tem que ser feito é simplesmente sobrescrever esse arquivo pelo o do Backup.
Isso é muito útil para escolas com aula de informática ou para cursos de informática, por exemplo, em que os alunos tendem a querer instalar todo tipo de porcaria nos computadores. Caso precisasse, seria fácil restaurar o sistema, pois não precisaria formatar e instalar tudo denovo, só copiar novamente o arquivo que contém o HD virtual.

Outra idéia de uso, seria ter diversas máquinas virtuais configuradas num mesmo computador, e o estudante de um determinado curso poderia entrar no sistema já personalizado para o curso que ele faz, com os programas que ele precisa usar nesse curso, ou seja, uma imagem de máquina virtual personalizada para cada curso. (Como no Instituto Infnet do Rio de Janeiro)

Além disso, uma imagem de máquina virtual pode ser compactada e distribuída pela internet para testes de um novo sistema operacional, sem precisar que o usuário formate ou particione seu computador para testá-lo.

A virtualização tem tido bastante uso e importância, ainda mais atualmente por causa do grande uso e popularização do conceito de Computação na Nuvem (Cloud Computing), o qual falarei melhor em um próximo artigo.

Para podermos usar máquinas virtuais, devemos ter um dos diversos programas de virtualização existentes.
Os dois mais usados são o

VMWare
VMWare


e o


Virtualbox
Virtualbox

Ambos existem em versão Windows e Linux.

Quando comecei a testar máquinas virtuais, comecei pelo VMWare (Hoje em dia só uso o Virtualbox), e o site Tuxdistro é um site que eu recomendo e que foi onde eu baixei diversas imagens de máquinas virtuais para testar.

Para testar as máquinas virtuais desse site, é necessário efetuar o download do VMWare Player, que é gratuito.
Pelo VMWare Player, não é possível criar máquinas virtuais, só rodar as já existentes, previamente criadas.

Para criar máquinas virtuais, é necessária a versão paga do VMWare Workstation.
Nesse caso, é preferível utilizar o Virtualbox, que é gratuito e permite a criação de máquinas virtuais.
Ps: Além do Virtualbox ser gratuito, ainda possui uma versão open source.

Alguns dos sitemas que testei foram:

Zenwalk

Baseado no Slackware, e feito para ser bem rápido e leve. Instalei recentemente em um pendrive, e gostei bastante.
Irei instalá-lo em um Netbook algum dia, quando comprar um. ;)

Zenwalk

ReactOS

O ReactOS foi/está sendo feito para ser um clone open source do Windows.
Até tela azul ele tem, acreditam? :-O Nesse screenshot pode ser visto que, como eu expliquei anteriormente sobre virtualização, compartilhei 512MB de RAM para essa máquina virtual

ReactOS

Windows 7

Ou seria KDE 3.5? o_0 haha
Fontes sobre o que eu to falando: Internetling e Quartoestudio
Se não é plágio, então o que é? O KDE 3.5 existe já há muito mais tempo que o Windows 7.

Windows 7

Solaris 10

Sistema Operacional da Sun, que abordei em um artigo anterior. Não precisei fazer uma partição no HD para instalá-lo para testes; simplesmente instalei em uma máquina virtual. ;)

Solaris 10

Nexenta GNU/OpenSolaris

Como se fosse uma “distribuição Linux”, só que do OpenSolaris, que usa o APT como gerenciador de pacotes.

OpenSolaris

Mandriva One 2009

Distribuição Linux que nasceu da fusão da Brasileira Conectiva com a Francesa Mandrake.

Mandriva

Haiku

Projeto open source que tenta dar continuação ao descontinuado Sistema Operacional BeOS.

Haiku

BackTrack 4

Distribuição Linux voltada à testes de rede, segurança, invasão…
Vem com KDE 3.5 e FVWM como gerenciadores de janela.

BackTrack4

Mac OS X Leopard

Sistema Operacional baseado no Unix (BSD para ser mais exato), queridinho dos Designers.
Não foi tão “WOW” pra mim, comparado ao sistema Linux que uso em meu PC. (Marketing é tudo, não acham?)

MacOSX

Android

Sistema Operacional do Google, que não deixa de ser um Linux.
O Android foi desenvolvido para ser utilizado em Smartphones e dispositivos móveis.

Android

Para mais screenshots que tirei, visite meu Set de screenshots no Flickr


Software Open Source no Windows: Um passo em direção à liberdade

10 outubro, 2009

Escrever sobre tecnologia é sempre um prazer; só preciso encontrar o tempo e a motivação necessários.
Hoje venho lhes falar sobre software Open Source (Código aberto) no Windows.

Sei que a maioria dos meus posts são sobre Linux, mas hoje gostaria de falar sobre esse tema, pois… bem, a explicação é a seguinte:

Você é um usuário de Windows e gostaria que ele fosse de certa forma melhor, ou que houvesse alguma alternativa a ele.

Você se considera sem saída e aceita que mesmo não gostando, tem que usar o Windows.

Você lê em alguns lugares, algumas pessoas ou artigos falando sobre um tal de Linux, ou algo chamado Software Livre, mas não sabe bem como isso é a fundo.
Mesmo lendo que não existem Spywares, nem Adwares, nem Vírus no Linux, você ainda cultiva um certo medo de mudança ou medo do desconhecido, e não quer testá-lo.

Dúvidas surgem na sua cabeça; você pensa que isso é muito difícil de usar ou até, quem sabe, pensa em deixar o Windows e seus problemas e começar a usar esses programas chamados de “Software Livre”, mas não tem a coragem necessária para instalar um Linux, ou não sabe como fazer para rodar um LiveCD, ou não quer mergulhar logo de cabeça nesse novo mundo.

Para você escrevo esse artigo, apresentando alternativas aos softwares que você utiliza no Windows.
Os programas que venho a apresentar aqui são de graça, não contém Spywares, nem Adwares, nem Vírus, pois são Open Source ou Software Livre.
Obs: Open Source e Software Livre não significam a mesma coisa, mas não vou entrar nesse assunto, pois não é o objetivo deste artigo, já que não é a minha intenção confundir ainda mais aqui.

Alguns desses softwares talvez você até já conheça e utilize no Windows, por serem bastante conhecidos.

A minha intenção com este artigo, é que você conheça e vá se acostumando com os softwares que você utilizaria no Linux, ao usá-los desde já no Windows.
Isso fará com que uma possível futura migração seja a mais suave possível.

Abaixo listo alguns desses softwares:

Mozilla Firefox

Este é o navegador que vem por padrão na maioria das distribuições Linux. É muito mais seguro e personalizável que o Internet Explorer que vem por padrão no Windows, além de seguir muito melhor os padrões do W3C que o Internet Explorer.
Download aqui

Pidgin

Com o pidgin, você pode se conectar não só ao MSN, mas também a diversas outras redes, como AIM, Yahoo, ICQ, Facebook, etc. ao mesmo tempo!
Download aqui

Mozilla Thunderbird

Do mesmo pessoal do Firefox, o Thunderbird é o cliente de E-Mail para substituir o Outlook no Windows.
Download aqui

OpenOffice.org

O OpenOffice ou BROffice, é um software que substitui o Microsoft Office no Windows. Com o OpenOffice, você não precisa pagar uma licença para ter o Microsoft Office, e pode ter programas compatíveis com o Word, Excel, Powerpoint, etc. de graça! Além de aceitar o formato OpenDocument (ODF), que está virando padrão oficialmente em diversos lugares. Talvez possa não ser tão bom para usuários avançados do pacote da Microsoft, por não ter algumas funções que este possui, mas se você utiliza só o básico como eu, não terá nenhum problema.
Download aqui

Audacity

Audacity é um software para gravação de audio, onde você pode também recortar músicas e colar diversos pedaços de várias músicas, além de aplicar diversos efeitos, e etc.
Download aqui

GIMP

Se você tem um Photoshop pirata instalado no Windows só pra recortar e redimensionar fotos, tirar espinhas, e coisas do tipo, o GIMP é uma boa escolha para você.
Download aqui

7-Zip

Esse software é altamente recomendado por mim. Compacta e descompacta arquivos .ZIP, descompacta arquivos .RAR, compacta e descompacta arquivos .7z, e muitos outros formatos. Você não precisa do WinZip nem do WinRAR instalados no Windows. Instale o 7-Zip e não seja mais incomodado com mensagens sobre licença, expiração, e coisas do tipo.
Download aqui

Por agora é isso. Quem tiver mais dicas de softwares que sejam Open Source e/ou Software Livre e rodem em Windows e Linux, pode dizer nos comentários, que eu adiciono na lista e deixo os créditos da contribuição.

Fonte: http://www.opensourcewindows.org


Symantec Q&A – Enterrando de vez um banco de dados antigo

18 julho, 2009

Achei que deveria escrever este artigo sobre esse banco de dados, para ajudar outras pessoas que algum dia possam ter o mesmo problema.
Como não encontrei muito pela internet sobre como converter os dados dele para algum banco de dados atual, escrevo aqui como fiz.
O Symantec Q&A (Questions & Answers) foi um banco de dados usado lá por meados de 1985-1990 e algo, e rodava em MS-DOS (credo).

Q&A

Recentemente comecei um projeto: estou desenvolvendo um sistema para uma empresa de venda de Navios, e esse sistema substituirá o Q&A por PHP/MySQL nessa empresa. Então tive que exportar os dados do Symantec Q&A deles para um formato que pudesse ser importado para o MySQL.

Como aqui no meu notebook uso o Arch Linux, primeiro abri o programa dentro do Prompt do MS-DOS no Windows XP instalado no Virtualbox. Depois, me lembrei do dosemu, que emula o MS-DOS no Linux, e me daria a possibilidade de abrir o Q&A sem precisar rodar o Windows XP no Virtualbox. Então instalei aqui o dosemu, e passei a utilizá-lo. Funciona da mesma forma que o Wine, ou seja, no Wine o comando seria “$ wine Programa.exe“; no dosemu, para rodar um programa, é da mesma forma: “$ dosemu Programa.exe“, e só.

Após rodar o Q&A pelo dosemu, para exportar o banco de dados de DTF (Formato do Q&A) para algum formato a ser importado para o MySQL, primeiro tive que ir em File->Utilities->Export data, e ali selecionei o formato dBase III. Em “Export to”, é só entrar com o filename para exportação e colocar a extensão .dbf (Extensão do dBase).

À partir daí, comecei a pensar em como abrir esse arquivo do dBase e exportá-lo para algo como .CSV ou .ODS (.xls do MS-Excel para os que não conhecem o OpenOffice.org).
Como no Arch Linux temos o ótimo AUR à nossa disposição, fui buscar algum pacote para fazer isso pra mim. Acabei encontrando os pacotes dbf e libdbf, que estavam como órfãos (Sem nenhum mantenedor). Então, notei também que o PKGBUILD deles estava com alguns erros, e acabei adotando esses pacotes, me tornando mantenedor dos mesmos, e pude modificar seus PKGBUILDs para ficarem corretos.

Após dar o $ makepkg e gerar os pacotes, com o simples comando

$ dbf –csv 1CLIENTS.csv 1CLIENTS.dbf

pude converter de dBase para .csv, podendo assim posteriormente abrir no OpenOffice.org, editar e organizar os campos.
Obs: –csv tem dois traços. O WordPress junta esses dois traços em um só, por isso ficou errado acima

Depois disso foi só modelar o banco de dados usando o PowerArchitect, criar as tabelas no phpMyAdmin, organizar tudo no OpenOffice e importar os arquivos .csv com os dados pelo phpMyAdmin.

Obs: Existe uma forma mais simples de converter o .dbf para .csv, que é abrindo o .dbf diretamente pelo OpenOffice.org Calc e salvando como .csv. Porém, fazendo isso alguns campos não ficaram tão corretos para mim. Então, preferi usar o .csv gerado pelo pacote chamado dbf.

Adeus Symantec Q&A.
Fiz uma boa ação ao mundo ;)


A praticidade de um Mouse Bluetooth no GNU/Linux

16 maio, 2009

        Gostaria de falar nesse artigo, sobre o novo mouse que eu acabei de comprar, e como foi fácil fazê-lo funcionar no Linux. O modelo é o Navigator 900 Bluetooth Mouse, da Genius.

Genius Navigator 900

Genius Navigator 900

        Sempre descartei a possibilidade de ter um mouse wireless, porque teria que conectar aquele transmissor na USB, e se fosse pra conectar algo na USB, então porque não usar logo um mouse USB com fio? Além daquele conector pra mouses wireless ocupar uma USB, ainda ficava feio, algo sempre presente ali no Notebook, pra fora..

        Pensando assim que comecei a pensar em adquirir um Mouse Bluetooth, em vez de um mouse Wireless, já que meu Notebook (Dell Inspiron 1525) tem bluetooth interno, e não precisaria conectar nada na USB, não precisaria daquele transmissor que os mouses wireless tem.. Tá bom, sei que pode vir um engracadinho e comentar aqui que bluetooth também é wireless (sem fio).Ok, vocês sabem do que eu estou falando aqui quando eu digo “mouse wireless”; Estou falando dos mouses wireless que não são bluetooth.

Sobre o mouse

Desempacotando o mouse:

Desempacotando

        O mouse Genius Navigator 900 vem com um manual em diversos idiomas, ensinando como conectar no Windows e MacOSX, e funciona com 2 pilhas AA, que já vem inclusas. Possui resolução de 800dpi. Na verdade, não achei ele tão preciso.

Pilhas

        O mouse custou R$69,00, com 1 ano de garantia, na RioCraft, que fica na Av. Rio Branco, 156 (PromoInfo). Ainda não sei qual é a duração das pilhas nele, pois comprei recentemente.

        Ele é bem compacto, e nessa foto abaixo, parece que o meu mouse anterior que comprei em Asunción é gigantesco, mas é o Genius que é pequeno mesmo, e faz o outro parecer gigante. Haha

(Sorry about the flash)

Darth Vader e Jango Fett. haha

Darth Vader e Jango Fett. haha

A configuração do sistema

        Enfim, aqui no meu Notebook, uso o Arch Linux, e estou muito satisfeito com a distro. Já utilizava o Bluetooth antes de comprar esse mouse, para ouvir música com um headphone da Nokia que veio junto com meu celular, e também para passar algumas músicas e imagens do Notebook pro celular, e vice-versa. (Talvez depois possa escrever um artigo mostrando como conectar o headphone bluetooth para usar no GNU/Linux)
Tenho os seguintes pacotes instalados, relacionados a Bluetooth:

- bluez
- gnome-bluetooth
- libbtctl
- blueman
- python-pybluez
- gnome-vfs-obexftp (Disponível no AUR)

        No arquivo “/etc/rc.conf”, que é o arquivo de configuração central do Arch Linux, no array de daemons, tenho adicionado o serviço @bluetooth, com uma arroba na frente, pra que o bluetooth seja inicializado em background na hora do boot.

        Utilizo o Gnome aqui, e em “Aplicativos de sessão”, ou seja, os programas que o Gnome carrega quando ele inicia, está configurado para carregar o “blueman-applet”.

        Após o Bluetooth ter sido inicializado no boot, e o Blueman ter sido carregado na inicialização do Gnome, um ícone dele ficará na tray.

Configurando o mouse bluetooth no GNU/Linux

        Agora é só colocar as pilhas dentro do mouse ligá-lo no powerswitch que ele possui, apertar o botão connect dele, e no sistema, clicar no ícone do Blueman (Você pode fazer isso com o touchpad). Isso fará com que seja aberta a tela de Dispositivos Bluetooth. Lá irá ser detectado o mouse.

Dispositivos Bluetooth

        Então, é só clicar com o botão direto em cima, e clicar para “Ligar Serviço de Entrada”. Tendo feito isso, aparecerá o status “Conectando”, e logo depois “Sucesso!”, na barra de status da janela. Agora, com o dispositivo selecionado, é só clicar na estrela, para deixá-lo como Confiável.

Área de Trabalho

Desfrute de sua área de trabalho mais organizada, com menos fios.

Pra mim, só falta colocarem em uso comercial a eletricidade sem fio. É algo que espero ansiosamente.
Bem, para não dizerem que eu to viajando, aqui vão duas reportagens sobre isso:

http://tinyurl.com/qhae5w
http://tinyurl.com/ov4×67


Jude, a IDE para modelagem UML, no Linux

14 fevereiro, 2009

Hello people! Após quase um ano sem postar no meu blog, vi que ele continua sendo bastante acessado, e resolvi tentar voltar a postar nele.. tive que parar por falta de tempo (Faculdade, Estágio, etc..), mas agora vou tentar voltar a postar regularmente.

Enfim, esse semestre, tranquei minha faculdade (voltarei semestre que vem), pra poder fazer uma formação em Java na Infnet aqui no Rio de Janeiro, que é de Segunda a Sexta, de noite.. uns 3 meses e pouco.. essa formação contém 7 cursos:

- Projeto de Sistemas e Orientação a Objetos com UML
- Java Programming
- Java Web Applications
- Java Enterprise Applications
- Java Security
- Java Mobile
- Java Workshop

Mais sobre o curso:
http://tinyurl.com/dlw9fq

Então, como comecei essa semana o curso, comecei a ver UML.
O professor recomendou uma ferramenta para trabalhar com UML, chamada Jude, e nos passou a versão dela para Windows. Como eu uso Arch Linux aqui em casa, fui procurar saber se existia versão pra Linux.. Acabei descobrindo que ele é em Java, e no site tem disponíveis os arquivos .jar, ou seja, roda também no Linux. Obs: Não é OpenSource, é Freeware.

Site do Jude: http://jude.change-vision.com

Então, como um bom post para meu retorno ao mundo dos bloggers, resolvi escrever aqui sobre como fazer ele funcionar no Linux.

Instalando o Jude no Linux

Para poder baixar o programa, tem que ser feito o cadastro no site:
http://jude.change-vision.com/jude-web/download/index.html

Após ter se cadastrado e entrado na página de Download, procure onde tem o Jude Community, e baixe o arquivo ZIP, como por exemplo: jude-community-5_4_1.zip

Após feito o download, descompacte o arquivo e mova a pasta descompactada para /usr/local, por exemplo…

# mv jude_community /usr/local

Agora, abra seu gedit, kwrite, kate, vi, emacs, mousepad, leafpad, or whatever, e vamos criar um shell script pra inicializar o programa.

Esse arquivo que estamos criando tem que ter o seguinte conteúdo:

#!/bin/bash
java -jar /usr/local/jude_community/jude-community.jar &

Salve o arquivo com o nome “jude”. Vamos supor que você o salvou no Desktop.

Agora, temos que dar permissão pra esse arquivo poder rodar. Vamos fazer isso com o seguinte comando:

chmod +x /home/seunomedeusuario/Desktop/jude

Agora, vamos mover o arquivo pra pasta /usr/bin:

# mv /home/seunomedeusuario/Desktop/jude /usr/bin

Então, para rodarmos o programa, é só simplesmente apertar ALT+F2, e digitar jude

Depois também pode ser criado um ícone na área de trabalho e um no menu, as you wish.. Não abordei essa parte aqui, pois sempre abro pelo ALT+F2 mesmo.