sábado, 22 de novembro de 2008

Desabilitar montagem automática NTFS no Ubuntu

Para desabilitar a montagem automática de partições NTSF no Ubuntu, basta editar o arquivo fstab e comentar as linhas que fazem referência às partições desejadas. Como root, execute o seguinte comando:

# gedit /etc/fstab
Comente as linhas desejadas (adicionar # na frente da linha). No meu caso foram as linhas que faziam referência a /dev/hda1 e /dev/hda5. Salve, feche o arquivo e pronto!

sexta-feira, 25 de julho de 2008

Ajude a sustentar a Wikipédia

Ajude a sustentar a Wikipédia e outros projetos, sem colocar a mão no bolso, e concorra a um Eee PC!
…e também a pen drives, card drives, camisetas geeks, livros e mais! O BR-Linux e o Efetividade lançaram uma campanha para ajudar a Wikimedia Foundation e outros mantenedores de projetos que usamos no dia-a-dia on-line. Se você puder doar diretamente, ou contribuir de outra forma, são sempre melhores opções. Mas se não puder, veja as regras da promoção e participe - quanto mais divulgação, maior será a doação do BR-Linux e do Efetividade, e você ainda concorre a diversos brindes!

quinta-feira, 26 de junho de 2008

Transformar caracteres especiais em códigos

PORTUGUÊS
Algumas aplicações apresentam incompatibilidades em relação à codificação dos caracteres. O resultado disso são caracteres com codificação errada, como uma letra acentuada que não é mostrada corretamente.

Uma alternativa para isso é transformar o conjunto de caracteres específico em códigos. Como os códigos são globais, dificilmente ocorrerá problema com codificação errada.

A função em PHP[bb] abaixo substitui os caracteres especiais de um texto em seus respectivos códigos.

function acento2codigo($string)
{
$acento = array("¡", "¢", "£", "¥", "§", "¨", "©", "«", "¬", "®", "°", "±", "´", "µ", "¶", "·", "¸", "»", "¿", "À", "Á", "Â", "Ã", "Ä", "Å", "Æ", "Ç", "È", "É", "Ê", "Ë", "Ì", "Í", "Î", "Ï", "Ñ", "Ò", "Ó", "Ô", "Õ", "Ö", "Ø", "Ù", "Ú", "Û", "Ü", "ß", "à", "á", "â", "ã", "ä", "å", "æ", "ç", "è", "é", "ê", "ë", "ì", "í", "î", "ï", "ñ", "ò", "ó", "ô", "õ", "ö", "÷", "ø", "ù", "ú", "û", "ü", "ÿ", "‚", "ƒ", "„", "…", "†", "‡", "ˆ", "‰", "‹", "Œ", "‘", "’", "“", "”", "•", "–", "—", "˜", "™", "›", "œ", "Ÿ");
$codigo = array("¡", "¢", "£", "¥", "§", "¨", "©", "«", "¬", "®", "°", "±", "´", "µ", "¶", "·", "¸", "»", "¿", "À", "Á", "Â", "Ã", "Ä", "Å", "Æ", "Ç", "È", "É", "Ê", "Ë", "Ì", "Í", "Î", "Ï", "Ñ", "Ò", "Ó", "Ô", "Õ", "Ö", "Ø", "Ù", "Ú", "Û", "Ü", "ß", "à", "á", "â", "ã", "ä", "å", "æ", "ç", "è", "é", "ê", "ë", "ì", "í", "î", "ï", "ñ", "ò", "ó", "ô", "õ", "ö", "÷", "ø", "ù", "ú", "û", "ü", "ÿ", "‚", "ƒ", "„", "…", "†", "‡", "ˆ", "‰", "‹", "Œ", "‘", "’", "“", "”", "•", "–", "—", "˜", "™", "›", "œ", "Ÿ");
return str_replace($acento, $codigo, $string);
}

ENGLISH
Change the special characteres to codes

Some aplications show an incompatibility with the characteres codification. The result of this are characteres with wrong codification, like a accented characteres that isn't showed correctly.

An option for this is change an specifically characteres set to codes. How the codes are global, will be difficult to happen problems with the wrong codification.

The PHP[bb] function above replace the special characteres in a text to their codes.

sábado, 14 de junho de 2008

Usar Apache para restringir acesso a arquivos

Using Apache to restrict file access

PORTUGUÊS

O Apache fornece um módulo especial de segurança que é definido através do arquivo .htaccess. Este é o nome padrão do arquivo que contém as diretivas que definirão o comportamento do servidor Apache. Este arquivo é acessado toda vez que um usuário faz uma requisição ao servidor, o servidor então procura pelo arquivo .htaccess e verifica as permissões ou negações definidas no arquivo.

Este arquivo pode ser usado para fazer restrições de acesso a arquivos, com senha ou não. O código abaixo restringe o acesso aos arquivos do site somente ao domínio http://www.genomaweb.net/, ou seja, qualquer site que tentar linkar algum arquivo do site http://www.genomaweb.net/, como imagens, javascript e folhas de estilo, não vai conseguir.

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://www.genomaweb.net/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.genomaweb.net$ [NC]
RewriteRule .*\.(.*)$ http://www.genomaweb.net/ [R,NC]

INGLÊS

Apache has a special security module that is defined by the file .htaccess. This is the default name of the file that contain the directives that will define the behavior of the Apache server. This file is accessed every time that an user make a requisition to the server, then the server search for the file .htaccess and check the permissions and prohibitions defined in the file.

This file can be used to make access restrictions to files, with password or not. The code below restrict the access to the files of website just fot the domain http://www.genomaweb.net/, it's mean, any website that try to link some file of http://www.genomaweb.net/, like imagens, javascript and cascade style sheets, won't get it.
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://www.genomaweb.net/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.genomaweb.net$ [NC]
RewriteRule .*\.(.*)$ http://www.genomaweb.net/ [R,NC]

sábado, 31 de maio de 2008

Paginação com PHP

Este código é utilizado para fazer paginação, utilizando MySQL (sintaxes SQL) e PHP. Coloque no início do código PHP.


# --- Início dos critérios para a paginação.
# Quantidade de itens por página.
$numReg = 20;

# Se não foi setada a página, assume-se como 0.
if (!isset($pg))
{
$pg = 0;
}

# De onde começa a seleção na base de dados.
$inicial = $pg * $numReg;

# Faz o SELECT na base de dados.
$cPaginacao = "SELECT * from tabela LIMIT $inicial, $numReg";
$qPaginacao = mysql_query($cPaginacao);

$cTotal = "SELECT * FROM tabela";
$totalBusca = mysql_num_rows(mysql_query($cTotal));
# --- Fim dos critérios para a paginação.

A segunda parte é a paginação propriamente dita. Inclua o código abaixo na área em que deseja que apareça a numeração. A estrutura que eu coloquei - os números dentro de uma tabela - foi só para manter o alinhamento vertical, pode ser removida sem problemas ou adaptada às necessidades.

# --- Início da paginação.
$quantPg = ceil($totalBusca/$numReg);
$quantPg++;
echo "<table border='0' cellspacing='0' cellpadding='0'>";
echo "<tr valign='middle'>";
echo "<td>Páginas </td>";
echo "<td>";

# Verifica se está na primeira página, se não estiver,
# libera o link para Anterior.
if ( $pg > 0)
{
echo "<a href=".$PHP_SELF."?pg=".($pg-1).">";
echo "Anterior";
echo "</a>";
}
echo "</td>";
# Faz aparecer os números das página entre o ANTERIOR e PRÓXIMO.
echo "<td>";
for($iPg = 1; $iPg < $quantPg; $iPg++)
{
# Verifica a página que o navegante está e retira o link
# do número para identificar visualmente.
if ($pg == ($iPg-1))
{
echo " [$iPg] ";
} else
{
$iPg2 = $iPg-1;
echo " <a href=".$PHP_SELF."?pg=$iPg2>";
echo "<b>$iPg</b>";
echo "</a> ";
}
}
echo "</td>";
echo "<td>";
# Verifica se está na ultima página, se não estiver ele
# libera o link para próxima.
if (($pg+2) < $quantPg)
{
echo "<a href=".$PHP_SELF."?pg=".($pg+1).">";
echo "Próxima";
echo "</a>";
}
echo "</td>";
echo "</tr>";
echo "</table>";
# --- Fim da paginação.

Não foi aplicada nenhuma folha de estilo aos links ou números das páginas. Sei que você pode fazer isso por conta própria! Após implementada a paginação, você adapta ela visualmente às suas necessidades.

Embora você possa acessar máquinas Windows remotamente usando o VNC, o Windows possui um protocolo próprio de acesso remoto, o RDP, que é mais eficiente que o VNC (sobretudo via Internet) e permite que vários clientes abram seções independentes no mesmo servidor, o que é impossível ao usar o VNC for Windows.

O maior obstáculo é a questão do licenciamento, pois além da licença do servidor, você precisa de licenças para os clientes. As máquinas Windows XP também podem ser acessadas remotamente, mas sem suporte a várias conexões simultâneas (quando você se loga remotamente, ele coloca a seção local em espera e ao se logar localmente ele fecha a conexão remota), enquanto nas versões server o número de seções simultâneas é limitado apenas ao hardware do servidor e o número de licenças.

Para ativar o acesso remoto numa máquina Windows, clique com o botão direito no "Meu Computador" e, no menu "Propriedades do Sistema", acesse a aba "Remoto"e marque a opção "Área de trabalho remota".

Clique no botão "Selecionar usuários remotos" e indique quais logins de acesso poderão ser usados remotamente. Por padrão, apenas o Administrador e o usuário logado atualmente podem acessar.

É importante enfatizar que apenas os usuários com senhas definidas podem acessar as máquina remotamente. Todos os logins sem senha são automaticamente recusados. Você pode definir as senhas na seção "Contas de usuário" do Painel de Controle.

Em caso de problemas na ativação, acesse a opção "Ferramentas administrativas> Serviços" do Painel de Controle e verifique se os serviços "Alocador RemoteProcedure Call (RPC)" e "Serviços de terminal" estão ativados.

Com o acesso remoto ativado na máquina Windows, vamos ao tema central deste tópico que é justamente como acessá-la remotamente a partir de clientes Linux.

Esta solução é muito usada por empresas que migram as estações de trabalho para Linux, mas precisam manter algumas cópias do Windows para rodar alguns aplicativos específicos. Ao invés de manter máquinas com o Windows, ou rodá-lo via VMware, pode fazer mais sentido manter um servidor Windows na rede, com o acesso remoto ativado e permitir que os usuários abram seções remotas quando necessário.

Nos clientes Linux, usamos o rdesktop, que pode ser tanto utilizado via linha de comando, quanto através do TSclient, Krdc ou outra das interfaces de acesso remoto que oferecem suporte a ele.

O uso mais simples para o rdesktop é simplesmente passar o IP ou domínio da máquina remota como argumento, como em:

$ rdesktop 192.168.0.1

O problema é que ele vai utilizar todas as opções default, abrindo uma tela de 800x600 com 256 cores. O protocolo RDP v5 usado no XP e 2003 server, suporta o uso de 16 bits de cor. Para ativar o recurso, inclua as opções "-5 -a 16" (o -5 é a versão do protocolo e o -a 16 especifica os bits de cor), como em:

$ rdesktop -5 -a 16 192.168.0.1

Para especificar a resolução, use a opção "-g", seguida pela resolução desejada, como em:

$ rdesktop -5 -a 16 -g 1000x700 192.168.0.1

Ao especificar a resolução, você pode usar qualquer número que adapte a janela ao seu desktop. Não é necessário se limitar às resoluções padrão. Para abrir a seção em tela cheia, use a opção "-f", como em:

$ rdesktop -5 -a 16 -f 192.168.0.1

Pressione "Ctrl+Alt+Enter" para chavear entre o modo fullscreen e janela.

Ao acessar uma máquina XP ou 2003 server, você pode também redirecionar o som para o cliente, de forma que os sons dos aplicativos sejam tocados usando a placa de som e caixas do seu micro, ao invés de no servidor. Funciona mesmo que o servidor não possua placa de som.

Este é um recurso que deve ser usado com cautela em redes com muitos clientes, ou via Internet, pois gera um fluxo de aproximadamente 800 kbits para cada cliente usando o som. Para ativar, adicione a opção "-r sound:local=/dev/dsp", como em:

$ rdesktop -5 -a 16 -r sound:local=/dev/dsp 192.168.0.1

Note que o /dev/dsp indica o dispositivo da placa de som no cliente. Se não funcionar da primeira vez, verifique as permissões de acesso (no cliente). Caso necessário, abra as permissões usando o comando chmod 666 /dev/dsp (como root, no cliente).

É possível também "compartilhar" pastas no cliente, de forma que os arquivos sejam acessados dentro da seção remota. Você pode, por exemplo, editar documentos numa pasta dentro do seu home, usando os programas instalados no servidor. Para isso, adicione a opção -r disk:nome=pasta, onde o "nome" indica como ele será visto dentro da seção e o "pasta" é a pasta no cliente que está sendo "compartilhada". Esta opção pode ser usada em combinação com as anteriores, como em:

$ rdesktop -5 -a 16 -r sound:local=/dev/dsp -r disk:arquivo=/home/joao 192.168.0.1

As pastas compartilhadas aparecem dentro do "Meu Computador - Outros", como se fossem compartilhamentos de rede montados.

Para compartilhar o CD-ROM, pendrive ou disquete, basta indicar a pasta onde eles ficam acessíveis, como em -r disk:cdrom=/mnt/cdrom ou -r disk:pendrive=/mnt/pendrive. A observação neste caso é que você vai sempre precisar montar o CD-ROM ou pendrive no cliente para acessá-lo dentro da seção remota. O comando simplesmente compartilha os arquivos acessíveis dentro da pasta.

É possível ainda mapear a impressora, de forma que você consiga imprimir na impressora instalada no seu cliente Linux de dentro dos aplicativos na seção remota. Se os clientes e o servidor estão na mesma rede local, é mais simples compartilhar a impressora via Cups ou Samba e instala-la no servidor. O mapeamento de impressoras do RPD, por sua vez, permite usar as impressoras quando isto não é uma opção, como ao acessar um servidor via Internet.

Em primeiro lugar, a impressora deve estar instalada no cliente e você deve conseguir imprimir nela usando o lpr. Nas distribuições derivadas do Debian, instale o pacote "cupsys-bsd" (que substitui o lpr), caso contrário nada vai funcionar.

Ao conectar no servidor, é preciso especificar o nome da impressora, da forma como é vista pelos aplicativos no cliente e também o driver Windows (esta é a parte mais complicada...) que o servidor vai usar na hora de enviar trabalhos para ela, como em:

$ rdesktop -5 -a 16 -r printer:e230="Lexmark Optra E+ (MS)" 192.168.0.1

Para descobrir o driver da Impressora no Windows, abra o menu de instalação de impressora, indique o fabricante e copie o nome que aparece no menu da esquerda:

No caso de impressoras paralelas, você pode também redirecionar a porta /dev/lp0. Neste caso, você poderia instalar a impressora dentro da seção remota, como se ela estivesse instalada no próprio servidor. Neste caso, adicione o parâmetro -r lptport:LPT1=/dev/lp0. É possível ainda redirecionar portas seriais, usando a opção -r comport:COM1=/dev/ttyS0.

Como viu, o rdesktop suporta um grande número de opções, o que torna os comandos de acesso bastante longos. É aí que entra o TSclient, que permite especificar as opções através de uma interface muito mais amigável.

Ele está disponível em várias distribuições; nas derivadas do Debian, você pode instala-lo via apt-get. A página oficial é a http://gnomepro.com/tsclient/

Por: Carlos E. Morimoto

Como habilitar o corretor ortográfico para o LaTeX usando o TeXnicCenter.

  1. Tools / Options / Aba Spelling / Clique no link "Download Directories"
  2. Baixe o idioma desejado
  3. Salve e descompacte no diretório onde o TeXnicCenter foi instalado
    Ex.: C:\Arquivos de programas\TeXnicCenter\Language
  4. Reinicie o TeXnicCenter
  5. Tools / Options / Aba Spelling / Clique no link "Download Directories"
  6. Em "Language" selecione o idioma desejado
  7. Configure como desejado!

Look and Feel é basicamente a aparência que sua aplicação irá tomar, definindo a forma como os componentes irão ser apresentados na tela.

try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
SwingUtilities.updateComponentTreeUI(this);
this.pack();
} catch(Exception e) {
e.printStackTrace();
}
SwingUtilities.updateComponentTreeUI(this) serve para atualizar os componentes caso eles já estejam criados. Caso os componentes ainda não foram inicializados, esta linha é desnecessária, juntamente com this.pack().

Alguns LookAndFeell's
com.sun.java.swing.plaf.gtk.GTKLookAndFeel (padrão GTK+)
javax.swing.plaf.metal.MetalLookAndFeel (Metal)
com.sun.java.swing.plaf.windows.WindowsLookAndFeel (Windows)
com.sun.java.swing.plaf.motif.MotifLookAndFeel (Motif)
javax.swing.plaf.mac.MacLookAndFeel (Mac)
Alguns LookAndFeel's podem gerar exceções por não existirem ou não estarem instalados no sistema ou não serem suportados em determinada plataforma. Alguns layouts, dependendo da plataforma, podem apresentar formatos diferentes em determinados componentes, como botões e caixas de texto, fazendo com que a aparência da aplicação fique desorganizada.

JDance é um site com vários LAF disponíveis para download.

Vários links sobre LAF:

Download de dois arquivos em Java para fazer a captura da imagem no monitor (Print Screen).

ScreenCapture.java

ScreenShot.java

Arquivo em Java para conectar em um banco de dados MS Access via ODBC.

JDBCapp.java