segunda-feira, 10 de novembro de 2008
quinta-feira, 2 de outubro de 2008
Aprenda a programar em Java de graça pela web e com material da sun.

JEDI (Java Education and Development Initiative) é uma iniciativa para desenvolvimento e educação JAVA a distância. Onde o aluno terá ao seu dispor manuais, slides de apresentação das aulas, provas, exercícios e material de referência e vídeo-aulas. Contando ainda com os softwares, o treinamento de instrutores, o acesso a suporte e a lista de discussão da comunidade.
Acesse http://www.dfjug.org/DFJUG/jedi/index.jsp e bons estudos!
quarta-feira, 1 de outubro de 2008
Configurar o Java no Firefox (LINUX)

É muito simples fazer essa junção, porém pra quem está começando agora, eu sei que complica bastante (pois eu mesmo ja sofri pra fazer isso! :p).
Basta criar-mos um link simbólico da lib libjavaplugin_oji.so que se encontra na pasta de plugins do java, para a pasta de plugins do firefox, da seguinte maneira:
ln -s /opt/jdk1.6.0_10/jre/plugin/i386/ns7/libjavaplugin_oji.so /opt/firefox/plugins/libjavaplugin_oji.so
Após feito esse processo é só reiniciar o firefox e voilá!
Seu java estará configurado pra rodar no firefox.
Ressaltando que /opt/jdk1.6.0_10 é o diretório onde o meu java se encontra instalado, vc deverá mudar esse diretório de acordo com a instalação do java na sua máquina, e o mesmo vale para /opt/firefox , que é onde o firefox está instalado na minha máquina.
terça-feira, 30 de setembro de 2008
Chuchu vs. iPhone? Quem será melhor?
Infelizmente é triste morar num país com tantos impostos...É sempre assim, sempre que sai alguma inovação, legal lá fora se paga 1 preço decente dentro dos padrões porém quando chega ao Brasil.... Vem com esse preço exorbitante, um assalto (quase um estupro).
Realmente, o iPhone é fóda , é touchscreen , tem 8 GB (ou +) + peraí... 2300 mangos? Acho q prefiro o chuchu!(O custo Benefício ta melhor! , sem contar que falta muita coisa essencial ao iPhone, como os citados na imagem acima). Enquanto nos EUA, ele é vendido a US$ 200 (versão 8GB) , e na holanda sendo encontrado até por 1 Euro (é.. isso mesmo... 1 Euro), aqui no Brasil está esse roubo...
Bem, meus sinceros votos é que ninguém compre o iPhone (pelo menos por enquanto até os preços darem uma abaixada drástica... O que não deixa de ser uma pena, pq sempre ter q esperar a "novidade" ficar "antiga" pra comprar é meio chato...), apesar de ser 1 baita telefone, por esse preço eu ainda prefiro o chuchu!(E olha que eu me amarro em celulares legais! =D)
Fonte: Manual do Cafajeste (Via Google Discovery)
quinta-feira, 25 de setembro de 2008
Projeto Fedora completa seus primeiros 5 anos

Quarta-feira, o projeto Fedora (Minha Distro do coração =D) completou seus primeiros 5 anos de existência. O BR-Linux anunciou o surgimento do Fedora em 22 de setembro de 2003, e os comentários dos leitores na época mostram o tom com que a notícia foi recebida.
Que venham mais muitos anos - Feliz aniversário, Fedora!
Fonte
terça-feira, 16 de setembro de 2008
Configurando o PATH do java no Linux
Após a instalação do J2SE e sua documentação é necessário configurar as variáveis de ambiente para que o SO saiba onde encontrar os binários, as bibliotecas e os manuais. Faço isso editando o arquivo bash.bashrc, localizado no diretório /etc, com o comando
sudo gedit /etc/bash.bashrc
(Em algumas distros como o Fedora core 9 o arquivo fica em /etc/bashrc)
e nele incluindo as linhas…
JAVA_HOME="/opt/java"
CLASSPATH="$JAVA_HOME:$JAVA_HOME/lib:$."
MANPATH="$MANPATH:$JAVA_HOME/man"
JAVA_DOC="$JAVA_HOME/docs"
PATH="$JAVA_HOME/bin:$PATH"
export JAVA_HOME CLASSPATH MANPATH JAVA_DOC PATH
segunda-feira, 15 de setembro de 2008
Configurando o Grub Após ter formatado o winxp em dual boot

Restaurar o menu depois de instalar o Windows
Método I
Inicialize algum LiveCD do Ubuntu.
Para listar todas as partições do disco rígido, digite o seguinte comando no terminal:
sudo fdisk -l
Localize a partição onde o Ubuntu está instalado, e digite o comando:
sudo mount /dev/hdY /mnt
Onde /dev/hdY é a partição onde o Ubuntu está instalado.
Com a partição já montada, recupere o GRUB com o seguinte comando:
sudo grub-install --root-directory=/mnt /dev/hdY
Novamente substituindo o /dev/hdY pela sua partição raiz.
Reinicie o seu computador.
Método II
Caso ocorra algum problema com o método acima, você pode tentar recuperar o GRUB utilizando o chroot. Para isso, monte a partição do Linux digitando no terminal:
sudo chroot /mnt
Finalize então, instalando o GRUB:
grub-install /dev/hdY
*
Substituindo o Y pela letra do seu disco rígido.
Este é particularmente útil quando se está rodando um Live CD de alguma distribuição que não possua o GRUB instalado, ou está usando o modo de recuperação do Alternate Install CD do Ubuntu.
Reinicie o seu computador.
Método III
Recomendado! (O próximo foi o que funcionou melhor comigo!)
Caso as tentativas anteriores falhem podemos seguir as recomendações abaixo inicializando por um Live CD do Ubuntu e executando os comandos abaixo em um terminal.
sudo grub
Será aberto então o console de comandos do Grub exibindo o prompt grub>. Prossiga executando um-a-um os demais comandos abaixo no mesmo.
find /boot/grub/stage1
root (hdX,Y)
Onde (hdX,Y) deve ser substituído pelo que aparece na saída do comando anteriormente executado, como (hd0,1) por exemplo:
setup (hd0)
quit
Reinicie o seu computador.
sábado, 13 de setembro de 2008
Instalando o repositório Livna no fedora core 9

O Livna é um importante repositório, onde se encontram diversos pacotes , principalmente quanto a drivers de placas de vídeo Nvidia.
Para instalar, visite a página e baixe o rpm (http://rpm.livna.org) ou, se preferir, abra um terminal e digite:
$ su -c 'rpm -ivh http://rpm.livna.org/livna-release-9.rpm'
Usar o repositório Livna permite ao Fedora 9 tocar todos os tipos de vídeo, som e DVD, além de possuir drivers para as placas de vídeo mais conhecidas (nvidia e ati), mas atenção:
Os drivers para as placas de vídeo da AMD e Nvidia ainda não estão disponíveis,
Para instalar, visite a página e baixe o rpm (http://rpm.livna.org) ou, se preferir, abra um terminal e digite:
$ su -c 'rpm -ivh http://rpm.livna.org/livna-release-9.rpm'
Usar o repositório Livna permite ao Fedora 9 tocar todos os tipos de vídeo, som e DVD, além de possuir drivers para as placas de vídeo mais conhecidas (nvidia e ati), mas atenção:
Os drivers para as placas de vídeo da AMD e Nvidia ainda não estão disponíveis, pois eles não funcionam com o servidor X 1.4.99, que está presente no Fedora 9. Eles estão disponíveis apenas no repositório de testes do Livna, cujo uso é indicado apenas para usuários experientes que sabem o que estão fazendo. Se o driver da placa de vídeo é essencial para você, fique por enquanto com o Fedora 8 até que as referidas companhias ajustem os drivers para o novo servidor X. Os drivers serão colocados à disposição no repositório Livna padrão assim que forem ajustados para o servidor X. NÃO TENTE instalar os drivers enquanto não houver esse ajuste, pois você pode ficar sem entrar na interface gráfica do Fedora.
Sobre isso, veja a informação do funcionário da nvidia: http://www.nvnews.net/vbulletin/showthread.php?t=107725
pois eles não funcionam com o servidor X 1.4.99, que está presente no Fedora 9. Eles estão disponíveis apenas no repositório de testes do Livna, cujo uso é indicado apenas para usuários experientes que sabem o que estão fazendo. Se o driver da placa de vídeo é essencial para você, fique por enquanto com o Fedora 8 até que as referidas companhias ajustem os drivers para o novo servidor X. Os drivers serão colocados à disposição no repositório Livna padrão assim que forem ajustados para o servidor X. NÃO TENTE instalar os drivers enquanto não houver esse ajuste, pois você pode ficar sem entrar na interface gráfica do Fedora.
Sobre isso, veja a informação do funcionário da nvidia: http://www.nvnews.net/vbulletin/showthread.php?t=107725
sexta-feira, 12 de setembro de 2008
Recuperando partições e corrigindo sistemas de arquivos

02/02/2006
Fazendo backup e recuperando a MBR e tabela de partições
Ao comprar um novo HD, você precisa primeiro formatá-lo antes de poder instalar qualquer sistema operacional. Existem vários programas de particionamento, como o QTParted, GParted, CFDisk e outros.
Os programas de particionamento salvam o particionamento na tabela de partição, gravada no início do HD. Esta tabela contém informações sobre o início e final de cada partição. Depois do particionamento, vem a formatação de cada partição, onde você pode escolher o sistema de arquivos que será usado em cada uma (ReiserFS, EXT3, FAT, etc.).
Ao instalar o sistema operacional, é gravado mais um componente: o gerenciador de boot, responsável por carregar o sistema durante o boot.
Tanto o gerenciador de boot quanto a tabela de particionamento do HD são salvos no primeiro setor do HD, a famosa trilha MBR, que contém apenas 512 bytes. Destes, 446 bytes são reservados para o setor de boot, enquanto os outros 66 bytes guardam a tabela de partição.
Ao trocar de sistema operacional, você geralmente subscreve a MBR com um novo gerenciador de boot, mas a tabela de particionamento só é modificada ao criar ou deletar partições. Caso por qualquer motivo, os 66 bytes da tabela de particionamento sejam subscritos ou danificados, você perde acesso a todas as partições do HD. O HD fica parecendo vazio, como se tivesse sido completamente apagado.
Para evitar isso, você pode fazer um backup da trilha MBR do HD. Assim, você pode recuperar tudo caso ocorra qualquer eventualidade. Para fazer o backup, use o comando:
# dd if=/dev/hda of=backup.mbr bs=512 count=1
O comando vai fazer uma cópia dos primeiros 512 bytes do "/dev/hda" no arquivo "backup.mbr". Se o seu HD estivesse instalado na IDE secundária (como master), ele seria visto pelo sistema como "/dev/hdc". Basta indicar a localização correta no comando.
Você pode salvar o arquivo num disquete ou pendrive, mandar para a sua conta do GMail, etc. Caso no futuro, depois da enésima reinstalação do Windows XP, vírus, falha de hardware ou de um comando errado a tabela de particionamento for pro espaço, você pode dar boot com o CD do Kurumin e regravar o backup com o comando:
# dd if=backup.mbr of=/dev/hda
Lembre-se de que o backup vai armazenar a tabela de particionamento atual. Sempre que você reparticionar o HD, não se esqueça de atualizar o backup.
Usando o Gpart
Caso o pior aconteça, a tabela de particionamento seja perdida e você não tenha backup, ainda existe uma esperança. O Gpart é capaz de recuperar a tabela de partição e salvá-la de volta no HD na maioria dos casos. Você pode executá-lo dando boot pelo CD do Kurumin, ou baixá-lo no: http://www.stud.uni-hannover.de/user/76201/gpart/#download.
Baixe o "gpart.linux" que é o programa já compilado. Basta marcar a permissão de execução para ele:
# chmod +x gpart.linux
Nas distribuições derivadas do Debian, você pode instalá-lo pelo apt-get:
# apt-get install gpart
Execute o programa indicando o HD que deve ser analisado:
# ./gpart.linux /dev/hda
(ou simplesmente "gpart /dev/hda" se você tiver instalado pelo apt-get)
O teste demora um pouco, pois ele precisará ler o HD inteiro para determinar onde começa e termina cada partição. No final, ele exibe um relatório com o que encontrou:
Primary partition(1)
type: 007(0x07)(OS/2 HPFS, NTFS, QNX or Advanced UNIX)
size: 3145mb #s(6442000) s(63-6442062)
chs: (0/1/1)-(1023/15/63)d (0/1/1)-(6390/14/61)r
Primary partition(2)
type: 131(0x83)(Linux ext2 filesystem)
size: 478mb #s(979964) s(16739730-17719693)
chs: (1023/15/63)-(1023/15/63)d (16606/14/1)-(17579/0/62)r
Primary partition(3)
type: 130(0x82)(Linux swap or Solaris/x86)
size: 478mb #s(979896) s(17719758-18699653)
chs: (1023/15/63)-(1023/15/63)d (17579/2/1)-(18551/3/57)r
Se as informações estiverem corretas você pode salvar a tabela no HD usando o parâmetro "-W":
# gpart -W /dev/hda /dev/hda
Veja que é preciso indicar o HD duas vezes. Na primeira você indica o HD que será vasculhado e em seguida em qual HD o resultado será salvo. Em caso especiais, onde você tenha dois HDs iguais, por exemplo, você pode gravar num segundo HD, com em: "gpart -W /dev/hda /dev/hdc"
O gpart não é muito eficiente em localizar partições extendidas (hda5, hda6, etc.). Em boa parte dos casos ele só vai conseguir identificar as partições primárias (hda1, hda2, hda3 e hda4). Nestes casos, você pode usar o cfdisk ou outro programa de particionamento para criar manualmente as demais partições (apenas crie as partições e salve, não formate!). Se você souber indicar os tamanhos aproximados, principalmente onde cada uma começa, você conseguirá acessar os dados depois.
Usando o Testdisk
Outra ferramenta "sem preço" para recuperação de partições é o Testdisk. Embora a função seja a mesma, ele utiliza um algoritmo bastante diferente para detectar partições, o que faz com que ele funcione em algumas situações em que o Gpart não detecta as partições corretamente e vice-versa. Por isso vale a pena ter ambos na caixa de ferramentas.
Lembre-se que ambos são capazes de recuperar partições apenas enquanto as informações não são subscritas. Se você acabou de apagar a sua partição de trabalho, é bem provável que consiga recuperá-la, mas se o HD já tiver sido reparticionado e formatado depois do acidente, as coisas ficam muito mais complicadas. Sempre que um acidente acontecer, pare tudo e volte a usar o HD só depois de recuperar os dados.
O Testdisk permite recuperar desde partições isoladas (incluindo as extendidas), até toda a tabela de partição, caso o HD tenha sido zerado. Ele suporta todos os principais sistemas de arquivos, incluindo FAT16, FAT32, NTFS, EXT2, EXT3, ReiserFS, XFS, LVM e Linux Raid.
A página oficial é a http://www.cgsecurity.org/testdisk.html onde, além da versão Linux, você encontra versões para Windows, DOS e até para o Solaris.
Embora não seja exatamente um utilitário famoso, o Testdisk é incluído em muitas distribuições. Nos derivados do Debian, você pode instalá-lo via apt-get:
# apt-get install testdisk
Para instalar a versão em código fonte, além dos compiladores básicos (veja mais detalhes no capítulo 3), é necessário ter instalado o pacote "ncurses-dev" ou "libncurses-dev". A instalação propriamente dita é feita usando a receita tradicional: descompactar o arquivo, acessar a pasta criada e rodar os comandos "./configure", "make" e "make install".
Vamos a um exemplo prático de como recuperar duas partições deletadas "acidentalmente". Onde o cfdisk está mostrando "Free Space" existem na verdade as partições "/dev/hda2" e "/dev/hda3", que removi previamente:
Comece chamando o Testdisk como root:
# testdisk
Na tele inicial, selecione o HD que será analisado, acesse a opção "Analyse" e em seguida "Proceed", para iniciar a varredura do disco.
O Testdisk verifica a tabela de partições atual e em seguida pesquisa em todos os setores onde podem existir informações sobre outras partições que não constem na tabela principal.
Veja que, apenas com o teste rápido, ele já conseguiu localizar as duas partições que haviam sido deletadas:
Pressionando a tecla "P" você pode ver os dados dentro da partição, para ter certeza que os arquivos estão lá (a versão disponível no apt-get não consegue mostrar arquivos dentro de partições ReiserFS, mas a recuperação funciona normalmente).
Nos raros casos onde ele localize a partição, mas identifique incorretamente o sistema de arquivos, use a opção "T" para indicar o correto.
Depois de checar se o particionamento detectado está correto, pressione "Enter" mais uma vez e você chega à tela final, onde você pode salvar as alterações, usando a opção "Write". Reinicie o micro e monte a partição para checar os dados.
Caso a lista não exiba a partição que você está procurando, use a opção "Search" no lugar do Write. Isto ativa o teste mais longo, onde ele vasculha todos os setores do HD em busca de partições deletadas. Este segundo teste demora alguns minutos e, num HD com bastante uso, pode retornar uma longa lista de partições que foram criadas e deletadas durante a vida útil do HD. Neste caso, preste atenção para recuperar a partição correta.
Todas as partições listadas aqui parecem com o atributo "D", que significa que a partição foi deletada. Para recuperar uma partição, selecione-a usando as setas para cima/baixo e use a seta para a direita para mudar o atributo para "*" (se ele for uma partição primária e bootável, como o drive C: no Windows), "P" se ela for uma partição primária ou "L" se ela for uma partição lógica. Lembre-se de que. no Linux, as partições de 1 a 4 são primárias e de 5 em diante são extendidas.
É possível também adicionar uma partição manualmente, caso você saiba os setores de início e final, mas isso raramente é necessário.
Pressione "Enter" mais uma vez e ele mostra uma tela de confirmação, com a tabela de particionamento alterada que será salva no disco. Use o "Write" para salvar ou volte à tela inicial para começar novamente em caso de erros.
Tenha em mente que o tamanha da partição é reportado de acordo com o número de setores de 512 bytes. Uma partição de 5 GB tem pouco mais de 10 milhões de setores.
O ideal é que você faça todo o processo usando um live-CD. O Kurumin vem com o Testdisk pré-instalado a partir da versão 6.0 e ele pode ser encontrado também nas versões recentes do Knoppix, PLD e Ultimate Boot CD.
Depois de recuperar qualquer partição, é importante checá-la usando o utilitário apropriado, para que qualquer problema dentro da estrutura do sistema de arquivos seja corrigido.
Recuperando partições danificadas
Assim como no Windows, você nunca deve desligar o micro no botão ao rodar qualquer distribuição Linux.
Mas, acidentes acontecem. A energia elétrica acaba de vez em quando, alguns dos drivers de softmodems podem fazer o micro travar (estes drivers são proprietários, por isso não é possível corrigir bugs, como em outras partes do sistema; você depende unicamente da boa vontade do fabricante) e assim por diante.
Durante o boot, o sistema verifica as partições em busca de problemas, tentando resolver qualquer inconsistência no sistema de arquivos causado por um desligamento incorreto. Você pode perder alguns arquivos que ainda não tivessem sido salvos no HD, mas a idéia é que a verificação coloque todo o resto em ordem.
Para partições em ReiserFS é usado o reiserfsck, para partições em EXT2 ou EXT3 é usado (respectivamente) o fsck.ext2 ou o fsck.ext3 e para partições em XFS é usado o xfs_repair.
Mas, em alguns casos, o dano pode ser grande o suficiente para que não seja possível repará-lo automaticamente, fazendo com que o sistema simplesmente deixe de dar boot.
Não há motivo para pânico. Você pode dar boot pelo CD do Kurumin e usá-lo para reparar as partições danificadas.
Abra um terminal e vire root (su), lembre-se de que, ao rodar o Kurumin pelo CD, você pode definir a senha de root usando o comando "sudo passwd". A partição a ser reparada precisa estar desmontada. Vou usar como exemplo a partição /dev/hda1.
Se for uma partição EXT3, use o comando:
# fsck.ext3 /dev/hda1
Ele vai começar a apontar os erros e perguntar se cada um deve ser corrigido. Normalmente você pode ir apenas respondendo "y" para tudo, mas caso existam dados realmente importantes na partição é melhor prestar mais atenção. Arquivos danificados ou fragmentos de arquivos que puderam ser recuperados vão para a pasta "lost+found" no diretório raiz da partição.
Você pode também adicionar o parâmetro "-f", que força a verificação da partição, mesmo que o sistema de arquivos pareça não ter problemas:
# fsck.ext3 -f /dev/hda1
O fsck não é capaz de recuperar o sistema de arquivos em casos de problemas com o superbloco, o setor que contém informações essenciais, como o tipo, tamanho, status e informações sobre a estrutura do sistema de arquivos. Quando não encontra o superbloco, o fsck simplesmente falha miseravelmente, exibindo um "fatal error", sem maiores explicações.
É difícil estimar quantas reinstalações já foram feitas, e qual foi o efeito negativo sobre a reputação do sistema durante sua história por causa deste simples problema, que é felizmente fácil de resolver.
Sempre que a partição é criada, são criados vários superblocos alternativos, que servem justamente de backups para casos de problemas com o primeiro. Você pode ver a lista de endereços usando o comando "mkfs.ext3 -n partição", como em:
# mkfs.ext3 -n /dev/hda1
Ao usar o comando, nunca esqueça de incluir o "-n", caso contrário ao invés de mostrar as informações, ele vai formatar a partição. No final do relatório você encontra:
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Alternativamente, você pode usar também o comando "dumpe2fs /dev/hda1 | grep -i superblock". O Testdisk (que vimos a pouco) também oferece uma opção para listar superblocos alternativos em partições EXT, que você acessa em "Advanced > Superblock".
Chame novamente o comando "fsck.ext3", adicionando a opção "-b", seguida do endereço do superbloco que será usado. Caso eventualmente o primeiro resulte em erro, experimente o segundo, e assim por diante:
# fsck.ext3 -f -b 32768 /dev/hda2
Para partições EXT2, use o comando "fsck.ext2", que suporta os mesmos parâmetros.
Numa partição ReiserFS, comece com o comando:
# reiserfsck --check /dev/hda1
Ele exibe um aviso:
Do you want to run this program?[N/Yes] (note need to type Yes if you do):
Ou seja, você precisa digitar "Yes" para continuar, caso apenas dê Enter ele aborta a operação.
Ele vai verificar toda a estrutura do sistema de arquivos e indicar os erros encontrados. O próximo passo é usar a opção "--fix-fixable":
# reiserfsck --fix-fixable /dev/hda1
Este segundo comando efetivamente corrige todos os erros simples, que possam ser corrigidos sem colocar em risco as demais estruturas do sistema de arquivos. Em 90% dos casos isto é suficiente.
Caso seja encontrado algum erro grave, ele vai abortar a operação. Estes erros mais graves podem ser corrigidos com o comando:
# reiserfsck --rebuild-tree /dev/hda1
Este comando vai reconstruir do zero todas as estruturas do sistema de arquivos, vasculhando todos os arquivos armazenados. Esta operação pode demorar bastante, de acordo com o tamanho e quantidade de arquivos na partição. Nunca interrompa a reconstrução, caso contrário você não vai conseguir acessar nada dentro da partição até que recomece e realmente termine a operação.
O "--rebuild-tree" vai realmente corrigir qualquer tipo de erro no sistema de arquivos. Ele só não vai resolver o problema caso realmente existe algum problema físico, como, por exemplo, um grande número de setores defeituosos no HD.
Finalmente, caso você esteja usando uma partição formatada em XFS, comece com o:
# xfs_check /dev/hda1
Ele vai indicar os problemas encontrados. Para realmente corrigi-los, rode o:
# xfs_repair /dev/hda1
Assim como no caso do reiserfsck, todo o processo é automático. Ao contrário do EXT2, tanto o ReiserFS quanto o XFS são sistemas de arquivos muito complexos, por isso qualquer intervenção manual só aumentaria a possibilidade de destruir tudo.
Mas, ambos incluem algumas opções avançadas, que podem ser especificadas no comando. Você pode dar uma olhada dentro dos manuais: "man reiserfsck" ou "man xfs_repair".
quarta-feira, 10 de setembro de 2008
Renomeando cartões de memória ou pendrives

Baixe o pacote mtools, que contém o mlabel, que será utilizado para renomear o cartão:
sudo apt-get mtools
Com o comando mount, vemos os dispositivos montados no momento:
mount
Com o mount descubro que o meu cartão é o dispositivo /dev/sdb1 e, com o comando abaixo, vejo qual é o seu label (rótulo) atual:
sudo mlabel -i /dev/sdb1 -s ::
Já que ele não tem rótulo nenhum, vamos criar um com o comando abaixo:
sudo mlabel -i /dev/sdb1 ::SDHC4
Onde SDHC4 é o nome do rótulo que escolhi e pode ser usado outro qualquer. Depois de feito, verificamos a alteração:
sudo mlabel -i /dev/sdb1 -s ::
segunda-feira, 8 de setembro de 2008
Resumão das funções relacionadas a String no PHP

Mais fácil olhar no "resumão" que sair procurando tudo no php.net... Funções relacionadas a HTML |
htmlspecialchars string htmlspecialchars(string str); Devolve a string fornecida, substituindo os seguintes caracteres:
htmlentities string htmlentities(string str); Funciona de maneira semelhante ao comando anterior, mas de maneira mais completa, pois converte todos os caracteres da string que possuem uma representação especial em html, como por exemplo:
nl2br string nl2br(string str); Devolve a string fornecida substituindo todas as quebras de linha ("\n") por quebras de linhas em html (" Exemplo: Imprime:
array get_meta_tags(string ficheiro); Abre um ficheiro html e percorre o cabeçalho em busca de "meta" tags, Devolvendo num array todos os valores encontrados. Exemplo: a execução da função: get_meta_tags("teste.html"); Devolve o array: array("author"=>"jose","tags"=>"php3 documentation");
string strip_tags(string str); Devolve a string fornecida, retirando todas as tags html e/ou PHP encontradas. Exemplo: Devolve a string "testando"
string urlencode(string str); Devolve a string fornecida, convertida para o formato urlencode. Esta função é útil para passar variáveis para uma próxima página.
string urldecode(string str); Funciona de maneira inversa a urlencode, desta vez decodificando a string fornecida do formato urlencode para texto normal. |
Funções relacionadas a arrays |
|
Implode e join string implode(string separador, array partes); As duas funções são idênticas. Devolvem uma string contendo todos os elementos do array fornecido separados pela string também fornecida. Exemplo: $inteiro passa a conter a string: split array split(string padrao, string str, int [limite]); Devolve um array contendo partes da string fornecida separadas pelo padrão fornecido, podendo limitar o número de elementos do array. Exemplo: O código acima faz com que a variável $data_array receba o valor:
array explode(string padrao, string str); Funciona de maneira bastante semelhante à função split, com a diferença que não é possível estabelecer um limite para o número de elementos do array. |
Comparações entre strings |
similar_text int similar_text(string str1, string str2, double [porcentagem]); Compara as duas strings fornecidas e devolve o número de caracteres coincidentes. Opcionalmente pode ser fornecida uma variável, passada por referência (ver tópico sobre funções), que receberá o valor percentual de igualdade entre as strings. Esta função é case sensitive, ou seja, maiúsculas e minúsculas são tratadas como diferentes. Exemplo: $num = similar_text("teste", "testando",&$porc); As variáveis passam a ter os seguintes valores: $num == 4; $porc == 61.538461538462
int strcasecmp(string str1, string str2); Compara as duas strings e Devolve 0 (zero) se forem iguais, um valor maior que zero se str1 > str2, e um valor menor que zero se str1 <> strcmp int strcasecmp(string str1, string str2); Funciona de maneira semelhante à função strcasecmp, com a diferença que esta é case sensitive, ou seja, maiúsculas e minúsculas são tratadas como diferentes. strstr string strstr(string str1, string str2); As duas funções são idênticas. Procura a primeira ocorrência de str2 em str1. Se não encontrar, Devolve uma string vazia, e se encontrar Devolve todos os caracteres de str1 a partir desse ponto. Exemplo: stristr string strstr(string str1, string str2); Funciona de maneira semelhante à função strstr, com a diferença que esta é case insensitive, ou seja, maiúsculas e minúsculas são tratadas como iguais. strpos int strpos(string str1, string str2, int [offset] ); Devolve a posição da primeira ocorrência de str2 em str1, ou zero se não houver. O parâmetro opcional offset determina a partir de qual caracter de str1 será efetuada a busca. Mesmo utilizando o offset, o valor de retorno é referente ao início de str1. strrpos int strrpos(string haystack, char needle); Devolve a posição da última ocorrência de str2 em str1, ou zero se não houver. |
Funções para edição de strings |
chop string chop(string str); Retira espaços e linhas em branco do final da string fornecida. Exemplo: ltrim string ltrim(string str); Retira espaços e linhas em branco do final da string fornecida. Exemplo:
string trim(string str); Retira espaços e linhas em branco do início e do final da string fornecida. Exemplo:
string strrev(string str); Devolve a string fornecida invertida. Exemplo:
string strtolower(string str); Devolve a string fornecida com todas as letras minúsculas. Exemplo: strtoupper string strtoupper(string str); Devolve a string fornecida com todas as letras maiúsculas. Exemplo: ucfirst string ucfirst(string str); Devolve a string fornecida com o primeiro caracter convertido para letra maiúscula. Exemplo: ucwords string ucwords(string str); Devolve a string fornecida com todas as palavras iniciadas por letras maiúsculas. Exemplo:
Altera todas as ocorrências de str1 em str3 pela string str2. |
Funções diversas |
chr string chr(int ascii); Devolve o caracter correspondente ao código ASCII fornecido. ord int ord(string string); Devolve o código ASCII correspontente ao caracter fornecido.
echo(string arg1, string [argn]... ); Imprime os argumentos fornecidos. print(string arg); Imprime o argumento fornecido. strlen Devolve o tamanho da string fornecida. |
sexta-feira, 5 de setembro de 2008
Trabalhando com arquivos compactados no Linux

Compactadores: rar, zip, bzip, etc
No Linux, cada formato trabalha de maneira independente, ou seja, cada fomato de arquivo compactado tem um executável próprio para ser extraido. Estes programas podem ser usados no terminal (linha de comando) ou através de frontends (interfaces gráficas que se utilizam desses executaveis).
TAR
O tar é um dos formatos mais comuns no Linux, tem a extensão ".tar", e geralmente os arquivos tar já vem compactados em Gzip, com a extenção ".tar.gz". Para extrair um arquivo ".tar" use o seguinte comando:
- Código: Selecionar tudo
tar -xvf
Em que "" seria substituido pelo nome do arquivo ".tar" que você gostaria de extrair. Este comando irá extrair o conteudo do arquivo no diretório atual. Para extrair em outro caminho, usa a opção -C:
- Código: Selecionar tudo
tar -xvf
-C
Obviamente, substituindo "" pelo caminho da pasta. Veja um exemplo:
- Código: Selecionar tudo
tar -xvf pumpitup.tar -C /home/CidoLoco/Programas/Pump\ It\ Up
Simples assim.
GZIP
De longe o mais utilizado no Linux, geralmente vem compactando um arquivo ".tar". Tem uma compressão boa (apenas boa
- Código: Selecionar tudo
gunzip -d
Use o comando acima para extrair arquivos ".gz". Caso faça isso em um arquivo ".tar.gz", será criado um arquivo ".tar" que deverá ser extraido novamente usando o comando tar. Portanto, é mais simples estrair ".tar.gz" logo dessa maneira:
- Código: Selecionar tudo
tar -xvf
Extamente, é igual a extrair um arquivo ".tar" comum. Decore este comando, pois vai ser bastante usado.
BZIP
Bzip é um dos formatos que melhor compacta os arquivos, porém também demora um pouco mais para descompactar os arquivos. A extenção é ".tar.bz2" ou apenas ".bz2". É quase a mesma coisa do Gzip, para extrair um arquivo ".bz2" use o seguinte comando:
- Código: Selecionar tudo
bunzip2 -d
Só muda o nome do comando mesmo, porque as opções são as mesmas. E para extrair um arquivo ".tar.bz2" é ainda mais simples:
- Código: Selecionar tudo
tar -xvf
Mais uma vez a mesma coisa.
RAR
Este formato é um dos mais usados no Windows. Ainda há alguns softwares para Linux que também usam Rar para comprimir seus arquivos, mesmo que o Bzip2 comprima melhor. Bom, cada um gosta do que gosta.
Para extrair um arquivo ".rar" é simples:
- Código: Selecionar tudo
unrar e
Isso irá extrair o arquivo rar no caminho atual.
ZIP
Com certeza o formato mais usado, usa a extenção ".zip". Para extrair um arquivo ".zip" é simples:
- Código: Selecionar tudo
unzip
Isto irá extair o arquivo no diretório atual. O executavel "unzip" já vem no Slackware.
7ZIP
7zip é um formato aberto, relativamente novo. Está se tornando cada vez mais famoso pela sua capacidade de compressão muito alta. Geralmente não está presente por padrão no sistema, e o recomendado é baixá-lo. Você pode fazer isso aqui. Sua extenção é ".7z", e para extraí-lo no diretório atual usamos o seguinte comando:
- Código: Selecionar tudo
7za e
Existem outros tipos de arquivos (bem) menos comuns de serem encontrados na internet para download. São eles: .lhz, .lha, .gda, .cab, .arj, .pea, .ace e outros. Lhz e Lha são mais usados no Japão. Gda é um formato japonês, e mesmo assim pouco utilizado por lá. Cab são os arquivos "cabinet" do Windows. Arj já foi mais usado.
Frontends:
Frontends nada mais são do que interfaces gráficas para executaveis de linha de comando. No caso dos compactadores, os frontends se utilizam destes programas vistos anteriormente e apenas facilitam a tarefa para o usuário. Sendo asssim, maioria deles verifica na inicialização quais formatos você pode extrair, e automaticamente passam a dar suporte aos formatos que encontrarem no seu computador. Isto que dizer que, se você quiser extrair um arquivo ".7z", basta você instalar o "p7zip" no seu computador a automaticamente a maioria dos frontends irão passar a dar suporte ao formato.
Frontends mais conhecidos:
Ark (KDE)
File Roller (Gnome)
LxArchiver (GTK)
PeaZip (GTK e QT)
Sites dos formatos:
TAR - http://www.gnu.org/software/tar/
GZIP - http://www.gzip.org/
BZIP2 - http://www.bzip.org/
RAR - http://www.rarlab.com/
ZIP - http://www.winzip.com/
7ZIP - http://www.7zip.org/
Configurando o PATH do Java no Linux

Muita gente tem dificuldade em mecher no path do linux (apesar de não ser nenhum bicho de sete cabeças) , porém esse artigo vai facilitar a vida de muita gente, assim como facilitou a minha.

Segue o artigo:
Após a instalação do J2SE e sua documentação é necessário configurar as variáveis de ambiente para que o SO saiba onde encontrar os binários, as bibliotecas e os manuais. Faço isso editando o arquivo bash.bashrc, localizado no diretório /etc, com o comando
sudo gedit /etc/bash.bashrc (algumas distros como o fedora core 9 fica em /etc/bashrc)
e nele incluindo as linhas…
JAVA_HOME="/opt/java"
CLASSPATH="$JAVA_HOME:$JAVA_HOME/lib:$."
MANPATH="$MANPATH:$JAVA_HOME/man"
JAVA_DOC="$JAVA_HOME/docs"
PATH="$JAVA_HOME/bin:$PATH"
export JAVA_HOME CLASSPATH MANPATH JAVA_DOC PATH
quinta-feira, 4 de setembro de 2008
Software livre para rastrear laptop roubado
Estudantes da Universidade de Washington desenvolvem o primeiro software livre com a função de rastrear laptops roubados ou perdidos. O Adeona, nome inspirado na mitologia romana, é instalado na máquina e continuamente monitora sua localização.
O monitoramento ocorre com o envio dos números IPs que o laptop vai adquirindo, juntamente com demais informações da rede que está acessando. O mecanismo então encripta estes dados, que ficam à disposição do proprietário do laptop, que deve manter uma chave de acesso adquirida com o software em um pen drive, por exemplo, para que possa rastrear a máquina quando for preciso.
Um recurso adicional muito interessante é que se o laptop for um Mac, é possível capturar fotos com a webcam integrada em intervalos de 30 segundos.
Caso queira mais informações sobre este projeto, acesse:
Usando o DBDesigner no Fedora
Instalar e configurar essa ferramenta extremamente poderosa para o ambiente LAMP inicialmente me pareceu uma tarefa difícil, mas depois desse tutorial! Pronto! Muito Simples!
Baixar o pacote :
http://downloads.mysql.com/DBDesigner4/DBDesigner4.0.5.4.tar.gz
Depois baixar a biblioteca :
# wget http://ufpr.dl.sourceforge.net/sourceforge/kylixlibs/kylixlibs3-borqt-3.0-2.tar.gz
Então descompactar
# tar zxvf kylixlibs3-borqt-3.0-2.tar.gz
Copie a biblioteca para o local correto :
cp kylixlibs3-borqt/libborqt-6.9.0-qt2.3.so /usr/lib
Crie o link simbolico para o arquivo que o DBDesigner solicita :
ln -sf /usr/lib/libborqt-6.9.0-qt2.3.so /usr/lib/libborqt-6.9-qt2.3.so
Enfim coloque o seguinte comando para ativa a nova biblioteca
# ldconfig
Inicie a configuração do DBDesigner. Coloque o seguinte comando :
Crie um atalho no menu do Gnome :
copie o arquivo startdbd.desktop para /usr/share/applications/
Depois edite o arquivo copiado para o seguinte conteúdo:
[Desktop Entry]
Comment=fabFORCE DBDesigner 4
Exec=/opt/DBDesigner4/DBDesigner4
Icon=/opt/DBDesigner4/Gfx/Icon48.xpm
Name=DBDesigner4
Type=Application
Categories=Qt;KDE;Development;WebDevelopment;
Pronto!
Agora vá em Aplicações > Programação e verá o icone do DBDesigner.
Problemas em conectar no banco?
Baixe o driver DbExpress do Mysql
# wget http://crlab.com/dbx/dbxmda.tar.gz
Depois copie a biblioteca
# cp DbxMda/libsqlmda.so.4.20 /usr/lib
# ldconfig
Agora no ato da conexão será necessário mudar alguns parâmetros na aba Advanced
# GetDriverFunc para getSQLDriverMySQL (isso mesmo com y minúsculo)
# LibraryName para libsqlmda.so.4.20
# VendorLib para libmysqlclient.so.15
Baixe o patch e então dê os seguinte comandos:
# cd /opt/DBDesigner4
# patch -p1 -i DBDesigner4.diff
Obs : Se você já executou o DBDesigner, antes de efetuar esses dois passos acima, remova os arquivos da pasta home do usuário, pois quando o programa foi iniciado, esses arquivos serão recriados.
# rm -fr /home/
PS: Ainda vou criar um script para fazer isso tudo acima somente com um comando. Vou achar um tempo para fazer isso!
Pronto!
Achou o DBDesigner um pouco feio?
No DBDesigner4 vá no Menu Options -> DBDesigner Options. Na aba Visual Options troque a fonte, conforme você troca já muda na tela para você ver. O meu ficou muito bom com Helvetica, 8.
Agora consertando os bugs
1) Ao tentar conectar na base acontecia o erro “Unable to load libsqlmy.so”. Para corrigir isso, baixei o DBExpress para MySQL, descompactei o arquivo libsqlmda.so.4.20 no diretório /usr/lib/DBDesigner/Linuxlib/ e, no DBDesigner, fui em Database > Connect to database, cliquei em “New Connection” e, na aba “Advanced”, defini os seguintes valores:
- GetDriverFunc: getSQLDriverMySQL
- LibraryName: /usr/lib/DBDesigner/Linuxlib/libsqlmda.so.4.20
- VendorLib: /usr/lib/DBDesigner/Linuxlib/libmysqlclient.so.10.0.0
IMPORTANTE: Note que o valor padrão de GetDriverFunc é getSQLDriverMYSQL, com Y maiúsculo e o valor que deve ser colocado é com y minúsculo.
Com isso eu consegui conectar no banco e fazer a engenharia reversa. Essa solução, encontrei no artigo DBDesigner do DokuWiki.
2) Depois de já ter conseguido conectar no banco de dados, passou a acontecer o erro “Error while executing Query:…… ERROR Message: libmidas.so.1:cannot open shared object file” ao tentar executar uma query. Para corrigir isso, criei um link para biblioteca libmidas.so.1.0 no diretório /usr/lib/, executando o seguinte comando no terminal:
sudo ln -sf /usr/local/DBDesigner4/Linuxlib/libmidas.so.1.0 /usr/lib/libmidas.so.1
Depois, bastou reiniciar o DBDesigner para tudo funcionar normalmente. Essa solução eu achei num post do ubuntuforums.org.