Custom Search

segunda-feira, 25 de maio de 2009

Dia Mundial do Orgulho Nerd é comemorado nesta segunda

Aficionados por novas tecnologias comemoram nesta segunda-feira, 25 de maio, o Dia Internacional do Orgulho Nerd. A data é uma referência à estréia do primeiro filme da série Guerra nas Estrelas, em 1977, e começou a ser celebrada em 2006 na Espanha. A idéia partiu de Germán Martínez (conhecido como Señor Buebo) e defende de forma bem-humorada o "direito de ser nerd".

Bom, aproveitei para fazer o meu primeiro teste de nerdeza, segue o score, acho que fui bem para a primeira vez. High-Nerd!


I am nerdier than 82% of all people. Are you a nerd? Click here to take the Nerd Test, get nerdy images and jokes, and talk on the nerd forum!


Ver. 2.0!!!




NerdTests.com says I'm a Kinda Dorky Nerd King.  Click here to take the Nerd Test, get geeky images and jokes, and talk to others on the nerd forum!

quinta-feira, 21 de maio de 2009

Geek Scape

Bom... esse poste eh pra falar um pouco sobre o projeto GeekScape.
O projeto está indo muito bem, começamos a fazer as classes bases do projeto, e o Design já fez algumas telas...

Mas o mais importante é que já criamos o projeto no Garage.
segue o link: https://garage.maemo.org/projects/geekscape/
segue também a primeira tela do GeekScape



Tela de Menu




Tela do Jogo





Tela de Itens



Bom galera, em breve postarei mais sobre o GeekScape e sobre a engine que estamos criando, ou seja, você també poderá ser um desenvolvedor dessa série.

Té + !



sexta-feira, 8 de maio de 2009

Site Zagaia

uuuuoohhhhhhhhhhhhhhhhh!!!!!

finalmente o site do Zagaia está na rede... segue o link...


http://portal.fucapi.edu.br/nepcomp/zagaia/

quinta-feira, 7 de maio de 2009

Cluster mysql

O tempo fechou na fcaul, precisei fazer um cluster mysql e o negócio foi meio complicado por causa das máquinas,mas no final ficou tudo certinho...
segue o tutorial...

Clusterização

A clusterização de um serviço é uma funcionalidade avançada, que tem como objetivo em comum aumentar a qualidade, de alguma forma, dos serviços disponibilizados pela tecnologia que adota. O que a clusterização oferece é a possibilidade de dois ou mais servidores disponibilizam exatamente o mesmo serviço, de forma sincronizada, aumentando o poder de execução e o percentual de disponibilidade do serviço em questão.
A necessidade de se montar um cluster no MySQL está relacionada à alta disponibilidade das informações e à tolerância a falhas. Com dois ou mais servidores MySQL sendo executados em cluster os dados são automaticamente replicados entre os servidores e cada nó que pertence ao cluster pode ser removido sem afetar a disponibilidade da aplicação.

Criando um Cluster MySQL
O exemplo de cluster a ser utilizado é composto por três servidores, sendo eles:
Servidor central(10.0.50.11): Responsável por gerenciar os servidores conectados ao cluster(Managment Node). O número IP atribuído a esse servidor será o 10.0.50.11, sendo necessáro alterar esse valor para o número IP real do seu servidor central.
Servidores de Armazenamento(10.0.50.5/ 10.0.50.10): Dois servidores que serão responsável pelo real armazenamento dos bancos de dados, por meio de uma conexão com o servidor central(Storage Nodes e SQL Nodes). Sendo necessário a verificação do IP como acima.

Configurando o servidor central

Para configuar o sevidor central você tem duas opções, uma instalando o mysql-server, ou apenas baixando pacote responsável pelo cluster:
Se você quiser intalar o mysql no servidor central, bastar abrir o terminal e digitar:
sudo apt-get install mysql-server-5.0
Outra opção, faça o download http://dev.mysql.com/get/Downloads/MySQL-Cluster-6.3/mysql-cluster-gpl-6.3.20-linux-i686-glibc23.tar.gz/from/pick#mirrors
e copie para o /home

em seguida faça os seguintes passos:

mkdir /usr/src/mysql-mgm
cd /usr/src/mysql-mgm
cp /home/mysql-cluster-gpl-6.3.20-linux-i686-glibc23.tar.gz .
tar xvfz mysql-cluster-gpl-6.3.20-linux-i686-glibc23.tar.gz
cd mysql-cluster-gpl-6.3.20-linux-i686-glibc23/
mv bin/ndb_mgm /usr/bin
mv bin/ndb_mgmd /usr/bin
chmod 755 /usr/bin/ndb_mg*
cd /usr/src
rm -rf /usr/src/mysql-mgm

Obs.: nesse caso, foi feito o download do mysql-server

Em seguida cadastre os endereços IP dos nós dos cluster no arquivo de configurações chamado config.ini.

O arquivo config.ini possui várias sessões e chaves de configuração. De acordo com a arquitetura, precisamos indicar neste arquivo que o servidor 10.0.50.11 conerá as ferramentas administrativas do cluster e que os servidores 10.0.50.10 e 10.0.50.5 são os nós do cluster. Fazemos isso modificando a chave HostName da sessão [NDB_MGMD] de modo a colocar o endereço do servidor que conterá as ferramentas administrativas. Para cada nó do cluster devemos colocar o seu endereço na chave HostName da sua respectiva sessão [NDBD], portanto:

mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster
vim config.ini

digite:

[NDBD DEFAULT]
NoOfReplicas=2
[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
# Section for the cluster management node
[NDB_MGMD]
# IP address of the management node (this system)
HostName=10.0.50.11
# Section for the storage nodes
[NDBD]
# IP address of the first storage node
HostName=10.0.50.5
DataDir= /var/lib/mysql-cluster
[NDBD]
# IP address of the second storage node
HostName=10.0.50.10
DataDir=/var/lib/mysql-cluster
# one [MYSQLD] per storage node
[MYSQLD]
[MYSQLD]
em seguida inicie o cluster central
ndb_mgmd -f /var/lib/mysql-cluster/config.ini

para inicar automaticamente basta editar a linha no arquivo ndb_mgmd:
sudo vim /etc/init.d/ndb_mgmd
ndb_mgmd -f /var/lib/mysql-cluster/config.ini
sudo chmod 755 /etc/init.d/ndb_mgmd
sudo update-rc.d ndb_mgmd defaults



Para verificar se o serviço foi iniciado sem problemas podemos utilizar o seguinte comando que verifica os processos do servidor:
ps -A | grep mgm.

Após iniciar o serviço podemos nos conectar na ferramenta de administração do cluster. Esta ferramenta chama-se Management Client e é executada pelo comando ndb_mgm. Após iniciar a ferramenta devemos enviar o comando SHOW para verificar o estado do cluster.
Configurando os nós(10.0.50.10 e 10.0.50.5):

Para configurar o nós, precisamos primeiro instalar o mysql, para isso faça o download so mysql-server-5.0(versãom mais recente):

sudo apt-get install mysql-server-5.0

Após ter feito o download, é preciso modificar as configurações em cada um dos nós. Estas configurações são armazenadas no arquivo de configuração do MySQL chamado my.cnf. Nesse caso o arquivo estava localizado no diretório /etc/mysql, porém esta localização pode variar de acordo com a instalação do MySQL.
Para configurar um nó de modo que ele faça parte de um cluster MySQL é preciso alterar três chaves em duas sessões do arquivo my.cnf. As duas primeiras chaves são a ndbcluster e a ndb-connectstring, sendo que esta última deve receber o endereço 10.0.50.11, que é o servidor onde o serviço de administração do cluster está instalado.
Também é preciso alterar a chave ndb-connectionstring da sessão [MYSQL_CLUSTER] da mesma forma que a chave anterior, é preciso colocar o endereço do servidor que contém o serviço de administração do cluster na chave ndb-connectionstring da sessão [MYSQLD].

...
...
[mysqld]
ndbcluster
ndb-connectstring=10.0.50.11
...
...
[mysql_cluster]
ndb-connectstring=10.0.50.3


Obs.: Por padrão, estas chaves estão comentas(“#”), portanto basta retirar o comentário, e associar o IP a cada uma como descrito acima.

Após a modificação das chaves no arquivo my.cnf é preciso iniciar o serviço do MySQL. Além disso também é preciso iniciar o serviço ndbd nos nós do cluster, pois ele é o responsável por gerenciar o acesso aos arquivos com os dados compartilhados. Para isso digite:

sudo mysqld_safe -user=mysql &
sudo ndbd
sudo /etc/init.d/mysql.server start

Verificando se funciona(10.0.50.11):
A partir deste momento o cluster já está sendo executado. Podemos enviar o comando SHOW na interface console do Management Client do cluster e verificar que os dois nós já são considerados parte do cluster.

Criando o Banco de dados(10.0.50.10 ou 10.0.50.5):
Apesar de o cluster já estar configurado, a partir desde momento os dois servidores MySQL ainda estão trabalhando de forma independente. Para que possamos usufruir das funcionalidades do cluster é preciso criar manualmente um banco de dados com o mesmo nome em cada servidor e, dentro deste banco de dados, criar tabelas que utilizem o engine de banco de dados NDBCLUSTER.
Portanto em um dos servidores(10.0.50.10 ou 10.0.50.5) digite:

mysql -u root -p
Enter password:

Se tudo ocorrer nomrlmente, você entrará no Mysql monitor, e em seguida:

mysql> CREATE DATABASE TESTE;
Query OK, 1 row affected
mysql> USE TESTE;
Database changed
mysql> CREATE TABLE tblTeste (I INT) ENGINE=NDBCLUSTER;
Query OK, 0 rows affected (0.44 sec)
mysql> INSERT INTO tblTeste () VALUES (1);
Query OK, 1 rows affected (0.03 sec)
mysql> SELECT * FROM tblTeste;

+------+
| i |
+------+
| 1 |
+------+
1 row in set (0.01 sec)
Se funcionar, vá até o outro nó e verifique se o cluster está funcionando normalmente, para isso digite:

mysql -u root -p
Enter password:

mysql> CREATE DATABASE TESTE;
mysql> USE TESTE;
Database changed
mysql> SELECT * FROM tblTeste;

+------+
| i |
+------+
| 1 |
+------+
1 row in set (0.03 sec)
Pronto, agora insira um novo a partir do segundo nó e verifique se ela aparece no primeiro.
Como a tabela tblTeste foi criada utilizando o engine de banco de dados NDBCLUSTER todas as modificações nos dados realizadas em qualquer um dos nós será replicada automaticamente para os demais.
Para finalizar os testes do cluster, desconecte um dos nós e faça um INSERT em outro, em seguida conecte o nó anteriormente desconctado com o comando “ndbd” e faça um SELECT, se o valor anteriormente inserido aparecer no outro nó, Pronto! Seu cluster está funcionado.
Com o cluster conseguimos montar uma solução que atende a requisitos de alta disponibilidade, pois caso um nó do cluster não esteja operacional isso não será um problema para a aplicação, uma vez que os outros nós funcionaram de forma independente. Quando o nó que apresentou um problema foi iniciado novamente o próprio serviço NDBD irá procurar as informações perdidas e tentará sincronizar os dados da tabela.