Prolog é uma linguagem de programação geralmente usada para inteligência artificial e linguÃstica computacional.

Prolog é uma linguagem de programação geralmente usada para inteligência artificial e linguÃstica computacional.

Se a Wikipédia em inglês fosse impressa ela teria esse tamanho:

Ilustração original de Nikola Smolenski.
Usando livros de 25 centÃmetros por 5 centÃmetros, com mais ou menos 400 páginas, cada página contendo duas colunas, cada coluna contendo 80 linhas e cada linha contendo 50 caracteres, dá aproximadamente 6MB por volume. Como a versão da Wikipédia em inglês tem 4.4 GB de texto (isso em Outubro de 2006) temos então 750 volumes. E isso é uma medida conservadora visto que não estamos incluindo imagens e tabelas, que consomem muito mais espaço nas folhas.
E pelo crescimento da Wikipédia desde esse perÃodo, o tamanho da prateleira deve ter dobrado! E olhe que isso é só a Wikipédia em inglês.
Esse post faz parte de uma série de posts com pequenos códigos que mostram certas funcionalidades de linguagens como Java. A vantagem do Java é ser uma linguagem bem estabelecida, madura e portável. Há diversos excelentes ambiente para desenvolvimento e um imenso framework padrão da linguagem, além de vários outros frameworks e bibliotecas adicionais.
Para fazer seu primeiro programa em Java, crie um arquivo chamado OlaMundo.java com esse conteúdo:
public class OlaMundo {
public static void main(String[] args) {
System.out.println("Olá Mundo!");
}
}
O que você está fazendo é criar uma classe chamada OlaMundo. A linguagem exige que o nome do arquivo e o nome da classe sejam o mesmo, sendo o arquivo acrescido da extensão java, no nosso caso fica OlaMundo.java. Depois nós declaramos um método padrão chamado main, o que significa public, static, void, String args não é muito importante para quem está começando. A chamada System.out.println com um parâmetro “Olá Mundo” vai escrever na tela a mensagem “Olá Mundo”.
É necessário compilar esse código para a máquina virtual Java. Isso pode ser feito através do comando no prompt:
javac OlaMundo.java
Se tudo deu certo, nenhuma mensagem deverá aparecer. Se algo der errado, dê uma olhada se o seu código está mesmo igual ao que eu mostrei, e verifique se você realmente salvou o arquivo como OlaMundo.java (esse é um erro muito comum).
Para ver o programa funcionando, você vai invocar a máquina virtual Java e passar como parâmetro a classe OlaMundo. Isso é feito em linha de comando assim:
javac OlaMundo
Que vai retornar:
Olá Mundo!
Cuido para não colocar a extensão .java depois do parâmetro do comando java, esse é um erro muito comum.
Um bom exercÃcio para esse programa é variar a mensagem exibida na tela. Experimente colocar outra mensagem, como o seu nome. 😀
Calcular o SHA1 de uma string em Python é feito quase da mesma forma do calculo do md5 que eu já mostrei aqui antes.
A partir da versão do Python 2.5 a maneira correta de se fazer é assim:
import hashlib
print hashlib.sha1('Silveira').hexdigest()
Isso vai imprimir isto:
25e58a0147633e39c2a2fcceff9a13a181e672b9
Para fazer o calculo do MD5, também se usa a hashlib:
import hashlib
print hashlib.md5('Silveira').hexdigest()
Que vai nos dar o md5 da string ‘Silveira’:
43eb9e4547c642db6cd19713b5c1dff2
O módulo hashlib possui os contrutores md5(), sha1(), sha224(), sha256(), sha384(), e sha512(). Dependendo da implementação da OpenSSL que você tem instalada você poderá ganhar alguns outros construtores.
Maiores informações: documentação da hashlib
Eu estava procurando por “Ubuntu nis” no Google e recebo esse resultado:

Busca no Google por Ubuntu e NIS
Essa primeira ocorrência que apareceu no Google é um exemplo bem interessante. É um site que se propõe a tirar dúvidas de usuários através de consultores especializados. Porém se você visitar o site você não conseguira visualizar conteúdo algum, é necessário um registro para poder acessar o site por um perÃodo de teste, depois é necessário pagar. O que houve aà foi uma técnica de SEO, na verdade uma fraude. Esse site identifica quando o visitante é um robô do Google indexando páginas, nesse caso ele abre suas portas e mostra que belo site ele é, cheio de informações. Porém quando um usuário comum como eu e você, que foi levado ao site através do Google, vai fazer uma visita, ele mostra suas reais intenções.

Para esse site em especÃfico a uma maneira fácil e prática de engana-lo. Basta usar o botão “Em Cache” que está logo abaixo do link no Google.

Isso vai te mostrar uma página exibida ao robô do Google, ou seja, a página boa. De uma certa forma, você está navegando usando um proxy já que você está recebendo uma página que foi requisitada por uma terceira pessoa. Mas isso é tudo muito estático. As coisas ficam realmente interessantes quando você pode fazer isso com um site qualquer, por exemplo um que está bloqueado para você na sua instituição ou no seu pais.
Você pode utilizar o serviço de tradução Google para repetir o processo (certamente qualquer outro tradutor funcionará). Quando eu peço para o Google traduzir de português para inglês site silveiraneto.net ele vai criar esta url:
http://www.google.com/translate?u=http%3A%2F%2Fwww.silveiraneto.net&langpair=pt%7Cen&hl=en&ie=UTF8
Quando você acessa essa url você já está utilizando um proxy, mas o conteúdo está sendo alterado. Para acessar o site e deixa-lo em português basta mexer um pouco na url, pedindo para ele traduzir de português para português:
http://www.google.com/translate?u=http%3A%2F%2Fwww.silveiraneto.net&langpair=pt%7Cen&hl=pt&ie=UTF8
Pronto, você está acessando o Blog do Silveira através de um proxy. 🙂
Generalizando, para acessar um site coloque assim:
http://www.google.com/translate?u=SITE&langpair=pt%7Cen&hl=pt&ie=UTF8
MD5, Message-Digest algorithm 5, é um algoritmo de hash de 128 bits, unidirecional. Ele é muito útil como método de verificação de integridade de arquivos, armazenamento de senhas, criptografia ou para hashing em geral. Eu utilizo ele com muita frequência.
Em Python você calcula o hash de uma string em duas linhas:
import md5
print md5.new('silveira').hexdigest()
O md5.new() retorna um objeto que cria md5. Ele é bem flexÃvel e pode ser utilizado várias vezes. O hexdigest é a representação hexadecimal do md5, aquela que pode ser impressa.
Esse código imprime isso:
3df2175295d900d6f0c2f3a521d957cd
Que é o md5 de silveira.
Criar um parse de XML em Python é trivial, especialmente quando se trata de um documento HTML.
Nesse exemplo, criamos uma classe Parser que vai informar quando se abre ou fecha uma tag. Depois que criamos e instanciamos o Parser, alimentamos ele com o método feed com um documento HTML. Esse documento é pego através do urlopen do módulo urllib, que é um stream e portanto usamos o método read para leitura.
from HTMLParser import HTMLParser
from urllib import urlopen
class Parser(HTMLParser):
def handle_starttag(self, tag, attrs):
print "abre tag %s" % tag
def handle_endtag(self, tag):
print "fecha tag %s" % tag
url = 'http://www.silveiraneto.net'
Parser().feed( urlopen(url).read() )
Esse é um exemplo bem legal se você quiser brincar com mineração ou obtenção de dados.
Análise do capÃtulo “Economia, sociedade e tecnologia: análise dos terrenos movediços” do livro “Tecnologia e inclusão social – A exclusão digital em debate” de Mark Warschauer. Disciplina Novas Tecnologias e Educação à Distância, profª Tânia Maria. Universidade Federal do Ceará.
Eu vou organizar o texto seguindo a mesma ordem do texto original, mas saltando eventualmente alguns tópicos que eu não achei tão interessante.
Esse meu texto fala de exclusão digital, Desigualdade Social, mas fala também da Dell, comunicação e um pouco da minha experiência com blogs.
Texto passado pelo Professor Marcelino Pequeno na disciplina de Inteligência Artificial.
Esta é uma tradução não oficial e despretensiosa do texto “How Intelligent is Deep Blue?” de Drew McDermott. O texto original em inglês pode ser encontrado aqui. Quando achar alguma incorreção comente o tópico e eu terei prazer em melhorar.
Por Marco Diego e Silveira Neto.
Atividade passada pelo Professor Riverson Rios na disciplina de Interface Homem Máquina. É sobre as interfaces de fogões de 4 e 6 bocas.
Este aqui é um fogão doméstico comum de 4 bocas:

Imagem retirada da Wikipédia. Endereço original.
Tanto este fogão quanto o fogão de 6 bocas possuem o mesmos problemas de desenho em sua interface com o usuário.

Não queremos alterar muito a estrutura já existente dos fogões. Nosso fogão proposto é esse:

Código-fonte: fogao_proposto.svg
As válvulas e as bocas tem as mesmas cores assim fica fácil de perceber e memorizar as posições. A válvula tem uma seta, pois geralmente não se sabe qual lado da válvula é o certo. Há também um desenho indicador que quanto mais para baixo menos quente e quanto mais para cima mais quente.
O painel foi virado em 45º possibilitando que o usuário possa usa-lo sem precisar se abaixar ou se inclinar ao mesmo tempo que pode acessar com as mãos o painel sem encostar nos cabos das panelas.