Translate

Pesquisar este blog

domingo, 15 de junho de 2014

Criando um servidor VNC Linux com tightvnc

O VNC é um protocolo de virtualização de Desktop via rede, no Linux funciona de forma interessante. Não apenas acesso remoto à desktop de um usuário, mas também como servidor de desktop, que é muito mais leve e eficiente que o SSH.

Quando uma conexão quebra, o VNC mantém no lado do servidor ela ativa. Basta se conectar de novo e a tela estará lá, onde estava, sem fechar nenhum aplicativo.

O VNC funciona por usuário e cada conexão é uma porta. A porta 5901 é o canal 1, a porta 5902 é o canal 2 e assim por diante.

Depois de instalar o tightvnc como servidor, você deve ligar o servidor com o mesmo usuário que vai acessar o Desktop Virtual.

O servidor tightvnc funciona via comando:
vncserver :1

  • :1  Indica a porta que ele deve estar escutando. 
  • Pela primeira vez que ele executa, vai pedir a senha para acesso. Se você quiser mudar a senha depois use o comando vncpasswd.
  • Ele vai abrir o twm como gerenciador de janelas default. Para mudar isso, modifique o arquivo .vnc/xstartup.

A parte mais divertida da brincadeira é que ele pode ser acessado via celular com um programa cliente de VNC, como o bCNV ou do AndroidVNC.

Além disso o XFCE funciona muito bem com VNC, mas o KDE é bem pesado por causa da parte gráfica dele.

Instalando multilibs no Slackware64

O melhor modo de funcionar e compilar programas 32 bits no Slackware 64 bits é utilizando o pacote multilib, do Alien Bob, um dos membros do Slackware team.

Os programas 32 bits também vão precisar de dependências, o que o blackpkg pode instalar, a partir da versão 1.2, ele pode usar a opção -m32 para compilar e instalar um pacote como de compatibilidade 32 bits.

Por exemplo:
blackpkg -y -m32 soundtouch
Isto vai instalar o soundtouch como um pacote de compatibilidade de 32 bits no Slackware 64.

  • Instalando multilib no Slackware64:
mkdir 14.1
cd 14.1
lftp http://www.slackware.com/~alien/multilib/14.1/
mirror .
exit
upgradepkg --install-new *.t?z
upgradepkg --install-new slackware64-compat32/*-compat32/*.t?z

Os pacotes estarão instalados e o seu Slackware será mutilib assim que você reiniciar a máquina.

Mais informações: http://www.slackware.com/~alien/multilib/

sábado, 24 de maio de 2014

Compilando o KDE

Como o KDE 4.5 é pesado, mas é possível compilá-lo para melhorar a performance como o Dolphin, que leva um tempão pra abrir.

Para compilar, baixe a pasta KDE dos fontes do Slackware e edite o arquivo KDE.options. Ao final do arquivo e não no começo coloque:

export SLKCFLAGS="-O2 -march=native" #(Se for 32 bits)
export SLKCFLAGS="-O2 -march=native -fPIC" #(Se for 64 bits)

Isso já basta porque os scripts do Slack foram feitos para serem recompilados pelo usuário.
-march=native  vai permitir que o processador seja detectado pelo GCC ao invés de usar instruções genéricas como -march=486 (486).

È óbvio que não vai funcionar estes pacotes em outra máquina, mas é o que queremos: que seja otimizado ao máximo para a máquina atual.

Depois de terminado cada pacote os scripts vão instalar o KDE novo. Se tiver o KDE já instalado, você vai ter que dar upgradepkg --reinstall /tmp/kde-build/*.t?z.


terça-feira, 21 de janeiro de 2014

Compilando o Firebird SQL no Slackware

O banco relacional Firebird é muito usando no mundo Delphi/Lazarus. Ele é de pequeno porte, mas contém funcionalidades como transações, MVCC, stored procedures,  UDFs, etc.

ATENÇÃO: As databases do firebird performam extrememente mal em partição ext4, mas para isso existem algumas opções:
  1. Pôr em uma partição xfs (a melhor performance).
  2. Pôr em uma partição ext3.
  3. Montar a ext4 com a opção barrier=0, o que vai diminiur a segurança do journaling para o nível de uma ext3.

O Firebird possui 3 arquiteturas de servidor: o SuperServer, o SuperClassic e Classic (os dois últimos são compilados juntos, ufa!).

  • O SuperServer é feito para máquinas mais leves, pouco suporte a várias CPUs, mas ele compartilha bem os recursos entre as conexões, tornando-se escalável se o hardware for pequeno. Ele cria um processo fbserver que serve todas as conexões.
  • O Classic é feito para máquinas pesadas e muitos usuários, suporte a várias CPUs, ele não usa recursos compartilhados e sim dedicados a cada conexão. Ele cria um processo fb_inet_server para cada conexão.
  • O SuperClassic surgiu a partir do Firebird 2.5, ele é uma evolução do Classic. Na verdade possui o gerenciamento do Classic, com recursos dedicados (sem memória compartilhada), mas abre apenas um processo fb_smp_server  que serve todas as conexões.

Para compilar baixe os fontes e dê os seguintes comandos:
tar xvf Firebird-xxxx.tar.gx -C /root/
export CFLAGS="-O2 -march=native -mtune=native"
export CPPFLAGS="-O2 -march=native -mtune=native"
export CXXFLAGS="-O2 -march=native -mtune=native"
./autogen.sh --with-system-icu --enable-superserver
make
make install

  1. Note que pôr --prefix=/usr vai dar erro, ele deve ir pra outra pasta mesmo.
  2. Para compilar o Classic/SuperClassic remova o --enable-superserver

Para configurá-lo é matéria pra outro post. Mas geralmente ele não precisa muita complicação.
Crie um usuário e grupo firebird:

groupadd firebird
useradd -g firebird firebird

Depois de compilado vá para /usr/local/firebird/bin e rode su firebird -c "./fbguard"
Depois é só instalar o flamerobin ou o SQuirrel e começar a usar.

domingo, 15 de dezembro de 2013

Índices parciais no PostgreSQL

Uma funcionalidade poderosa do banco de dados PostgreSQL é a criação de índices parciais.

Mas o que são índices parciais?
Índices parciais são indices aplicados somente a um grupo de registros que correspondem a um predicado.

Po exemplo:
CREATE INDEX Document_idx1 on Document(id_category)
WHERE active = true;

Aqui eu defini um índice que só indexará os registros em que o campo active = true . Nos outros registros não ocorrerá índexação.

Isso garante uma velocidade do índice bem maior graças ao tamanho reduzido, mas toda vez que for dar um SELECT você terá que pôr WHERE active = true para que otimizador realmente use o índice.

sábado, 14 de dezembro de 2013

Omega Base mudará de nome?

A Base de Conhecimento Omega Base (Base Ômega), mudará de nome na próxima versão, a 1.0.7. O novo nome ainda é indefinido, e a razão é um nome mais arrojado para o projeto.


O Ômega Base 1.0.7 terá um visual modificado
O Base Ômega está no endereço http://sourceforge.net/projects/omegabase.

A minha idéia foi a simplicidade de arquitetura de software, concedendo assim performance. Apesar de ser em Java,que usa camadas como Hibernate, JPA, JSF, etc, etc... O Omega Base foi baseado em codificação simples em HTML e JSP. Usa classes DAO importadas pelo Black Toolkit. A escalabilidade é um ponto forte, bem como a facilidade de instalação.

O banco de dados que suporta é o PostgreSQL que é totalmente livre, robusto, veloz, e possui funcionalidades interessantes, das quais destaco suporte a full text search (FTS) nativo, índices parciais e suporte a XML.

O Omega Base é capaz de "ler texto dentro" de alguns formatos de arquivos anexos e você poder usar as palavras na busca, tornando mais útil que qualquer wiki da vida.
Ele suporta as linguagens em inglês e português.

sábado, 7 de dezembro de 2013

Índices parciais no PostgreSQL

Uma funcionalidade poderosa do banco de dados PostgreSQL é a criação de índices parciais.

Mas o que são índices parciais?
Índices parciais são indices aplicados somente a um grupo de registros que correspondem a um predicado.

Po exemplo:
CREATE INDEX Document_idx1 on Document(id_category)
WHERE active = true;

Aqui eu defini um índice que só indexará os registros em que o campo active = true . Nos outros registros não ocorrerá índexação.

Isso garante uma velocidade do índice bem maior graças ao tamanho reduzido, mas toda vez que for dar um SELECT você terá que pôr WHERE active = true para que otimizador realmente use o índice.