terça-feira, 30 de setembro de 2008

Chuchu vs. iPhone? Quem será melhor?

(Clique na imagem para ampliar)

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)
Ps: eu vi no Nerds Somos nozes + coloquei a fonte que ele pegou.

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

veja a documentação wiki

http://wiki.ubuntu-br.org/Grub#head-117191c30d51c3a40a2313b943f1aa0d619cf431

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

Quem nunca perdeu dados importantes por problemas ou descuidos relacionados ao particionamento do HD, nunca reinstalou o sistema por que um vírus apagou a tabela de partições do HD, ou por que o fsck não encontrava o superbloco da partição, que atire a primeira pedra :). Este tutorial ensina a recuperar partições deletadas e recuperar sistemas de arquivos corrompidos, usando as ferramentas disponíveis no Linux. Todo o processo pode ser feito a partir de um live-CD, como o Kurumin.Carlos E. Morimoto
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:

index.inc_html_5b51d64e

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:

index.inc_html_m17028385

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.

index.inc_html_m2bbaa36c

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.

index.inc_html_453accd1

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".


Fonte

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:

& para '&'
" para '"'
<> para '>'

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:

º para 'º'
ª para 'ª'
á para 'á'
ç para 'ç'

nl2br

string nl2br(string str);

Devolve a string fornecida substituindo todas as quebras de linha ("\n") por quebras de linhas em html ("
").

Exemplo:
echo nl2br("Mauricio\nVivas\n");

Imprime:
Maurício
Vivas


get_meta_tags

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:
No ficheiro teste.html temos:
...

...

...

a execução da função:

get_meta_tags("teste.html");

Devolve o array:

array("author"=>"jose","tags"=>"php3 documentation");


strip_tags

string strip_tags(string str);

Devolve a string fornecida, retirando todas as tags html e/ou PHP encontradas.

Exemplo:
strip_tags('testando
');

Devolve a string "testando"


urlencode

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.


urldecode

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);
string join(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:
$partes = array("a", "casa número", 13, "é azul");
$inteiro = join(" ",$partes);

$inteiro passa a conter a string:
"a casa número 13 é azul"

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:
$data = "11/14/1975";
$data_array = split("/",$data);

O código acima faz com que a variável $data_array receba o valor:
array(11,14,1975);


explode

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


strcasecmp

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);
string strchr(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:
strstr("Mauricio Vivas", "Viv"); // Devolve "Vivas"

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:
chop(" Teste \n \n "); // Devolve " Teste"

ltrim

string ltrim(string str);

Retira espaços e linhas em branco do final da string fornecida.

Exemplo:
ltrim(" Teste \n \n "); // Devolve "Teste \n \n"


trim

string trim(string str);

Retira espaços e linhas em branco do início e do final da string fornecida.

Exemplo:
trim(" Teste \n \n "); // Devolve "Teste"


strrev

string strrev(string str);

Devolve a string fornecida invertida.

Exemplo:
trrev("Teste"); // Devolve "etseT"


strtolower

string strtolower(string str);

Devolve a string fornecida com todas as letras minúsculas.

Exemplo:
strtolower("Teste"); // Devolve "teste"

strtoupper

string strtoupper(string str);

Devolve a string fornecida com todas as letras maiúsculas.

Exemplo:
strtolower("Teste"); // Devolve "TESTE"

ucfirst

string ucfirst(string str);

Devolve a string fornecida com o primeiro caracter convertido para letra maiúscula.

Exemplo:
ucfirst("teste de funcao"); // Devolve "Teste de funcao"

ucwords

string ucwords(string str);

Devolve a string fornecida com todas as palavras iniciadas por letras maiúsculas.

Exemplo:
ucwords("teste de funcao"); // Devolve "Teste De Funcao"


str_replace
string str_replace(string str1, string str2, string str3);

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

echo(string arg1, string [argn]... );

Imprime os argumentos fornecidos.

print

print(string arg);

Imprime o argumento fornecido.

strlen
int strlen(string str);

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. :D


GZIP

De longe o mais utilizado no Linux, geralmente vem compactando um arquivo ".tar". Tem uma compressão boa (apenas boa :P) e tem a extensão ".tar.gz" ou apenas ".gz". Há duas maneiras de extrair um arquivo ".tar.gz", e apenas uma para extrair um arquivo ".gz":

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. :D Você também pode usar o parametro "-C" para arquivos ".tar.gz" utilizando o comando "tar".

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. :P Este comando também extrai arquivos ".tar.bz2", sendo assim, também aceita a opção "-C".

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. :P Para extrair arquivos ".rar", você deve ter o programa de linha de comando "unrar". Existe ainda o "rar", mas geralmente o "unrar" já vem na maioria das distribuições. Caso não tenha ele no seu slackware, baixe aqui.
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. :P Pea é um formato relativamente novo, criado pelo desenvolvedor do PeaZip. Ace também já foi mais usado antigamente. :)

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:

http://adeona.cs.washington.edu/

Fonte

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!

Usando o DBDesigner no Fedora

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 :

/startdbd

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//.DBDesigner4

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.

Fonte



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.


Fonte