sábado, 29 de maio de 2010

Gerenciando Grupos e Usuários Linux

No Linux, como em todo o sistema UNIX-like, os usuário são registrados em grupos. Cada usuário tem pelo menos um grupo ao qual está associado. Se só estiver associado a um grupo, este será seu grupo principal (geralmente é um grupo com o mesmo nome do usuário), denominado Primary Group (grupo primário). Porém, um usuário pode estar associado a vários grupos (embora apenas um deles seja o seu grupo principal). Vejamos como manipulá-los...


  • Verificando os Grupos do Usuário

Basta digitar o comando "groups", ou "groups usuario". No primeiro caso, será mostrada a lista de grupos do usuário que digitou o comando. No segundo, a lista referente ao usuário especificado. Qualquer usuário do sistema pode inspecionar os grupos de qualquer outro, mesmo os do root!! Experimente!!


  • Adicionando um Grupo Linux

Em algumas situações, desejamos criar um grupo novo e adicionar usuários a este grupo. Para criar um grupo novo, digite (somente como root):

addgroup nomegrupo

Isto criará um grupo novo com o nome especificado, porém sem usuários vinculados a este grupo.


  • Adicionando um Grupo a um Usuário Existente

Se você acabou de criar seu grupo novo e quer colocar usuários associados a ele, mas os usuários já existem, basta digitar:

usermod -a -G nomegrupoexistente nomeusuarioexistente

Isto vincula um usuário existente a um grupo existente ao qual ainda não pertença. Claro que não remove os vínculos do referido usuário a outros grupos a que porventura ele esteja associado.


  • Adicionando um Novo Usuário a um Grupo Já Existente

Beleza, agora vamos fazer o contrário: criar um novo usuário, porém definindo seu grupo primário (principal) como um grupo que já exista:

useradd -g grupoexistente usuarionovo

Note que o grupo especificado (grupoexistente) já deve existir previamente!! O novo usuário (usuarionovo) terá vínculo a apenas um grupo, o referido no comando, que será seu grupo primário.


  • Simplesmente Criando um Usuário Novo
Bem semelhante ao comando acima, se o comando digitado fosse:

useradd usuarionovo

Seriam criados ambos um usuário novo com o nome especificado e um grupo novo com o mesmo nome, sendo automaticamente o usuário novo vinculado unicamente ao grupo de mesmo nome, que lhe será seu grupo primário.

Bom, espero que estas dicas ajudem!! Resolveu seus problemas?? Atrapalhou tudo?? Então, claro, COMENTEM!!

Como Trocar o Nome do Servidor

Trocar o nome do servidor é uma coisa simples, porém pode ser capciosa de se fazer em modo texto. Basicamente, existem dois caminhos, ambos devendo ser realizados pelo superusuário (root):

hostname novonome

Este comando acima troca o nome do servidor (hostname), porém de forma não permanente, ou seja, esta troca será perdida se o servidor for reiniciado. Serve para testes ou para alguma troca temporária, sem afetar as configurações da máquina. Para verificar a troca de nome, basta usar o mesmo comando (hostname), sem argumentos.
Caso seja requerida a troca permanente do nome do servidor, basta editar os seguintes arquivos:

vi /etc/hostname
vi /etc/hosts

O /etc/hostname é um arquivos que deve conter apenas uma linha, com uma palavra, que é o nome do host. Não use espaços ou nomes que não serão reconhecidos numa rede TCP!! Em muitos casos, basta editar este arquivo, reiniciar a máquina, e estará tudo resolvido!!
O /etc/hosts é um arquivo com diversas informações de roteamentos e redirecionamentos de rede. Geralmente encontramos nele tabelas de nomes e IPs e algumas instruções para o IPv6 resolver tranqüilamente. Caso o /etc/hosts contenha, em algum lugar, o nome antigo, este deve também ser substituído pelo nome novo.

Beleza: dica rápida, fácil e segura!! Boa sorte e, claro, COMENTEM!!!

terça-feira, 18 de maio de 2010

Números e Códigos Secretos no Celular (Utilidade Pública)

Pessoal,

Neste artigo, demonstro alguns truques e segredos que o seu celular pode fazer (independente da sua marca e modelo) e como eles podem ser úteis a você.

  • Número Internacional de Emergência

O número de emergência em todo o mundo é 112. Este número pode ser digitado mesmo que o celular esteja bloqueado ou sem saldo.

  • Abrindo o Carro Com o Celular

Fechou o carro e deixou a chave lá dentro?? Está longe de casa e da chave reserva?? A solução está em fazer uma ligação para casa. Peça a alguém que aproxime de telefone o controle remoto do carro e o acione. Mantenha o seu celular próximo à porta do carro. Ao se aciona o comando de casa, o celular poderá passar o som para o ambiente e o carro destravará!!

  • Usando a Reserva da Bateria

Todos os celulares têm uma reserva de carga na sua bateria. Ao digitar *3370#, automaticamente é ativada a reserva, dando até cerca de 50% de energia adicional, permitindo que você use o celular mesmo quando a bateria pareça inoportunamente descarregada. Usar a reserva não estraga o celular. Quando você recarregar o celular, automaticamente recarregará esse suplemento de energia, podendo até vir a ser utilizado outra vez!!

  • Achando o Número de Série (IMEI) de seu Celular

Para encontrá-lo, digite: *#06#. Surgirá em seu mostrador o número de série, normalmente contendo 15 dígitos.

  • Desativando Permanentemente seu Celular Roubado

Primeiro, é preciso saber o número de série do celular (vide dica acima). Agora, basta contactar a sua operadora e solicitar o cancelamento ou anulação do telefone, fornecendo este número de série. Feito isso, seu telefone estará desativado e ninguém mais poderá usá-lo, mesmo que troquem o cartão!!

Bom, espero ter ajudado com este artigo rápido. Qualquer coisa, já sabem: COMENTEM!!!

sábado, 8 de maio de 2010

Convertendo Binário, Octal, Hexadecimal em Inteiro em Java

Essa é outra dica rápida de programação na linguagem Java: como converter uma String representando um número binário, octal ou hexadecimal (e, portanto, que podem conter letras, e não somente números) no inteiro correspondente??

Simples: a classe Integer tem duas sobrecargas do método parseInt: uma recebe somente a String, e supostamente esta String está representando um inteiro em base decimal. A outra recebe a String e a base de cálculo para a conversão. Assim, temos:

Primeira sobrecarga:
int value = Integer.parseInt("16");
System.out.println(value);

Console:
16

Internamente, este método: parseInt(String s) não faz nada além de redirecionar a chamada para a segunda sobrecarga, passando a base 10:

Segunda sobrecarga:
int value = Integer.parseInt("16", 10);
System.out.println(value);

Console:
16

Esta segunda sobrecarga pode receber os valores abaixo como base, usando-os para interpretar a String e fazer a conversão necesária:

2 - Binário
8 - Octal
10 - Decimal
16 - Hexadecimal
27 - base 27 (alguém usa isso??)

Assim, podemos converter binários (usando a base 2), octais (usando a base 8), decimais (usando a base 10) e hexadecimais (usando a base 16), além da não menos esdrúxula base 27.
Exemplos:

Binário:
Integer.parseInt("10", 2); - retorna 2
Integer.parseInt("101", 2); - retorna 5
Integer.parseInt("1100110", 2); - retorna 102

Octal:
Integer.parseInt("10", 8); - retorna 8

Hexadecimal:
Integer.parseInt("f", 16); - retorna 15
Integer.parseInt("a", 16); - retorna 10

Base 27:
Integer.parseInt("Kona", 27); - retorna 411787


  • Outra opção:

Ainda na classe Integer, temos a opção de usar o método valueOf, que tem igualmente duas sobrecargas similares, porém retorna o objeto do tipo Integer de valor correspondente, e não o tipo primitivo. Assim, podemos fazer:

Binário:
Integer i = Integer.valueOf("10", 2);
System.out.println(i.intValue()); - imprime 2

Octal:
Integer i = Integer.valueOf("10", 8);
System.out.println(i.intValue()); - imprime 8

Hexadecimal:
System.out.println(Integer.parseInt("f", 16).intValue());
imprime 15

Uma segunda técnica de conversão numérica e de interconversão entre formatos numéricos pode ser obtida na segunda parte deste artigo, clicando-se aqui!!

Espero que esta dica tenha ajudado!! Qualquer coisa: COMENTEM!!!

terça-feira, 27 de abril de 2010

Tocando Guitarra no Linux (Editor de Tablatura)


Esta dica rápida ensina a instalar o programa de código livre Tuxguitar, um editor de tablatura e partituras multipista, criado por nossos vizinhos argentinos, escrito em Java (em SWT) e dedicado ao público de guitarristas, violonistas e demais instrumentos de cordas que fazem uso da tablatura, acordes cifrados no braço do instrumento e recursos similares.
Com o Tuxguitar é possível se fazer desde simples cópias de músicas até arranjos ou composições arrojadas para a sua banda. Suas versões mais recentes trabalham com diversas opções de áudio: OSS, Java Sound (engrenagem de som nativa do Java), ALSA e Fluidsynth. Suporta plugins e pode converter arquivos em padrões como MIDI, Lilypond e MusicXML, tornando a integração com outros aplicativos de música e som muito mais cômoda. Existe hoje traduções para dezenas de línguas, sendo a tradução para Português do Brasil muito boa.
Uma das características do Tuxguitar é a atenção que é dada também para o público amador, permitindo a edição e/ou criação musical por meios convencionais e alternativos: desde tablatura e partitura até clicando-se sobre o braço do violão! Assim, mesmo quem não sabe ler partitura poderá compor confortavelmente!!
A página do projeto inclui ainda um detalhado manual de usuário e um ativo fórum de problemas e dicas, além de várias capturas de tela (para dar um gostinho antes de instalar...).

  • Instalando o Tuxguitar

E, por falar em gostinho, é possível baixá-lo diretamente de sua página, onde há compilações para os mais diversos sistemas: diversas distros de Linux (e algumas genéricas), Windows, FreeBSD e Mac OSX. Para quem quer experimentar sem compromisso, é possível também rodar a versão online, via Java Web Start.
Opcionalmente, é possível instalá-lo via apt-get, para distros baseadas em Debian. Basta digitar, como root:

apt-get install tuxguitar

  • Rodando o Tuxguitar com o Java Personalizado

Se você instalou o Tuxguitar pelo apt-get e não tem o Java e o SWT instalados, pode ser que você tenha problemas. Pode ser que esteja tudo certo também, mas você tem um outro Java (JRE ou JDK) instalado em seu sistema e quer utilizar este. Como fazer??
A solução simples: o Tuxguitar procura pelo diretório do Java através da variável JAVA_HOME. Basta trocar o valor desta variável e você estará mudando a JRE utilizada para rodar o Tuxguitar. Exemplo:

$ echo $JAVA_HOME
/usr/lib/java

Veja: meu JAVA_HOME padrão é /usr/lib/java. Vamos trocar por uma versão mais recente que eu instalei manualmente em minha máquina:

$ export JAVA_HOME=/opt/jdk1.6.0_10/
$ echo $JAVA_HOME
/opt/jdk1.6.0_10/

Tudo alterado e funcionando normalmente!!
Note que o Tuxguitar também necessita de algumas bibliotecas do SWT. Se você estiver tendo algum problema com isto, ou se quiser usar uma outra versão destas bibliotecas (que você baixou e instalou manualmente), você pode editar o script de inicialização do Tuxguitar, digitando (como root):

vi /usr/bin/tuxguitar

Bom, agora é mãos à obra, compositores!! E, claro, se a música ficar boa, se ficar ruim, se a inspiração veio ou foi embora: COMENTEM!!!!

sexta-feira, 23 de abril de 2010

Fazendo Backup de um Repositório SVN

Um repositório do SVN é, na verdade, um banco de dados, embora tendo suas próprias peculiaridades. Assim, ele pode sofrer backup e pode ter seu conteúdo restaurado, total ou em parte. Este artigo ensina apenas a fazer backup do repositório. Há outros artigos nossos com outros tutoriais sobre o SVN que podem ser consultados: como configurar o SVN por túnel de SSH, os modos de configuração do SVN; configurando o SSH para atuar com o SVN.
Cada repositório SVN tem uma variável numérica que é incrementada a cada novo commit (efetivação), denominada "revision". Quando se faz backup, é interessante saber-se em qual número está o revision, ou para contabilizar a quantidade de alterações que foram enviadas, ou mesmo para saber se houve mudanças realmente desde o último backup. Para se obter o número da revisão mais recente, utilize o seguinte comando:

svnlook youngest [path e nome do repositório]

Exemplo:
$ svnlook youngest /var/svn/repo15
237
$

O comando anterior responde apenas o número da revisão, de forma que sua saída pode ser colocada diretamente em uma variável de um script. Para se obter mais informações sobre quem é o autor da última revisão e quando ele fez o commit, utilize o comando:

$ svnlook info /var/svn/repo15
fulano
2010-04-21 23:48:41 -0300 (Qua, 21 Abr 2010)
48
Esta é a mensagem que o autor deixou na revisão.

As linhas da resposta são: autor, data da revisão, número de caracteres da mensagem e a mensagem da revisão.
Ou, para inspecionar uma revisão anterior específica, use:

$ svnlook info /var/svn/repo15 -r 200
[sendo 200 a revisão antiga que se deseja inspecionar]

  • Backups Completos
O backup completo pode ser feito com o segunte comando:

$ svnadmin dump /var/svn/repo15 > repo15.r237

Isto fará o backup completo do repositório e o colocará no arquivo "repo115.r237", que pode ter o nome que você desejar. É claro que, quanto maior o repositório, mais lenta esta operação e maior será o arquivo (embora o arquivo de backup costume ser menor que o repositório em si). Muitas vezes, é isso mesmo que desejamos. No entanto, é possível se fazer backup de parte do repositório, a partir de números de revisão informados. Outra forma de backup pode ser:

Fazendo uma cópia direta do repositório para outro, que ficará idêntico ao primeiro:

svnadmin hotcopy /var/svn/repo15 /var/svn/repo16
[funciona exatamente como um comando "cp -r"]

Nesta opção, se você usa o Berkeley DB, você pode dar uma "limpada" nos arquivos de log que não são mais usados, diminuindo o tamanho do repositório. Para tanto use esta opção:

svnadmin hotcopy --clean-logs /var/svn/repo15 /var/svn/repo16

O novo repositório criado é completamente funcional e pode inclusive sofrer dump!!

  • Backups Parciais
Utilize o seguinte comando, para fazer backup de apenas uma faixa de revisões desejada:

[backup apenas da revisão 200]
$ svnadmin dump /var/svn/repo15 -r 200 > repo15.r200

[backup apenas da revisão 100 a 200]
$ svnadmin dump /var/svn/repo15 -r 100:200 > repo15.r100-200

Se o seu repositório é gigantesco, é possível que se crie vários arquivos de dump separados. Para tanto, deve-se usar a opção "--incremental". Exemplo:

$ svnadmin dump /var/svn/repo15 -r 0:1000 > dumpfile1
$ svnadmin dump /var/svn/repo15 -r 1001:2000 --incremental > dumpfile2
$ svnadmin dump /var/svn/repo15 -r 2001:3000 --incremental > dumpfile3

  • Recuperando o Backup
Como dizem as boas normas de segurança: não basta fazer o backup, mas é preciso se TESTAR O BACKUP!! Assim, vamos recuperar o backup para o repositório. Sem saber isso, de que valeria tê-lo, não é mesmo??

svnadmin load /var/svn/repo16 < repo15.r237

Isto fará um monte de commits, exatamente como seus autores o fizeram, alimentando o novo repositório com o conteúdo de dump do arquivo de backup.
Um backup direto pode ser feito sem a necessidade de arquivo de backup, da seguinte maneira:

svnadmin dump /var/svn/repo15 | svnadmin load /var/svn/repo16

Bom, espero ter ajudado com todas estas dicas... se este artigo te ajudou, atrapalhou, resolveu seu problema ou acabou de vez com sua vida, simplesmente: COMENTE!!!!

quinta-feira, 25 de fevereiro de 2010

Abrindo Arquivos CHM no Linux

Arquivos CHM são arquivos em HTML compilados, em formato binário, onde se pode dispor todo o conteúdo referido no arquivo (textos e imagens). É o formato utilizado para as seções de Help dos programas desenvolvidos para Windows.
Seria um formato inútil para o Linux, não houvesse, pela rede, uma série de manuais e tutoriais distribuídos em CHM!! Entretanto, abrir este tipo de arquivo no Linux é bem fácil, e existem dois programas muito úteis:

  • Abrindo Arquivos CHM com o XCHM


O xchm é um programa bem simples, leve e fácil de usar, disponível para qualquer distribuição Linux (e até outros sistemas, como o Unix!!). É o preferido para ler arquivos CHM. Tem-se notado, no entanto, que ele tem alguns problemas de lentidão em determinadas situações específicas, quando o arquivo é muito grande.
Dificilmente ele vem com a sua distribuição, mas pode ser instalado sem problemas buscando-o nos repositórios. Para distribuições baseadas em Debian, basta digitar (como root!!):

apt-get update
apt-get install xchm

  • Abrindo Arquivos CHM com o CHMSEE


O chmsee é um visualizador mais recente e poderoso, embora leve, construído sob o aval do Google Code e disponível gratuitamente para Linux, MacOS e Unix. Dentre as vantagens que ele apresenta, estão:

- Melhor renderização das páginas, pois o chmsee utiliza o poderoso motor de renderização gecko, vindo não só a melhorar o desempenho da renderização (em relação ao xchm), como também reconhecer páginas mais sofisticadas, com suporte a CSS, internacionalização, JavaScript, etc.
- Utilização de Favoritos (o famoso Bookmarks), como se fosse um navegador!

Dificilmente ele vem com sua distribuição, mas pode ser baixado da sua página ou instalado através de seu repositório (caso você utilize Debian, Ubuntu, Fedora, OpenSUSE, ArchLinux, FreeBSD, Gentoo ou MacOS; em cujos repositórios atualmente o programa se encontra). Para distribuições baseadas em Debian, basta digitar (como root!!):

apt-get update
apt-get install chmsee

Bom, espero ter ajudado com uma informação completa!! Boa sorte e, não se esqueçam: COMENTEM!!!