Bem amigos do Blog do MX!
Bom dia!
Queria fazer um "fast-post" aqui somente para dizer que eu avisei! Em um dos primeiros posts deste blog eu deixei no final um pedido para que ficassem de olho no OpenID... agora a "criança" já está caindo nas graças de gente grande como Yahoo!, Google, IBM e VeriSign.
A idéia do OpenID foi algo prático e necessário nos dias de hoje, onde usuários se perdem em meio a tantos cadastros em inúmeros site. Centralização de identidade... esse é "o papo"!
Só me resta dar os parabéns a Brad Fitzpatrick pela idéia, e a quem usou ou pretende implementá-la, pela facilidade que vão dar aos seus usuários! E que floresçam mais idéias como essa...
No mais...
[]'s do MX...
Update #1: Agora o Blogger in Draft também é amiguinho íntimo (e fornecedor) do OpenID... "Eu avisei!"
sexta-feira, 18 de janeiro de 2008
quarta-feira, 9 de janeiro de 2008
Minha primeira aplicaçãozinha Prolog
Boa noite meu povo!
Estou aqui começando a dar os primeiros passos em Prolog. Depois de estudar no período passado da faculdade sobre esta linguagem, comecei a botar a mão na massa com ela visando futuros projetos (iniciação científica, mestrado, etc...)
Antes de falar sobre o código em si, gostaria de debitar todos os créditos ao blog do Silveira, onde consegui localizar esse conteúdo para iniciar meus estudos.
O código que irei reproduzir aqui é o que está disponibilizado no link acima, porém, seguirá logo abaixo uma explicação passo a passo minha sobre o mesmo.
fatorial(N,F) :-
N1 is N - 1,
fatorial(N1,F1),
F is N * F1.
Vamos lá! Antes de começar aconselho que leiam alguns artigos afins:
Só relembrando um pouco de matemática, para se calcular o fatorial de um número, multiplica-se ele por todos os seus números antecessores, até que se chegue a 0 (o qual possui por definição fatorial 1: 0! = 1). Ou seja, o fatorial de um número (com exceção do zero) vai ser SEMPRE ele mesmo multiplicado pelo fatorial do seu antecessor.
Exemplos:
3! = 3 * 2 * 1 = 6
4! = 4 * 3 * 2 * 1 = 24
ou
4 * 3! = 4 * 6 = 24
Entendida esta parte, vamos ao código. Se você, leitor, programa em alguma linguagem estruturada ou OO deve estar estranhando a forma de escrita do Prolog, certo?
Caso tenha lido os links que disponibilizei acima, a coisa fica um pouco mais clara...
Na primeira linha definimos uma função que retornará um resultado verdadeiro, nesta linha esta sendo definida que o fatorial de 0 sempre será 1. Para o fatorial de outros números existe a função fatorial aberta a retornar um valor (o parâmetro F).
Esta função é recursiva, ou seja, quando informar algo como fatorial(3,X). o compilador fará o seguinte:
Fatorial de 3 é quanto?
Não existe definição para isto.
Deixa a função fatorial(3,X) em aberto, aguardando resposta, em uma pilha de processamento.
Fatorial de 2 é quanto?
Não existe definição para isto.
Deixa a função fatorial(2,X) em aberto, aguardando resposta, em uma pilha de processamento.
Fatorial de 1 é quanto?
Não existe definição para isto.
Deixa a função fatorial(1,X) em aberto, aguardando resposta, em uma pilha de processamento.
Fatorial de 0 é quanto?
Opa, tem uma definição lá de que 0! = 1.
Como nossa intenção é solucionar o fatorial de 3 e armazená-lo na variável X, devemos percorrer toda a pilha de execução até o final. Já que temos o fatorial de 0 sendo igual a 1, vamos ao próximo item da pilha.
Fatorial de 1 é quanto?
1 * fatorial de 0, ou seja, 1 * 1 = 1
Fatorial de 2 é quanto?
2 * fatorial de 1, ou seja, 2 * 1 = 2
Fatorial de 3 é quanto?
3 * fatorial de 2, ou seja, 3 * 2 = 6.
Pronto! Está aí a forma de funcionamento do código deste post.
Para completar, abra o SWI-Prolog e digite o seguinte comando:
['d:/appProlog/fatorial.pl']. (indique o caminho físico do arquivo com a "/" mesmo)
Este comando carregará o conteúdo do arquivo e nos permitirá usar a função fatorial.
Existem duas formas de usá-la:
1 - Digitar o comando:
fatorial(0,1).
Retornará o valor "Yes", confirmando que existe no código esta definição.
2 - Executar a função em busca do fatorial de um número:
Sinta-se à vontade para trabalhar com esta função, varie números e variáveis de retorno (o "X" não é obrigatório)
Exemplo: fatorial(12,FAT).
Espero poder ter passado de forma útil um pouco do conhecimento que adquiri sobre Prolog... até a próxima e...
[]'s do MX...
Estou aqui começando a dar os primeiros passos em Prolog. Depois de estudar no período passado da faculdade sobre esta linguagem, comecei a botar a mão na massa com ela visando futuros projetos (iniciação científica, mestrado, etc...)
Antes de falar sobre o código em si, gostaria de debitar todos os créditos ao blog do Silveira, onde consegui localizar esse conteúdo para iniciar meus estudos.
O código que irei reproduzir aqui é o que está disponibilizado no link acima, porém, seguirá logo abaixo uma explicação passo a passo minha sobre o mesmo.
- fatorial.pl
fatorial(N,F) :-
N1 is N - 1,
fatorial(N1,F1),
F is N * F1.
Vamos lá! Antes de começar aconselho que leiam alguns artigos afins:
Só relembrando um pouco de matemática, para se calcular o fatorial de um número, multiplica-se ele por todos os seus números antecessores, até que se chegue a 0 (o qual possui por definição fatorial 1: 0! = 1). Ou seja, o fatorial de um número (com exceção do zero) vai ser SEMPRE ele mesmo multiplicado pelo fatorial do seu antecessor.
Exemplos:
3! = 3 * 2 * 1 = 6
4! = 4 * 3 * 2 * 1 = 24
ou
4 * 3! = 4 * 6 = 24
Entendida esta parte, vamos ao código. Se você, leitor, programa em alguma linguagem estruturada ou OO deve estar estranhando a forma de escrita do Prolog, certo?
Caso tenha lido os links que disponibilizei acima, a coisa fica um pouco mais clara...
Na primeira linha definimos uma função que retornará um resultado verdadeiro, nesta linha esta sendo definida que o fatorial de 0 sempre será 1. Para o fatorial de outros números existe a função fatorial aberta a retornar um valor (o parâmetro F).
Esta função é recursiva, ou seja, quando informar algo como fatorial(3,X). o compilador fará o seguinte:
Fatorial de 3 é quanto?
Não existe definição para isto.
Deixa a função fatorial(3,X) em aberto, aguardando resposta, em uma pilha de processamento.
Fatorial de 2 é quanto?
Não existe definição para isto.
Deixa a função fatorial(2,X) em aberto, aguardando resposta, em uma pilha de processamento.
Fatorial de 1 é quanto?
Não existe definição para isto.
Deixa a função fatorial(1,X) em aberto, aguardando resposta, em uma pilha de processamento.
Fatorial de 0 é quanto?
Opa, tem uma definição lá de que 0! = 1.
Como nossa intenção é solucionar o fatorial de 3 e armazená-lo na variável X, devemos percorrer toda a pilha de execução até o final. Já que temos o fatorial de 0 sendo igual a 1, vamos ao próximo item da pilha.
Fatorial de 1 é quanto?
1 * fatorial de 0, ou seja, 1 * 1 = 1
Fatorial de 2 é quanto?
2 * fatorial de 1, ou seja, 2 * 1 = 2
Fatorial de 3 é quanto?
3 * fatorial de 2, ou seja, 3 * 2 = 6.
Pronto! Está aí a forma de funcionamento do código deste post.
Para completar, abra o SWI-Prolog e digite o seguinte comando:
['d:/appProlog/fatorial.pl']. (indique o caminho físico do arquivo com a "/" mesmo)
Este comando carregará o conteúdo do arquivo e nos permitirá usar a função fatorial.
Existem duas formas de usá-la:
1 - Digitar o comando:
fatorial(0,1).
Retornará o valor "Yes", confirmando que existe no código esta definição.
2 - Executar a função em busca do fatorial de um número:
Sinta-se à vontade para trabalhar com esta função, varie números e variáveis de retorno (o "X" não é obrigatório)
Exemplo: fatorial(12,FAT).
Espero poder ter passado de forma útil um pouco do conhecimento que adquiri sobre Prolog... até a próxima e...
[]'s do MX...
quinta-feira, 3 de janeiro de 2008
Campos de busca com tamanho GG
"Alôôôôôô você!
Chegando!!!"
Ano novo, ânimo novo... para posts, estudos para a iniciação científica, estudos de novidades que este ano (bissexto) possa trazer para a web, e por aí vai...
Inicialmente gostaria de dizer que desejo (novamente) um feliz 2008 a todos os leitores do meu bolg. Pois bem...
Navegando web afora, me deparei com algo que achei interessante, acessível e usável: os campos de busca com um tamanho meio que exageradamente grandes, até mesmo para os padrões que temos para campos grandes.
Estes campos de busca podem ser notados em 3 sites (que eu encontrei, se souber de mais algum, comente aqui):
*Em ordem decrescente de tamanho
Minha opinião?
O termo "conteúdo" (viva Jakob Nielsen) tem sido tratado como algo de grande importância nestes tempos de web colaborativa (ou 2.0, como preferir). É sempre conteúdo disponibilizado por pessoas ou empresas que tem por objetivo ser localizado e consumido por internautas ou sistemas.
Se o conteúdo é tão importante, e buscar o conteúdo que interessa ao usuário tem sido uma tarefa cada vez mais comum, porque não dar um destaque (merecido) ao campo de busca?
No meu ponto de vista, o uso de campos de busca com um tamanho avantajado é correto e eu apóio a criação de layouts seguindo esta nova tendência que parece despontar agora...
Informação é uma das maiores forças da web, pesquisá-la merece destaque.
[]'s do MX...
Update #1: Vale a pena conferir o campo de busca do MyBitTorrent (só que esse tá muito extenso, tanto que parece uma barra ao invés de um campo... "mau uso")
Chegando!!!"
Ano novo, ânimo novo... para posts, estudos para a iniciação científica, estudos de novidades que este ano (bissexto) possa trazer para a web, e por aí vai...
Inicialmente gostaria de dizer que desejo (novamente) um feliz 2008 a todos os leitores do meu bolg. Pois bem...
Navegando web afora, me deparei com algo que achei interessante, acessível e usável: os campos de busca com um tamanho meio que exageradamente grandes, até mesmo para os padrões que temos para campos grandes.
Estes campos de busca podem ser notados em 3 sites (que eu encontrei, se souber de mais algum, comente aqui):
*Em ordem decrescente de tamanho
Minha opinião?
O termo "conteúdo" (viva Jakob Nielsen) tem sido tratado como algo de grande importância nestes tempos de web colaborativa (ou 2.0, como preferir). É sempre conteúdo disponibilizado por pessoas ou empresas que tem por objetivo ser localizado e consumido por internautas ou sistemas.
Se o conteúdo é tão importante, e buscar o conteúdo que interessa ao usuário tem sido uma tarefa cada vez mais comum, porque não dar um destaque (merecido) ao campo de busca?
No meu ponto de vista, o uso de campos de busca com um tamanho avantajado é correto e eu apóio a criação de layouts seguindo esta nova tendência que parece despontar agora...
Informação é uma das maiores forças da web, pesquisá-la merece destaque.
[]'s do MX...
Update #1: Vale a pena conferir o campo de busca do MyBitTorrent (só que esse tá muito extenso, tanto que parece uma barra ao invés de um campo... "mau uso")
Assinar:
Postagens (Atom)