nov
16
Para quem precisa apenas se conectar em um servidor usando Python e mandar e receber comandos eis uma classe simples que fiz e uso para diversos projetos.
class UserSocket:
"""
Classe de comunicacao
Exemplo:
UserSocket("10.13.97.81", 2100)
"""
def __init__(self, host, port):
"""
Construtor do driver de conexao
"""
self.__host = host
self.__port = port
self.connect_server()
def connect_server(self):
"""
Realiza a conexao com o servidor
"""
try:
self.__soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM, socket.IPPROTO_TCP)
self.__soc.connect((self.__host, self.__port))
except Exception:
return False
return True
def close_server(self):
"""
Fecha a conexao com o servidor
"""
try:
self.__soc.close()
except Exception:
return False
return True
def receive_data(self):
"""
Recebe os dados do buffer do servidor
"""
data = ''
chunk = ' '
while (len(data) < 1) or (chunk != '\n'):
chunk = self.__soc.recv(1)
if chunk == '':
raise RuntimeError, "socket connection broken"
data = data + chunk
return data
def send_data(self, data):
"""
Envia dados para o servidor
"""
try:
self.__soc.sendall(data)
except Exception:
return False
return True
Usando …
>>> s = UserSocket("10.13.97.81", 2100)
>>> data = s.receive_data()
>>> s.send_data("COMANDO")
… você poderá se comunicar com qualquer servidor socket.
nov
13
Faça o Wordpress funcionar com SSL no Ubuntu 8.04 Server em 5 passos!
Arquivado em redes | Leave a Comment
Se você hospeda seu próprio wordpress é interessante habilitar o ssl para criptografar seu sua comunicação com o servidor, do contrário todas as suas senhas e demais dados que você envia no ato da publicação de conteúdo estarão vulneráveis a sniffing e M-i-M attack. Veremos como fazer essa configuração de uma forma bem simples.
Estou presumindo aqui que o seu wordpress já está funcionando e configurado, com Mysql, Apache, etc.
Passo 1 - Instalar pacotes necessários, caso ainda não tenha instalado.
$ sudo aptitude install openssl ssl-cert
Passo 2 - Gerar a chave privada do servidor.
$ cd /etc/ssl
$ sudo openssl genrsa -out private/server.key 2048
$ sudo chmod 400 private/server.key
Passo 3 - Gerar a requisição de certificado auto assinado. (Para blogs profissionais contrate um certificado “oficial”, verisign, godaddy, etc.)
$ sudo openssl req -new -key private/server.key -out server.csr
You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]: seu pais State or Province Name (full name) [Some-State]: seu estado Locality Name (eg, city) []: sua cidade Organization Name (eg, company) [Internet Widgits Pty Ltd]: sua empresa Organizational Unit Name (eg, section) []: seu departamento Common Name (eg, YOUR name) []: * Email Address []: seu e-mail Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
Note que qualquer dos campos pode ser deixado em branco, basta digitar “.”, sem as aspas. Se você não tem vários IPs sobrando sugiro criar um certificado genérico (para todos os sites) usando no campo “Common name” um asterisco (*).
Passo 4 - Gerando o certificado
$ sudo openssl x509 -days 365 -req -in server.csr -signkey private/server.key -out certs/server.crt
Passo 5 - Configurando o site
Habilite o ssl
$ sudo a2enmod ssl
Crie um novo arquivo
$ cd /etc/apache2/sites-available
$ sudo vim wordpress-ssl
Coloque o conteúdo abaixo no arquivo
NameVirtualHost *:443
<VirtualHost *:443> ServerName www.seusite.com.br DocumentRoot /var/www/seusite/ Errorlog /var/log/apache2/site-error_log Customlog /var/log/apache2/site-access_log common AddDefaultCharset utf-8 SSLEngine On SSLOptions +StrictRequire SSLCertificateFile /etc/ssl/certs/server.crt SSLCertificateKeyFile /etc/ssl/private/server.key </VirtualHost>
Habilite o site criado
$ sudo a2ensite wordpress-ssl
Reinicie o apache para habilitar as configurações
$ sudo /etc/init.d/apache2 force-reload
Pronto, agora é só testar seu site https://www.seusite.com.br. O interessante é que deste jeito você poderá criar vários sites ssl, com o mesmo IP, todavia não tem como usar certificados diferentes para cada site.
nov
11
Fazer curso é burrice!
Arquivado em indicações | 2 Comments
Primeiramente deixe-me explicar, imagino que você deve estar se perguntando, “Sendo assim eu sou burro?” ou “Você está me chamando de burro? Seu idiota!!!”, nada disso. Eu estava pensando, nessa semana, o que leva a pessoa a fazer um curso qualquer, seja de reciclagem ou de capacitação em uma determinada área, e percebi que muitas vezes eu mesmo me deparei em alguma sala de aula com alguém falando sobre um determinado tema e eu pouco prestando atenção ou essa pessoa pouco sabia sobre o tema ou tinha segurança sobre o assunto. Claro que há exceções, mas aí nos deparamos com outro problema, muitas vezes a turma em que você está não é, como vamos dizer, tão atenciosa quanto você e isso acaba fazendo com que o instrutor volte assunto, repita conceitos e isso lhe desistimula a continuar com sua atenção alí. Identificou-se com a cena???
Eu tenho o hábito de estudar através de livros, ou até mesmo através de PDFs!, e pude observar que tem sido muito mais proveitoso, econômico e satisfatório. Se seu objetivo é conhecimento, essa é a solução. Existe, como tudo na vida, seus contras, pois um “curso” feito dessa forma exige conhecimento prévio de bons livros, saber sites e referências para consulta e ter uma “base” boa sobre o tema que se deseja estudar, pois é fácil cairmos em livros mal escritos, conteúdo desatualizado ou pior, autores que entendem de administração escrevendo sobre informática (Alguém pode citar um?). Se seu objetivo é certificados (não confundir com certificações) para colocar no currículo, esse não é um bom caminho.
Felizmente, para o leitor desse blog, irei recomendar várias literaturas que poderão embasar consideravelmente seus estudos na área de informática, redes e programação ágil. Todos os livros recomendados aqui são de grande proveito se lidos COMBINADOS! Nenhuma literatura é final e completa, portanto o hábito de consultar várias fontes é sempre bem vindo.
Leitura de base
Abaixo livros para embasar seu conhecimento. Nenhum profissional será bom o suficiente se não conhecer os princípios que solidificam os conhecimentos em informática.

Redes de Computadores - Andrew S. Tanenbaum

Shell Script Profissional - Aurelio Marinho Jargas

Sistemas Distribuídos: Conceitos e Projeto - George Coulouris

Introdução a Estruturas de Dados - Waldemar Celes

Fundamentos Matemáticos para a Ciência da Computação - Judith L. Gersting
Leitura em linux
Livros que descrevem o funcionamento do sistema operacional aberto mais popular que existe. Uma ótima base para entender o linux e seus componentes estão compilados nos livros abaixo.

Certificação Linux Lpi - Nível 1 Exames 101 e 102 - Steven Pritchard

Certificação Linux LPI: Nível 2 Exames 201 e 202 - Steven Pritchard

Manual Completo do Linux: Guia do Administrador - Evi Nemeth

Universidade Linux - Tadeu Carmona
Leitura em redes
Livros específicos para redes e interconexão de computadores, configuração de roteadores, firewalls e demias equipamentos em um ambiente interconectado.

Projeto de Interconexão de Redes - Matthew H. Birkner

Linux Iptables: Guia de Bolso - Grecor N. Purdy

Como Configurar Roteadores Cisco - Allan Leinwand
Leitura em programação
Livros que lhe ajudarão a pensar logicamente e com agilidade, o objetivo de programar é solucionar problemas da forma mais simples possível.

Programação Avançada em Linux - Gleicon Da Silveira Moraes

Profissional Linux Programando - Neil Matthew

Extreme Programming - Vinicius Manhaes Teles

Use a Cabeça HTML com CSS e XHTML - Eric Freeman

Use a Cabeça ! : Ajax - Brett Mclaughlin

Use a Cabeça SQL - Lynn Beighley
Bem, essa é uma lista inicial dos livros que já li e gostei, cada um tem seus fortes e fracos também, alguns a tradução não está legal, mas o conteúdo é interessante (principalmente os da série “Use a cabeça”), estou vendo outros livros interessantes que estou interessado em ler, assim que tiver uma opnião positiva sobre eles indico aqui também.
Quem tiver outra indicação pode sugerir nos comentários.
out
30
UPDATE: Estou pensando em manter o site, mas preciso reformular-lo completamente, haja tempo!!! Enfim, estarei mudando algumas coisas por aqui. Desejem-me sorte.
Já faz um tempo que mantenho este blog e tem sido muito gratificante, agradeço todos os comentários, contatos, agradecimentos, dúvidas que tenho recebido ao longo desse período, todavia meus novos projetos para 2009 estão começando e a ideia é crescer, portanto não cabe mais nos meus projetos manter um blog pessoal. O Jornal do Jerimum irá morrer, mas não meu espirito blogueiro, o blog irá permanecer como parte do site da minha empresa a ADG Soluções (http://www.adgsolucoes.com.br), o site lá também irá mudar e passará a ter mais interatividade, projetos Open Source que desenvolvi nesse ano e também projetos comerciais, será um salto qualitativo muito grante.
Para todos que leram os arquivos e foram ajudados de alguma forma meus sinceros agradecimentos.
Peço que todos aguardem com anciedade o novo formato do site e por ora não deixem de visitar: http://www.adgsolucoes.com.br
Allan Garcia
out
17
Estou à procura de uma pessoa com perfil dinâmico, motivada e responsável interessada em realizar estágio na área de desenvolvimento para web e web design. Atualmente tenho vário projetos se iniciando e muito trabalho para fazer, o selecionado irá vivenciar rotinas de atendimento a cliente, reuniões de negócios e prática de desenvolvimento para Internet e projeto de interfaces.
Exige-se:
- Compromisso e responsabilidade com o estágio
- Conhecimento de HTML (W3C) e tecnologias correlatas
- Conhecimento de lógica de programação e saber desenvolver em alguma linguagem
Plus:
- Conhecimento em Python
- Conhecimento em Linux
Oferta-se:
- Conhecimento e experiência na área
- Bolsa-auxílio compatível com a experiência do candidato a partir do 2º mês
- Possibilidade de contratação após o término do estágio
A priori irei dar preferência para candidatos localizados na região da grande Natal, porém não encontrando considerarei outros candidatos. A modalidade de trabalho proposta para o estágio é remoto com encontros diários presenciais e participação nas minhas rotinas profissionais com consultor de tecnologias em informática, desenvolvedor de sistemas e professor da universidade federal.
Ver:
Se você está interessado envie seu currículum no formado HTML contendo no assunto apenas a palavra ESTÁGIO para o e-mail allan.garcia@adgsolucoes.com.br. Currículum não enviado conforme as especificações solicitadas não serão considerados.
ago
27
Mergulhando no Python (Indicação)
Arquivado em indicações | 3 Comments
Leitura recomendada!!! O livro “Dive into Python” embora esteja em uma tradução um pouco duvidosa é excelente para quem deseja começar na linguagem de programação ágil Python, o livro aborda aspectos práticos e característicos da linguagem Python e trás uma abordagem bem diferente de se aprender uma linguagem de programação.
Este livro está sendo indicado usando o programa de afiliados do submarino, portanto se desejar adquirir este livro, faça-o clicando na imagem ao lado. ![]()
Bons estudos para todos.
Outra indicação, na verdade sugerida por um dos leitores em um comentário é o livro “Aprendendo Python”, já dei uma foleada nele e parece ser didático e fácil de entender. Se alguém tiver mais comentários sobre esse livro favor postar.
ago
20
Este tutorial visa apresentar uma abordagem rápida para a instalação de um servidor de nomes que irá resolver urls para endereços IP, esse artigo é um complemento ao artigo de instalação do Subversion/Trac e não objetiva a completa compreenção do funcionamento de um servidor de nomes, mas tão somente o resultado final que é seu funcionamento.
O sistema base para este tutorial é o Ubuntu 8.04 com todo o sistema do Subversion/Trac instalado (embora não seja necessário). Os comandos aqui apresentados irão funcionar primariamente no sistema Ubuntu embora sistemas “debian-like” muito provavelmente irão utilizar os mesmos comandos, todavia não há qualquer garantia que de este tutorial irá funcionar para qualquer outro sistema operacional.
Primeiramente vamos instalar os pacotes necessários ao funcionamento do servidor de nomes.
$ sudo aptitude install bind9
Aguardar a instalação e se tudo correr bem ir para o diretório /etc/bind Read more
ago
17
Mudança de versão, tema e de ares!!!
Arquivado em diversos | Leave a Comment
Caros leitores, estou mudando hoje várias coisas no blog, portanto ele poderá ficar fora do ar algumas horas, se for o caso volte amanhã para ver as novidades!
Obrigado.
jul
19
Neste tutorial veremos como configurar a conexão claro 3G no seu desktop Ubuntu 8.04 (Hardy). Embora eu tenha ficado extremamente irritado com os vendedores da Claro que se recusaram a deixar eu testar o modem no Linux alegando incompatibilidade e essas coisas, eu mesmo assim optei por essa opção de Internet, que tem sido minha atual forma de conexão à Internet, devido as suas enormes facilidades e relativa qualidade. É engraçado como pessoas leigas insistem em resistir a qualidade e superioridade dos sistemas UNIXlike e se contentam com a mesmice e subtecnologia oferecida pela Microsoft e seus parceiros, mas isso é outro assunto. Read more
jul
18
Instalando o Trac e o Subversion em 12 passos no Ubuntu 8.04 (Hardy)
Arquivado em programação | 7 Comments
Esta é a segunda edição deste tutorial, gostaria de acrescentar algumas coisas que os leitores tiveram dúvidas e corrigir outras, estou criando este tutorial porque acabei de reinstalar o meu sistema, agora Ubuntu 8.04 LTS, e pense numa trabalheira reinstalar tudo. ![]()
Como uso o Ubuntu, irei usar o aptitude para instalar meus pacotes, ao menos para a maioria dos pacotes, a vantagem é ter o log de toda instalação e desinstalação dos pacotes em /var/log/aptitude*
Dica útil, desligue nas preferências do aptitude a instalação automática dos pacotes recomendados, geralmente eles são inúteis. Read more

