Category: Aprendendo

Out 06 2009

Twitter Sync e Fun Text novos plugins para o Emesene.

Boa noite,

Alguns dias atrás resolvi fazer um plugin para o Emesene de sincronização das mensagens de status com as mensagens do perfil. Então pesquisei um pouco e fiz de uma maneira simples.

Navegando pelo fórum do Emesene certo dia um usuário deu a sugestão para implementarmos um Plugin onde apartir de um certo comando como /flip ou /l33t ele transformaria as mensagens, o primeiro faz a mensagem ficar de cabeça pra baixo e da direita pra esquerda já o segundo é a transformação de letras por números.

Espero que gostem,
Matheus

Set 25 2009

Exercicio em C++

Boa noite,

Nos últimos dias uma amiga pediu ajuda para resolver dois exercícios em C++ que o professor dela havia passado. O enunciado dos mesmo são:

1. Faça um programa que leia um numero não determinado de valores inteiros e positivos. Para cada valor lido: se o numero for par, verificar quantos divisores possui e escrever esta informação. Se for impar e menor que 12, escrever o seu fatorial. Se for impar e maior que 12, escrever a soma dos números de 1 até ele.

Resolução C++ do exercicio 1.

2. Escrever um programa que leia valores, um de cada vez, e conta quantos deles estão em cada um dos intervalos: [0,25], [25, 50], [50, 75] e [75,100].

Resolução C++ do exercicio 2

Matheus

PS: Pra mim é C mas como só ajudei ela não entrei no mérito dessa questão.

Set 17 2009

Enviar arquivos via XML-RPC em Java.

Olá,

Hoje o Jorge me perguntou se eu sabia como enviar arquivos via XML-RPC. Pensando no assunto não me recordava como devia ser feito, resolvi dar uma rápida pesquisada para ensina-lo. Acabei me entretendo e resolvi modificar o Cliente e Servidor Java XML-RPC para fazer o mesmo.

Implementei o mesmo e não foi complexo só olhei a documentação do Apache XML-RPC para ver como eram enviados bytes. Os mesmos eram enviados codificando o array de bytes (byte[]) em Base64. Pesquisei um pouco como fazer isso e achei uma Biblioteca Java de Base64 em dominio publico. Também procurei por como pegar o array de bytes de um arquivo e como criar um novo arquivo apartir de um array de bytes (byte[]).

Esses sites onde peguei ambos os métodos estão como comentarios no arquivo.

XML-RPC-Transferencia-De-Arquivo

Espero que seja útil,
Matheus

PS: Da maneira como eu implementei qualquer arquivo do sistema que o Cliente XML-RPC pedir o Servidor irá enviar, isso criaria uma possivel brecha de segurança.

PS2: Caso deseja que o Cliente envie arquivos para o Servidor, o Cliente deve pegar o array de bytes do Arquivo, codifica-lo em base64 e passa-lo como parametro. O Servidor irá receber este parametro, decodificar após isso manipu-le o array de bytes como você desejar.

Ago 16 2009

Instalar Placa de video (Nvidia) no Ubuntu

Boa noite,

Hoje vou mostrar para você como instalar sua placa de video da NVidia com driver proprietario. Primeiramente, se você utiliza alguma versão instala pelo seu sistema operacional, não se esqueça de desabilita-la. No Ubuntu você deve proceder da seguinte maneira: System – Administratation – Hardware Drivers. Então desabilite-o.

Para verificar as últimas versões acesse:
http://www.nvnews.net/vbulletin/showthread.php?t=122606

1. Faça o download da versão que você deseja instalar.

2. Acesse o console pressionando ctrl+alt+f1. (Não faça isso agora, se não você não poderá continuar lendo.)

3. $ cd /local/do/download

4. Feche o GDM (Gnome Desktop Manager) com $ sudo /etc/init.d/gdm stop

5. Rode o instalador: $ sudo sh ./Nxxx.run

6. Durante a instalação escolha a opção para atualizar o xorg.conf automaticamente.

7. Reinicie seu computador $ sudo reboot

Se ocorrer algum problema desinstale o driver da seguinte maneira: $ sudo nvidia-uninstall

PS: Este novos driver são para versões maiores que 6xxx.

Isto é praticamente uma tradução de http://ubuntuforums.org/showthread.php?t=990978 mesmo assim espero que seja de grande utilidade.

Matheus

Jul 04 2009

Instalar Apache2, PHP5, PHPmyAdmin, mySQL

Boa tarde,

Esse post é mais uma dica do que um artigo, já que não entra em detalhes da configuração do mesmo e na verdade utiliza as opções padrões do Ubuntu. Está instalação foi realizada com sucesso no Ubuntu 9.04 desktop.

Instalar o apache com:
$ sudo apt-get install apache2

Instalar o PHP com:
$ sudo apt-get install php5 php5-common php5-cli

Instalar o MySQL com:
$ sudo apt-get install mysql-client mysql-server

(Durante a instalação será perguntada a senha que deseja para o usuário root)

Instalar PHPmyAdmin:
$ sudo apt-get install phpmyadmin

(Será perguntado a senha do MySQL e do usuário do PHPmyAdmin)

Está configuração padrão deve ser suficiente para usuários comuns que não possuem uma necessidade mais específica com relação a módulos.

Att,
Matheus

Jun 15 2009

Atualizar End Point, TunnelBroker.

Bom dia!

Estou utilizando IPv6 aqui na minha rede local, porém sempre que eu iniciava o servidor tinha que acessar o site tunnelbroker e atualizar o End Point, então tive a idéia de fazer um script que atualizasse sozinho. Enviei um e-mail para o suporte deles e recebi a seguinte url como resposta: http://ipv4.tunnelbroker.net/ipv4_end.php

ipv4b = Novo endereço de IP
pass = md5 da sua senha (http://hash-it.net/)
user_id = O “UserID” da página principal no tunnelbroker (não é seu usuário)
tunnel_id = O “Global Tunnel ID” da página de detalhes do tunnel

Adicionei o seguinte comando no /etc/rc.local para pegar o IP atual da interface eth0 (externa):

IP=`ifconfig eth0 | grep “inet addr” | cut -d : -f 2 | cut -d B -f 1 | sed ‘s/^ *//;s/ *$//’`

Após isso adicionei a seguinte linha para fazer a requisição e atualizar o End Point:

wget https://ipv4.tunnelbroker.net/ipv4_end.php?ipv4b=$IP&pass=senha&user_id=USERID&tunnel_id=TUNNELID

Abraço,
Matheus

Jun 07 2009

Liberando ping no servidor.

Boa noite,

Na publicação anterior comentei sobre a liberação do “ping” (ICMP) de tal local para seu servidor. Caso você utilizesse Iptables e por padrão DROP em todas as “regras”, você poderá liberar pings apenas de determinado ip da seguinte maneira:

$ sudo iptables -A INPUT -p icmp -s 150.162.60.37 -j ACCEPT

Lembrando que você deve olhar a ordem das regras, pois isto importa em iptables.

Matheus Bratfisch

Jun 06 2009

Utilizar IPv6 em toda a sua rede.

Boa noite,

Como você deve saber o número de IPS na internet estão acabando, as previsões indicam que eles devem se esgotar até 2011. E como ficaremos? Calma, não se assuste! Já foi inventada a alguns anos a tecnologia que está substituindo os IPv4, são os chamados IPv6. (Que eu publiquei o link pro curso da CGI.BR lembra?). Então, hoje em dia já existem serviços destinados ao IPv6. Para fazer o uso do IPv6 existem alguns métodos e vou demonstrar como fiz na minha rede para conseguir IPv6 para os computadores. Lembrando que a minha rede possui um “Ubuntu Server” para receber e compartilhar a internet.

Inicialmente crie um cadastro em http://www.tunnelbroker.net. Após o cadastro realizado e confirmado acesse o menu “Create Regular Tunnel” e coloque o IP da sua residencia, o ponto final do tunnel, escolha o servidor mais perto de você e pronto. (Você não deve bloquear pings (ICMP) do servidor, se não ele não permitira que o tunnel seja criado).

Pressione o link ao lado direito de “Routed /48:”, assim ele lhe dará uma “classe” de ip para você utilizar em sua rede caseira.

Após feito isso, acesse seu servidor e crie o tunnel para ele da seguinte maneira:

# IPV6 da sua placa de rede INTERNA
sudo ifconfig eth1 inet6 add 2001:470:d8dd:1::1/64
# Levanta interface sit0
sudo ifconfig sit0 up
# Cria um tunnel para o IP do seu servidor (Substituia o IP_DO_SERVIDOR pelo valor do “Server IPv4 address”)
# MANTENHA OS “::”
sudo ifconfig sit0 inet6 tunnel ::IP_DO_SERVIDOR
# Levanta interface sit1
sudo ifconfig sit1 up
# Adiciona o IPv6 a interface sit1 (Substitua ROUTED pelo valor “Routed /48″)
sudo ifconfig sit1 inet6 add ROUTED
# Redireciona os tráfegos IPv6 para sit1
sudo route -A inet6 add ::/0 dev sit1
# Habilita IPv6 Forwarding.
sysctl net.ipv6.conf.all.forwarding=1

Teste se você está utilizando IPv6 da seguinte maneira:
$ ping6 ipv6.google.com

Nas demais máquinas das redes deve ser feito o seguinte:

$ sudo ifconfig eth1 inet6 add IPv6_DA_SUA_MAQUINA
$ sudo ip route add ::/0 via IPv6_DO_SERVIDOR

Caso você não queira configurar manualmente você pode utilizar o RaDVD que é um “router advertisement daemon”.

Vamos supor que seu Routed/48 é 2001:530:d822::/48 o IP da placa de rede do seu servidor conectada a rede local poderia ser: 2001:530:d822:1::1/64. Então o IP da sua máquina seria 2001:530:d822:1::2/64.

Agora de sua máquina tente pingar com ping6 o seu servidor e ipv6.google.com. Se obter resposta está tudo certo. (é claro ¬¬’)

Espero que seja de utilidade a você,
Matheus

PS: Caso você deseje utilizar IPv6 somente em uma máquina conectada diretamente na internet cadastre-se no mesmo site, crie seu tunnel e siga as instruções no final da página do tunnel.

Jun 06 2009

Instalar e Configurar servidor DHCP.

Boa noite,

Estou pensando em uma estrutura de rede que seja eficiente para a minha casa e no momento resolvi fazer alguns testes com idéias sugeridas pela galera do irc.freenode.net @ #ipv6.br e do meu laboratório e me funcionaram bem até o momento.

Retirei o meu Servidor da porta WAN do meu roteador deixando a rede na seguinte estrutura:

Modem -> (eth0) Ubuntu Server (eth1) -> (LAN PORT) Roteador (LAN PORT) -> Computadores.

Desabilitei o Servidor DHCP do Roteador e criei o meu na mesma faixa de IPS do Roteador no Ubuntu Server para instalar e configurar o mesmo procedi da seguinte maneira:

$ sudo apt-get install dhcp3-server

Após a instalação do mesmo abri o arquivo “/etc/dhcp3/dhcpd.conf” e comentei todas as linhas, após feito isso fiz o seguinte:

INTERFACES=”eth1″; # INTERFACE CONECATADA AO MEU ROTEADOR
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative; # DHCP PRINCIPAL DA REDE

subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.100 192.168.0.150; # FAIXA DE IPS A SER DISTRIBUIDA
option routers 192.168.0.254; # GATEWAY
option domain-name-servers 200.247.141.11; # SERVIDOR DNS
option subnet-mask 255.255.255.0; # MASCARA DE SUBREDE
option broadcast-address 192.168.0.255; # ENDEREÇO DE BROADCAST
default-lease-time 600;
max-lease-time 7200;
}

Lembrando que a faixa de IPs utilizada normalmente por meu roteador era 192.168.0.x mas eu poderia alterar a mesma porém preferi utilizar a default.

Após feita as configurações executei o seguinte comando:

$ sudo /etc/init.d/dhcp3-server restart

O mesmo reiniciou com alguns problemas porque esqueci alguns “;” mas após corrigido os pequenos erros o DHCP Server iniciou normalmente, testado e funcionando.

Espero que seja de utilidade a todos,
Matheus Bratfisch

PS: Lembrando que com a atual estrutura de redes eu posso utilizar filtros por MAC ADDRESS conseguindo assim implementar meu Captive Portal. *espero que nós proximos dias eu consiga implementa-lo*

Referencias:
Google + DHCP SERVER UBUNTU (tantos links que eu tentei que nem sei especificar quais que mais me ajudaram. Agradeço aos que me ajudaram e peço desculpas por não saber referenciar ao certo.)

Jun 02 2009

E-Learning. IPV6 da NIC.BR, CGI.BR

Boa noite,

Ontem recebi um e-mail falando sobre um “curso” que a CGI.BR e NIC.BR estão disponibilizando relacionado a IPV6. No mesmo você consegue muitas informações de como este novo protocolo funciona, porque precisamos do mesmo, cabeçalhos do mesmo, mensanges de erro, informação, segurança entre muitas outras coisas.

Curso E-Learning IPV6 da NIC.BR

Matheus

PS: Estou procurando uma placa wireless que suporte o modo “master” para que eu consiga criar uma rede wireless apartir de um servidor. Já testei 2, mas com elas até o momento não consegui realizar tal feito. Estive meio sumido, pois este projeto tem consumido bastante tempo.