anúncios

domingo, 21 de agosto de 2016

5 anos de blog

O blog esta completando hoje, 21 de Agosto de 2016, 5 anos!

Gostaria de agradecer a todos pelo prestígio e a paciência de ler os posts que são publicados. Espero continuar compartilhando conhecimentos no blog para nossos leitores. Continuem prestigiando e divulgando o blog Mundo da Computação Integral, assim aumentamos nossa comunidade.

segunda-feira, 1 de agosto de 2016

Solucionar erro ao iniciar Emulador Android

Esse post, mostra a solução do erro ao iniciar o emulador Android na IDE Android Studio, que eu e um amigo estávamos com esse erro.

Erro: Cannot launch AVD in emulator
Output:
libGL error: unable to load driver: radeonsi_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: radeonsi

Solucao:
Se seu sistema for x64, procure o diretório Sdk/tools/lib64/libstdc++/
Geralmente encontra-se em: /home/seuUsuario/Android/Sdk/tools/lib64/libstdc++/ , esse é o caminho default, verifique o caminho onde salvou o Android_SDK para encontrar os diretórios tools/lib64/libstdc++.

Renomeie o arquivo libstdc++.so.6 para libstdc++.so.6.bak
#mv libstdc++.so.6 libstdc++.so.6.bak

Procure o diretório /usr/lib64, se não existir, crie como conforme abaixo:
#mkdir /usr/lib64
Agora execute o comando que faz o link simbólico
OBS: Lembrando de usar o caminho correto onde salvou o Android_SDK
#ln -s /usr/lib64/libstdc++.so.6 /home/seuUsuario/Android/Sdk/tools/lib64/libstdc++
Feche a IDE Android Studio, abre novamente e inicie o emulador.
Feito!

quinta-feira, 21 de julho de 2016

Instalando e Configurando servidor de Backup Bacula no Debian e CentOS

O que é o Bacula ?

Bacula é uma solução de backup empresarial multi-plataforma desenvolvida sob a licença GPL (open source). É robusta, cheia de recursos e modular – se adequando a redes de qualquer tamanho e qualquer topologia. Ferramenta de backup mais usada no Brasil, e a 3ª mais usada no mundo.

É um conjunto de ferramentas que permite administrar backup, restaurar e verificar dados de computadores de uma rede de sistemas diversos.

Resumo breve sobre o Bacula
  • Cliente e Servidor
  • Modular (Diretor, Client, DataBase, Console, Administração)
  • Compatível com Windows, Linux, FreeBSD
  • Permite execução de scripts, antes/depois do início do job
  • Suporte a maioria de dispositivos de storage do mercado
  • Infinidade de recursos para customização de backups

Depois de conhecer o Bacula e pra que ser serve, podemos seguir os procedimentos de instalação e configuração do Bacula em seu servidor GNU/Linux Debian ou CentOS/RHEL

O Bacula tem suporte para os SGBDs: MySQL, PostgreSQL e SQLite

No presente howto será utilizado o SGBD MySQL

Observação: Testado no GNU/Linux Debian 8 (Jessie) / CentOS 6.7 e a versão do Bacula é 7.4.3 até a data de publicação deste post.

No Debian
Atualizando o repositório de pacotes
#apt-get update
Instalando os pacotes pré-requisitos necessários
#apt-get install gcc g++ libssl-dev libmysql++-dev libmysqlclient15-dev mysql-server
No CentOS/RHEL
Atualizando o repositório de pacotes
#yum update
Instalando os pacotes pré-requisitos necessários
#yum install gcc g++ mysql-server-devel mysql-server
#service mysqld start

Download do Bacula
Opcional: Salvar em /tmp

$ cd /tmp
$ wget -c "https://sourceforge.net/projects/bacula/files/latest/bacula-7.4.3.tar.gz"
$ tar -xzvf bacula-7.4.3.tar.gz
$ cd bacula-7.4.3
Como foi utilizado o SGBD MySQL, será incluído na compilação
$ ./configure –with-mysql
$ make
# make install


Configuração o Banco de Dados do Bacula
Acesse o diretório /etc/bacula
$ cd /etc/bacula
E execute os scripts na ordem. O primeiro cria o banco, o segundo as tabelas e o terceiro o usuário bacula no banco.
./create_mysql_database -u root -p
./make_mysql_tables -u root -p
./grant_mysql_privileges -u root -p

OBS: O argumento -p irá ser solicitado o password do root do MySQL

Copiar o serviço Bacula para o /etc/init.d
No Debian # cp -av /etc/bacula/bacula /etc/init.d
# invoke-rc.d bacula status
Startar o serviço Bacula
# /etc/init.d/bacula start
Se tiver OK na inicialização do Bacula, acesse o console
# /etc/bacula/bconsole

No CentOS
# cp -av /etc/bacula/bacula /etc/init.d
Configurar o Bacula para startar no boot
#vim /etc/rc.d/init.d/bacula
#!/bin/bash
# chkconfig: 345 99 10
# description: bacula
PS: Use :x para salvar e sair do editor Vim
# chkconfig --level 345 bacula on
# service bacula start
Arquivos de configuração do Bacula
O Bacula possui 4 arquivos de configuração, onde cada um é responsável por uma determinada tarefa.
  • bacula-dir
  • bacula-sd
  • bacula-fd
  • bconsole.conf

BACULA-DIR
O arquivo Bacula Director (bacula-dir.conf) é o arquivo principal do sistema de backup.

BACULA-SD
O arquivo Bacula Storage Daemon (bacula-sd.conf) é o arquivo de configuração onde são definidos os storages, sendo assim, iremos definir nele configurações de armazenamento do backup.

BACULA-FD
O arquivo Bacula File Daemon (bacula-fd.conf) é o arquivo de configuração responsável por pegar as informações dos computadores e encaminhar para o Storage Daemon.

BCONSOLE
É a ferramenta de acesso e administração do sistema de backup Bacula.

Depois do bacula estiver em funcionamento, pode customizar os arquivos .conf que estão no diretório /etc/bacula, de acordo com suas necessidades. Algumas informações necessitam ter alterações replicadas em mais de um lugar dentro do mesmo arquivo .conf ou em mais de um dos arquivos (por exemplo: o nome do director, quando alterado no bacula-dir.conf, precisa ser alterado também no bacula-sd.conf, bacula-fd.conf e no bconsole.conf).

Qualquer erro de sintaxe nos arquivos de configuração será apontado pelo Bacula quando do reinício dos daemons, que também é necessário para aplicar as alterações. Portanto, sempre que fizer modificações, execute:

No Debian
#/etc/init.d/bacula restart

No CentOS/RHEL
# service bacula restart

Referências
[1] http://www.bacula.com.br/
[2] http://www.bacula.com.br/manual-do-bacula/
Feito!

quinta-feira, 14 de julho de 2016

Preparando o ambiente LaTeX no Linux e Windows

O que é o LaTeX ?

LaTeX é um conjunto de macros para a diagramação de textos TeX, bastante utilizado na produção de textos matemáticos e científicos, devido a sua alta qualidade tipográfica. Entretanto, também é utilizado para produção de artigos, livros, monografias, dissertações e teses.

O LaTeX foi desenvolvido na década de 80, por Leslie Lamport.

A ideia principal do LaTeX é distanciar o autor o máximo possível da apresentação visual da informação, pois a constante preocupação com a formatação desvia o pensamento do conteúdo escrito.

Ao contrário de sistemas WYSIWYG, o formato definitivo do texto só é conhecido após sua conclusão. Entretanto, existe uma ferramenta, como o LyX, que criam interfaces visuais para o LaTeX com sistemáticas intuitivas semelhantes ao WSYSIWYG, como WYSIWYM.

Os documentos escritos em LaTeX pode ser escritos em qualquer editor de textos, como o Bloco de notas, Vim, Gedit, Atom, porém existem IDEs exclusivas para LaTeX, como o Texmaker, Kile, TeXnicCenter.

O compilador LaTeX para cada plataforma são: MiKTeX para Windows, MacTeX para MacOS X e o TeX Live (Linux, FreeBSD).

No Windows é mais comum usar o compilador LaTeX MiKTeX e o editor TeXnicCenter.

No Linux é mais comum usar o compilador LaTeX TeX Live e o editor Texmaker.

Depois de conhecer o LaTeX e para que serve, podemos seguir os procedimentos de instalação do ambiente LaTeX no Linux e Windows.

No GNU/Linux Debian e derivados

Estando com o arquivo /etc/apt/sources.list devidamente com o repositório configurado, abre o terminal, logue como root e execute.

#apt-get install texlive-full
Isso irá instalar o TeX Live completo, irá fazer o download de 1GB e ocupará após instalado 2GB.
Depois que terminar, só falta instalar um bom editor LaTeX, como o Texmaker ou o Kile.

Texmaker
#apt-get install texmaker
Kile
#apt-get install kile

O procedimento seguinte é manual e pode ser aplicado em qualquer distribuição Linux, desde que tenha as dependências instaladas.

Primeiro o download da imagem ISO do TeX Live no endereço: http://www.lasca.ic.unicamp.br/pub/ctan/systems/texlive/Images/

Reginaldo@Saitam$ wget -c www.lasca.ic.unicamp.br/pub/ctan/systems/texlive/Images/texlive2016.iso

Após o download, montar a ISO emulando um DVD
# mount -t iso9660 -o ro,loop,noauto /caminho_entrada /caminho_saida
# mkdir /mnt/texlive
# mount -t iso9660 -o ro,loop,noauto /home/reginaldo/Downloads/texlive2016.iso /mnt/texlive
# cd /mnt/texlive
# ./install-tl
Se quiser manter o default, basta teclar ENTER, a menos que queira alterar localização.
Digite R para retornar e I para instalar.

No Windows

Para Windows não tem segredo, basta fazer o download do MiKTeX e TeXnicCenter, em seguinda fazer o procedimento de instalação padrão do Windows.

MiKTeX: http://miktex.org/download

TeXnicCenter: http://www.texniccenter.org/download

Também já tem disponível dois ambientes LaTeX na nuvem https://www.sharelatex.com/ e o https://www.overleaf.com/

Algumas apostilas LaTeX apostilas LaTeX
Feito!

segunda-feira, 23 de maio de 2016

Um breve resumo sobre as principais distribuições Linux

No Linux, existem diversas distribuições Linux, também nomeada de forma abreviada como distros, temos as easycore e hardcore, a primeira são destinadas para usuários iniciantes e a segunda para usuários avançados.
É importante saber que uma distribuição Linux é composta por uma coleção de pacotes incluindo o kernel (núcleo) do sistema operacional.
O Linux, é apenas o kernel do sistema operacional. Isto quer dizer que todas as distribuições Linux usam o mesmo kernel, mas com algumas customizações de acordo com o mantenedor da distro.
O Linux é um sistema operacional Unix-like, tem comportamento bem próximo ao sistema operacional Unix (multitarefa e multiusuário).
Uma distribuição Linux pode ser comercial e não comercial. No primeiro caso o usuário paga e tem direito o suporte técnico. No segundo caso não tem nenhum tipo de cobrança, basta fazer o download da imagem ISO no site oficial da distro.

Principais distros

Ubuntu: É uma distribuição Linux não comercial padrocinada pela Canonical e derivado no Debian. O nome do Ubuntu é uma palavra sul-africana que significa “humanidade para os seres humanos” ou “sou quem sou pelo que nós somos”. Fundador da Canonical Mark Richard Shuttleworth.
Como é derivado do Debian, obviamente possui o mesmo gerenciador de pacotes, no caso o apt-get e o aptitude, podendo ser utilizado um ou outro para instalar, remover e atualizar pacotes.
Possui versões Desktop, Server e Cloud.

Fedora: É uma distribuição Linux não comercial voltada para desktop e patrocinada pela RedHat Enterprise Linux (dona da marca Fedora). Teve origem após empresa norte americana decidiu investir em uma versão comercial do Linux (RHEL). O nome Fedora corresponde ao chapéu que aparece no logotipo da RedHat.
Utilizava o gerenciador de pacotes yum, mas a equipe Fedora resolveu substituir pelo novo Dandified Yum (DNF), que é um fork do yum.
Possui versões Workstation (desktop), Server e Cloud.

SUSE: É uma distribuição Linux comercial voltada para clientes corporativos, patrocinada pela Novel, porém pode testar o SUSE por 60 dias gratuitamente, depois disso decide em pagar para ter o suporte técnico ou escolher o openSUSE e depender da comunidade.
Utiliza o gerenciador de pacotes zypper que funciona como o apt-get do Debian, ou seja, busca o pacote no repositório, resolve dependências, faz a instalação, remoção e atualização.

openSUSE: É uma distribuição Linux não comercial com foco em desktop e patrocinada pela Novel, para desenvolver e manter os componentes do SUSE (distro comercial).
Utiliza gerenciador de pacotes zypper que funciona como o apt-get do Debian, ou seja, busca o pacote no repositório, resolve dependências, faz a instalação, remoção e atualização.

Mint: É uma distribuição Linux não comercial voltada para desktop, tem origem Irlandesa derivada nas distros Debian e Ubuntu. Na real, une a estabilidade do Debian e facilidade de Ubuntu.
O nome Mint significa hortelã em inglês, por isso que a cor e o formato do logo lembra da planta.
Utiliza gerenciador de pacotes apt-get e aptitude, podendo ser utilizado um ou outro para instalar, remover e atualizar pacotes.

Mageia: É uma distribuição Linux que possui uma longa trajetória, vou resumir, teve origem no Conectiva, que passou por Mandrake, Mandriva e atualmente o Mageia, basicamente um fork do outro.
Utiliza o gerenciador de pacotes urpmi para instalar, remover, atualizar pacotes.

Debian: É uma distribuição Linux não comercial. Atualmente várias distribuições se baseiam no Debian, como o por exemplo o Ubuntu e suas derivações.
O nome Debian vem da junção do nome fundador Ian com sua esposa Debra.
Utiliza gerenciador de pacotes apt-get e aptitude, podendo ser utilizado um ou outro para instalar, remover e atualizar pacotes.

RedHat: É uma distribuição Linux comercial voltada para clientes corporativos. O nome RedHat é uma referência ao chapéu vermelho do time de Lacrose da Universidade Cornell, dado ao fundador da companhia Marc Ewing por seu avô.
Utiliza gerenciador de pacotes yum para instalar, remover e atualizar pacotes.

CentOS: É uma distribuição Linux não comercial de classe Enterprise, basicamente uma réplica do RedHat e mantida pelo CentOS Project.
Utiliza gerenciador de pacotes yum que é utilizado para instalar, remover e atualizar pacotes.

Slackware: É uma distribuição Linux não comercial que tem como objetivo fornecer o sistema o mais próximo possível do Unix. Por isso faz uso diário do terminal e shell scripts para configuração e administração do sistema. Seu criador e responsável pela manutenção é o Patrick Volkerding.
O “SLACKWARE”, que significativamente se traduz “SLACK” como sendo “preguiça” e “WARE” como “produto”.
Utiliza o gerenciador de pacotes slackpkg, mas não resolve dependências, porém para facilitar tem um site https://slackbuilds.org/ que possui diversos pacotes exclusivos para Slackware.
Saiba como utilizar SlackBuilds no Slackware

Arch: É uma distribuição Linux não comercial, seu desenvolvimento é focado pela elegância e minimalismo simplicidade no código, e espera que o usuário faça esforços para compreender o modo de funcionamento do sistema. Usa o modelo rolling release, isto é não precisa ter uma imagem ISO para versão, podendo fazer apenas uma atualização dos pacotes do sistema para ter o sistema mais recente, resumindo o sistema é atualizado continuamente.
Utiliza o gerenciador de pacotes pacman para instalar, remover e atualizar pacotes.

Manjaro: É uma distribuição Linux derivada do Arch, basicamente um Arch easy. Usa o modelo rolling release.
Utiliza o gerenciador de pacotes pacman para instalar, remover e atualizar pacotes.

Gentoo: É uma metadistribuição baseado no gerenciador de pacotes portage. O gerenciamento de pacotes no gentoo é projetado para ser modular, portátil, fácil de manter, flexível e otimizado para a máquina. O Gentoo descreve como metadistribuição, devido a sua adaptabilidade quase que ilimitada.

Funtoo: É uma distribuição Linux derivada do Gentoo.
No início de 2008 o fundador do Gentoo Daniel Robbins propôs resolver problemas com a fundação Gentoo, porém ele saiu do projeto em 2004, e sua oferta foi recusada. Então resolveu fundar o Funtoo com a iniciativa de implementar está visão com o foco de compartilhar inovações.
Utiliza o gerenciador de pacotes portage para instalar, remover e atualizar pacotes.

E você pergunta. Qual é a melhor distro para usar ?
Essa pergunta somente você pode responder, experimente as distros na máquina virtual, assim terá a resposta da sua distro preferida.

E as distros de Pentests ?
As distros de Pentests mais utilizadas são Kali Linux (fork do Backtrack) e Parrot Security OS.
É bom ressaltar que pode instalar os pacotes de pentests em qualquer distro Linux, inclusive nas mencionadas.

Feito!

terça-feira, 17 de maio de 2016

Uma breve explicação das interfaces gráficas principais do Linux e BSD


Como no Linux tudo é de código aberto, e qualquer um pode criar qualquer coisa a qualquer momento no sistema, nós vivemos então em um gigantesco dilema: qual interface gráfica utilizar? Qual delas é melhor?
Sim! Nós temos poder de escolha! Você tem uma variedade de interfaces gráficas, algumas mais leves que outras; umas mais elegantes, outras prezando apenas a usabilidade.
E não se limita apenas ao Linux. O mundo dos sistemas BSDs também compartilham essas interfaces disponíveis no sistema do Linux.
Dessas interfaces gráficas, podemos destacar: KDE, GNOME, XFCE, LXDE, MATE, CINNAMON, UNITY, OPENBOX.
E olha que esses são apenas alguns nomes de interfaces gráficas, existem muito mais do que isso.
Detalhe: essas interfaces NÃO podem ser instaladas no Windows.
Vamos então começar a explicar as características delas:

KDE
O Projeto KDE teve início em 1996 com o programador alemão Matthias Ettrich, que criou uma interface baseando-se em outra interface conhecida como CDE, hoje não mais existente. O KDE é bastante famoso por ser muito similar à interface do Windows, e por isso é muito indicado aos iniciantes no Linux que buscam uma familiaridade com o sistema da Microsoft. Foi escrito usando a biblioteca QT, muito utilizada em toda interface, e por isso os programas sempre são parecidos e possuem um mesmo padrão.
O projeto ganhou a versão 4 há poucos anos, e vem se demonstrando cada vez mais estável e estilosa. O KDE é uma das interfaces livres mais elegantes e modernas que existem. Ela é regida por um sistema batizado como Plasma que permite que o usuário adicione widgets na sua área de trabalho. Os widgets nada mais são do que alguns aplicativos que você pode adicionar livremente no seu sistema. Eles podem ser desde pequenos bloquinhos de papel de lembrete, simulando um post-it, até quadros negros para desenhar.
O painel do sistema, ou seja, a barrinha de baixo, é completamente personalizável. Você também pode pôr widgets ali, você pode acrescentar outro painel em qualquer canto da tela, pode deletar todos os widgets. Pode aumentar ou diminuir a barra em ambos os sentidos (horizontal e vertical), pode fazê-la se esconder e tudo mais.
Isso é um recurso muito recorrente no Linux e que também é usado no MacOS X: várias áreas de trabalho. Esse recurso está presente em praticamente TODAS as interfaces gráficas e não se limita apenas ao KDE.
Para entender melhor o que são essas áreas de trabalho múltiplas: http://whylinuxisbetter.net/items/virtual_desktops/index_br.php?lang=br
Agora chegou a hora de ressaltar uma desvantagem do KDE: ele é muito pesado. Recomenda-se um PC com no mínimo 1 GB de RAM para rodá-lo razoavelmente, já que ele pode iniciar consumindo pelo menos 300 MB de RAM.

GNOME
O GNOME é uma das interfaces gráficas mais famosas. Foi criado em 1997 pelos mexicanos Miguel de Icaza e Federico Mena Quinteiro, utilizando a biblioteca GTK, que havia sido criada para o desenvolvimento do programa conhecido como GIMP, que hoje é uma grande referência de programa de código aberto de edição de imagens, muitas vezes comparado ao Photoshop.
As versões 2.x do GNOME faziam muito sucesso e eram padrões em muitas distribuições Linux, como no Ubuntu, Fedora, Debian, Red Hat Enterprise Linux (RHEL), CentOS, entre outras.
Recentemente, o GNOME resolveu mudar completamente sua interface, alterando para a biblioteca GTK 3, e adotando novos ares de modernidade, o que gerou muita desconfiança, assim como aconteceu com o KDE ao mudar para a versão 4. O GNOME 3, ou GNOME-Shell, teve recepção mista pelo público do Linux, o que obrigou muitas distribuições a buscarem alternativas a Interface nova. O Ubuntu, por exemplo, adotou a interface Unity, que era uma derivação do GNOME, mas se tornou uma interface própria nos últimos anos.
O GNOME era reconhecido por ser muito leve, mas ultimamente vem ganhando mais peso, sendo recomendável 1 GB de RAM para rodá-lo bem, já que ele chega a consumir cerca de 250 a 300 MB de RAM ao iniciar. Ou seja, uma das desvantagens do GNOME novo é que ele é pesado e pode requerer muito do seu processador. Além disso, não é possível customizá-lo como no KDE. Não é possível acrescentar novas barras, novos widgets ou qualquer coisa assim, limitando o usuário.

Unity
Originada nas versões Netbook do Ubuntu, desenvolvida pela Canonical, empresa que é responsável pelo desenvolvimento e distribuição do Ubuntu, a Unity acabou se tornando uma interface muito importante em uma das distros mais famosas do mundo. Fez sua estreia na versão 11.04, como uma interface alternativa ao GNOME Clássico, e quando estreou como interface padrão, na versão 11.10, teve uma recepção mista, o que levou muitas pessoas a usarem as versões do Ubuntu com outras interfaces (os Kubuntu e Xubuntu, por exemplo, que possuem KDE e XFCE).
A Unity, no entanto, conquistou muitos adeptos com o passar do tempo, se tornando uma boa opção ao GNOME 3, e ganhou diversas funcionalidades desde então. Sua interface é bonita, elegante e possui efeitos interessantes.
Como a Unity é uma interface que requer um pouco do hardware e como sua versão 2D já não está mais em desenvolvimento, seu peso pode ser uma desvantagem no uso da interface, sendo recomendado cerca de 512 MB a 1 GB de RAM para utilizá-la bem. Além disso, a Unity também é limitada no quesito personalização. Não é possível adicionar widgets ou personalizar as barras, apenas adicionar alguns aplicativos e mudar a aparência das janelas e algumas cores do sistema e ícones.

Cinammon
A distribuição Linux Mint nasceu como uma derivação do Ubuntu, desenvolvido por Clement Lefebvre, tornando a interface gráfica do sistema da Canonical bem mais atraente e familiar a usuários leigos. Logo a distribuição se desvencilhava um pouco das amarras do Ubuntu e, apesar de ainda ter o sistema como base, ele possui programas próprios e repositórios próprios.
Como o Ubuntu tinha o GNOME como interface padrão, o anúncio do GNOME 3 estremeceu as relações da Canonical com o GNOME e os levou à utilização da Unity. Os criadores do Linux Mint, no entanto, se recusavam a usar ambos GNOME 3 e Unity. Eles queriam preservar a elegância de seu sistema e o modo familiar com que ele funcionava. Então eles deram início ao Projeto Cinammon, que pegava o código do GNOME 3 e alterava-o para tornar algo mais similar ao GNOME 2.
Os esforços valeram a pena e hoje o Cinammon é uma belíssima alternativa ao GNOME 3, sendo um pouco mais leve, requerendo pelo menos 512 MB de RAM para rodar bem, com efeitos bonitos e altamente customizável, com os chamados Desklets, que são uma espécie de widget, assim como no KDE.

XFCE
O XFCE é uma interface muito interessante e leve. Foi desenvolvida por Olivier Fourdan, com o objetivo de ser uma interface para rodar em computadores com menos recursos. As distribuições que apresentam a interface geralmente vêm com programas que consomem pouca memória RAM, já que o XFCE em si pode rodar em processadores antigos de pelo menos 500 MHz e com cerca de 256 MB de RAM.
Como foi feita usando GTK+ 2, a interface é muito similar ao GNOME 2, e muitas vezes foi utilizada em seu lugar, como é o exemplo das distribuições Xubuntu e Ubuntu Studio, ambas baseadas no Ubuntu e utilizam essa interface.
Também é altamente customizável, sendo possível acrescentar barras novas, novos itens nas barras e alterar a aparência do sistema e os ícones.
Não há uma grande desvantagem em relação ao XFCE que possa ser citada a não ser a pouca preocupação com os efeitos visuais em algumas distros, o que pode tornar o XFCE um pouco mais feio em relação ao KDE, GNOME, Unity ou Cinammon.

LXDE
O LXDE é uma interface muito leve desenvolvida com foco nos computadores antigos criado pelo taiwanense Hong Jen Yee. Segundo o website oficial do LXDE, a interface é tão leve que chega a rodar em um Pentium II 266 MHz com 192 MB de RAM com uma velocidade razoável, algo impossível para o KDE ou GNOME. Também há uma informação de que ele chega a rodar rápido em um AMD Athlon 1.6 de 1.4 GHz com 128 MB de RAM.
Desenvolvido usando GTK+ 2, a interface lembra um pouco o GNOME 2, e não possui grandes efeitos de tela, justamente para priorizar a velocidade, estabilidade e leveza da interface. Entretanto é altamente customizável.

OpenBox
O OpenBox é uma interface gráfica muito leve, escrita na linguagem C, e usando bibliotecas GTK+. Pode ser incorporada ao GNOME ou ao KDE. É altamente customizável, mas pode ser um pouco complicada e fora do comum para alguns usuários. Sua maior vantagem é poder rodar em computadores muito antigos como um 486DX com 16 MB de RAM.

Bom, aqui está um emaranhado bem explicado de algumas interfaces gráficas. Para encontrar a melhor, basta você testar e escolher. Não existe uma melhor que a outra, só a que melhor atende as suas necessidades.


Confere outros gerenciadores de janelas leves e teste na sua distribuição Linux.

E você, qual interface gráfica utiliza na distro Linux que está usando atualmente ?

terça-feira, 1 de março de 2016

Configurando o ambiente de desenvolvimento PHP com framework PhalconPHP

O que é PhalconPHP ?

PhalconPHP é um framework full-stack escrito em C ANSI e compilado na forma de uma extensão do PHP. Isso quer dizer que todos os sources do framework foram convertidos em código nativo de cada sistema operacional. Perfomance.

Segue a estrutura Model-View-Controller (MVC). Na perfomance é 8x mais rápido comparado com o CodeIgniter.

Depois de conhecer o PhalconPHP e para que serve, podemos seguir os procedimentos de configuração no ambiente de desenvolvimento PHP com PhalconPHP na distribuição Linux Debian e/ou CentOS/RHEL/Fedora.

Procedimentos de configuração do PhalconPHP
Debian: #apt-get install git-core gcc autoconf make apache2 php5 php5-dev php5-mysql mysql-server libpcre3-dev
CentOS/RHEL/Fedora: Antes deve ser instalados os pré-requisitos descritos em: Instalando e configurando ambiente de desenvolvimento web no CentOS
#yum install php-devel pcre-devel gcc make

Download do cphalcon e phalcon-devtools via Git
cphalcon é a extensão PhalconPHP que será compilada e adicionada o phalcon.so no Apache
phalcon-devtools é uma ferramenta que permite executar comandos para criar projetos, controlles e modelos de forma rápida. Opcional: #mkdir /opt/phalcon
#cd /opt/phalcon
git clone https://github.com/phalcon/cphalcon.git
git clone https://github.com/phalcon/phalcon-devtools.git

Após a finalização da clonagem do repositório cphalcon e phalcon-devtools Execute:
#cd cphalcon/build
#./install

#cd /opt/phalcon/phalcon-devtools
#./phalcon
#ln -s /opt/phalcon/phalcon-devtools/phalcon.php /usr/bin/phalcon
#chmod +x /usr/bin/phalcon

Debian: criar o arquivo 30-phalcon.ini no diretório /etc/php5/apache2/conf.d e adicionar a extensão phalcon.so
#vim /etc/php5/apache2/conf.d/30-phalcon.ini
extension=phalcon.so
CentOS/RHEL/Fedora: criar o arquivo phalcon.ini no diretório /etc/php.d/ e adicionar a extensão phalcon.so
#vim /etc/php.d/phalcon.ini
extension=phalcon.so

ESC +x (salva e sai do editor Vim)

Reinicie o Apache
Debian: #service apache2 restart
CentOS/RHEL/Fedora: #service httpd restart

Checar a instalação do PhalconPHP
#vim /var/www/checkphalcon.php <?php
print_r(get_loaded_extensions()); ?>

No browser acesse http://IP/checkphalcon.php
Deve aparecer algo semelhante, mas o foco nesse caso é phalcon Array ( [0] => Core [1] => date [2] => ereg [3] => libxml [4] => openssl [5] => pcre [6] => zlib [7] => bcmath [8] => bz2 [9] => calendar [10] => ctype [11] => dba [12] => dom [13] => hash [14] => fileinfo [15] => filter [16] => ftp [17] => gettext [18] => SPL [19] => iconv [20] => json [21] => mbstring [22] => session [23] => posix [24] => Reflection [25] => standard [26] => shmop [27] => SimpleXML [28] => soap [29] => sockets [30] => Phar [31] => exif [32] => sysvmsg [33] => sysvsem [34] => sysvshm [35] => tokenizer [36] => wddx [37] => xml [38] => xmlreader [39] => xmlwriter [40] => zip [41] => apache2handler [42] => PDO [43] => mysql [44] => mysqli [45] => pdo_mysql [46] => pdo_pgsql [47] => pdo_sqlite [48] => pgsql [49] => sqlite3 [50] => phalcon [51] => mhash )
Outro é verificar no phpinfo();
#vim /var/www/info.php
<?php
phpinfo();
?>

No browser, acesse http://IP/info.php

Note se o Phalcon foi habilitado.

Com o PhalconPHP habilidado no Apache, podemos começar a desenvolver projetos PHP com framework PhalconPHP.

O PhalconPHP não impõe uma estrutura fixa para desenvolvimento de projetos. Devido o fato do baixo acoplamento, você pode desenvolver projetos PhalconPHP com a estrutura de arquivos que for mais conveniente para você.

Para fins deste howto será adotado a estrutura base

projetoPhalcon
app/
controllers/
models/
views/
public/
css/
js/
img/

#cd /var/www/projetoPhalcon
#mkdir app/ public/
#mkdir app/controllers/ app/models/ app/views/
#mkdir public/css/ public/js/ public/img/

Note que não é necessário o diretório library relacionado ao PhalconPHP. A estrutura está disponível na memória, pronto para usar.

URLs amigáveis

URLs amigáveis são melhores para SEO, além de ser fácil para os usuários lembrarem. PhalconPHP suporta o módulo rewrite fornecido nos servidores web mais populares (Apache, Nginx).

Não é obrigatório usar URLs amigáveis no projeto com PhalconPHP, use se quiser apenas. Se preferir, crie o .htaccess no diretório do projeto.

#vim /var/www/projetoPhalcon/.htaccess

RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]

Dessa forma todas as solicitações do projeto serão redirecionadas para o diretório public/, tornando a raiz do projeto. Esta etapa garante que os diretórios internos do projeto permanecem ocultos da visão pública, eliminando ameaças deste tipo de segurança.

O segundo conjunto de regras irá verificar se o arquivo solicitado existe e, se isso acontecer, ele não tem que ser reescrito pelo módulo do servidor web.

#vim /var/www/projetoPhalcon/public/.htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]

Criar um VirtualHost para o projeto
OBS: O projetoPhalcon é o diretório deste projeto exemplo, em outros projetos defina o nome de acordo com o projeto que está desenvolvendo.

#vim /etc/apache2/sites-available/projetoPhalcon

Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all


Habilitar o VirtualHost do projeto
# a2ensite projetoPhalcon

Reinicie o Apache
Debian: #service apache2 restart CentOS/RHEL/Fedora: #service httpd restart
Autoinicialização do projeto

O arquivo de inicialização serve de base da aplicação, o que lhe dá o controle de todos os apectos do mesmo. Nesse arquivo é implementado a inicialização dos componentes, bem como o comportamento da aplicação.

#cd /var/www/projetoPhalcon/
#vim public/index.php

Source: index.php

Criação do primeiro Controller
#vim app/controllers/IndexController.php
Source: IndexController.php
ESC +x (salva e sai do editor Vim)
Após testar o controller no browser http://IP/projetoPhalcon, faça o teste no app/views.
Esse foi um exemplo de controller, mas no modelo MVC, a parte visual é implementada no view, nesse caso será mostrado a mesma mensagem no app/views/index.phtml
No app/controllers/IndexController.php deixe a function indexAction() vazia.
#vim app/views/index/index.phtml
Source: index.phtml
No browser, acesse http://IP/projetoPhalcon/

Referência
[1] https://docs.phalconphp.com/en/latest/index.html
Feito!