Ao final de toda resposta sempre existe uma nova pergunta.
Anselmo Battisti
Frases do Dia
29 01 2008Comentários : Leave a Comment »
Categorias : Frases do Dia
Rapidinha do Postgres
28 01 20081 – Seleção Turbinada
Se você quiser fazer um LIKE mas case insensitive no postgres use o operador ~*, exemplo:
SELECT * FROM cidade WHERE cid_nome ~* 'cas'
Essa consulta vai trazer todos os registros que possuem a substring cas na coluna cid_nome
Cascavel
Pacasdatela
Enracas
2 – Importação de Dados
Se você gerou um dump de uma base postgres e vai tentar dar um restore em uma versão mais antiga, com o perdão da palavra fodeu, se for de uma verão mais baixa para uma mais alta pode até funcionar agora o contrário :(. Existe uma alternativa se tiver dentro da mesma versão maior, por exemplo, o dump veio de um 8.2 e você quer importar em um 8.0 você pode tentar fazer o seguinte:
1 – Criar primeiro o banco manualmente via SQL
2- pg_restore -a -d banco -U postgres arquivo.tar –disable-triggers
3 – Importar apenas uma tabela
pg_restore -a -d banco -U postgres -t sua_tabela arquivo.tar –disable-triggers
Vai dar um monte de warning mas ele vai restaurar os seus dados
E que Deus tenha piedade de seus dados
Comentários : 3 Comments »
Categorias : Php
IVSP – Programador Combata Esse Mal
26 01 2008A IVSP é uma doença extremamente perigosa que atinge 5 em cada 10 programadores, ela está se alastrando de forma tão vigorosa que o ministério da saúde já está considerando a IVSP como o mal do século para os programadores, mas afinal o que é IVSP? Continue lendo »
Comentários : Leave a Comment »
Categorias : Brincadeiras
EXT – Combobox Dinâmico
26 01 2008Como montar um combobox dinâmico usando SimpleStore
// cria o vetor que irá armazenar as opções do combo this.arrayColumn = [];// cria o store que irá organizar os dados this.comboboxStore = new Ext.data.SimpleStore({ fields: ['id','display'], data: this.arrayColumn }); // efetivamente cria o combobox this.combobox = new Ext.form.ComboBox({ store : this.comboboxStore, mode : 'local', displayField: 'display', valueField : 'id', width: 150, triggerAction:'all', editable: false }); // aqui estão sendo adicionados os elementos no vetor que irá // ser usado para montar o combo this.arrayColumn.push(['cid_cod','Cod']); this.arrayColumn.push(['cid_nome','Nome']); this.arrayColumn.push(['est_cod','Estado']); // este é o pulo do gato para o combobox se atualizar, ele recarrega // o store e exibe a informação correta this.comboboxStore.loadData(this.arrayColumn);
Mais uma coisa ‘como diria o tio do jack chan’: É sempre difícil organizar código fonte no wordpress, sendo assim, por algum tempo eu vou colocar os códigos aqui no wordpress e também num site que eu achei chamado http://pastie.caboo.se. O objetivo deste site é justamente armazenar e exibir com formatação adequada trechos de código fonte de diversas linguagen. Veja o link para o código fonte do exemplo anterior.
Comentários : Leave a Comment »
Categorias : EXT
EXT – Dicas e Truques II
24 01 20081 – Tradução
Para traduzir as mensagem dos componentes do EXT basta carregar o arquivo /ext-2.0/source/locale/ext-lang-pt_BR.js, nele estão contidas todas as traduções. Caso você esteja usando apenas alguns componentes você pode inserir apenas a tradução do componente desejado, por exemplo se você estiver usando apenas o grid : Continue lendo »
Comentários : Leave a Comment »
Categorias : EXT
EXT – Dicas e Truques
23 01 2008Bom estou começando a usar a biblioteca EXT js, realmente ela é muito boa, ainda mais agora na versão 2.0. O Problema é que tem algumas coisinhas que você não pega de primeira e fica se matando horas pra achar a solução, então aqui vou eu escrever algumas dicas / notas sobre o assunto. Continue lendo »
Comentários : Leave a Comment »
Tags: EXT, Javascript
Categorias : EXT
Frases do Dia
6 01 2008Ao ver uma lâmpada queimada os CEOs da micro$oft prontamente derrubam a casa e constroem uma nova ao invés de trocar a lâmpada.
Anselmo Battisti
Todas as coisas estão onde devem estar, ou, as coisas devem estar onde estão?
Anselmo Battisti
Comentários : Leave a Comment »
Categorias : Frases do Dia
Validação em Javascript NÃO é validação
2 01 2008A uns 3 anos ou mais eu venho falando:
– Validação no lado do cliente não existe, você está no máximo facilitando a vida do usuário mas não é validação.
Hoje recebo uma matéria muito boa que diz justamente isso, é isso ai finalmente me ouviram :).
Comentários : Leave a Comment »
Categorias : Php
Eval com IF no PHP
31 12 2007Se você tem uma string que é na verdade uma expressão e precisa avaliá-la usando a função eval então faça o seguinte:
$exp = "12 == 13"; # avaliar a expressao if(eval("return (".$exp.");")){ return true; } else { return false; }
Badabim Badabam Bada que fácil.
[]’s Anselmo Battisti
Comentários : Leave a Comment »
Categorias : Php, tic-tac
Achando um Elemento com Prototype
6 12 2007Caso você necessite descobrir se um dado elemento HTML existe ou não em sua página faça o seguinte:
Comentários : Leave a Comment »
Categorias : Javascript
Frases do Dia
6 12 2007Quando a unidade de medida dos seu arquivo fonte passa de KByte para Metro é hora de pensar em refatoramento.
Anselmo Battisti
Comentários : Leave a Comment »
Categorias : Frases do Dia, Php, Programação
Classe Formatar Moeda / Valores Monetários em Javascript
3 12 2007Importante Para Download e Demonstração Acesse
http://battisti.etc.br/projetos/
A algum tempo coloquei aqui no battisti.wordpress 3 funções para manipular valores monetários. Hoje resolvi agrupa-las em uma única classe. Continue lendo »
Comentários : 17 Comments »
Tags: Javascript, Moeda
Categorias : Javascript, Web
Desabilitar Auto Completar
28 11 2007Em alguns caso não queremos que o navegador memorize os textos que o usuário digita em alguns campos. Isso é necessário por questões de segurança, para que o autocompletar seja desabilitado basta adicionar ao html do elemento a propriedade:
autocomplete=”off”
Comentários : 1 Comment »
Categorias : Web
Frases do Dia
13 11 2007“Código rural! Acho que foi escrito por um cara que estava ouvindo música sertaneja”
Anselmo Battisti
“Se esquerda não tivesse U não precisaria da direita”
Darlon Vasata
Pra entender o lance da esquerda faz o seguinte:
Escreva a palavra esquerda no teclado entendeu! matador né!
Comentários : 3 Comments »
Categorias : Frases do Dia
Criando SELECT usando o SMARTY
13 11 2007Saudações
O Smarty é uma biblioteca para a construção de template. Os templates permitem a separação da apresentação da lógica de negócio escrita em PHP.Esta biblioteca possui vários plugins que auxiliam na criação da camada de apresentação.
Para criar um elemento select a partir de um vetor em php.
// template {html_options name=vetor options=$vetor selected=$selecionado}// php $sql = " SELECT id, nome FROM tabela"; $vetor = $con->Execute($sql)->getArray(); foreach ($vetor as $k=>$v){ $x[$v['id']] = $v['id']." - ".$v['nome']; } $tela->addVar("vetor",$x); $tela->addVar("selecionado",19);
Comentários : Leave a Comment »
Categorias : Php
Expressão Regular com PHP
6 11 2007Expressão regular é uma coisa que depende muito da engine que às interpreta, por isso, resolvi postar aqui algumas expressões regulares muito comuns em validação de dados em PHP. Continue lendo »
Comentários : 10 Comments »
Tags: expressão regular
Categorias : Php
Manipulando DOM com Prototype 1.6
5 11 2007A algum tempo postei sobre o Easy DOM Creator, uma ferramenta bastante útil para realizar a manipulação dos elementos da árvore HTML. Sendo algum muito importante a biblioteca prototype está oferecendo nativamente esta funcionalidade a partir da versão 1.6 RC0.
O Exemplo abaixo sintetiza tudo o que é necessário saber sobre está função.
$(id_elemento).insert({ after: new Element('b', {class:'msgErro'}).update('texto que será exibido') });
O código acima irá:
- Criar um elemento negrito b;
- Setar ao elemento a classe msgErro;
- Inserir o texto ‘texto que será exibido’;
- Inserir o elemento criado depois do elemento cujo id é id_elemento.
Para inserir uma quebra de linha
$('mensagem').insert(new Element("br"));
Uma outra forma de inserir HTML sem usar o innerHTML é:
$('id').insert( "<tr><td>10</td><td>10</td></tr>"; );
Veja mais exemplos no site oficial da biblioteca prototype.
Comentários : Leave a Comment »
Categorias : Javascript
Vetores
23 10 2007Chuck Noris usa imagem BMP como índice de seus vetores em Java.
Anselmo Battisti
Comentários : Leave a Comment »
Categorias : Brincadeiras
Frases Do Dia
19 10 2007A cagada é o adubo do conhecimento.
Anselmo Battisti
Calcula ai pra mim o resto da diferença.
Anselmo Battisti
Comentários : Leave a Comment »
Categorias : Php
Frase do Dia
5 09 2007“FTP é coisa de cliqueiro, já era. FTP = (F)oi-se o (T)empo (P)eixe!”.
Fábio Berbert de Paula em um manual de rsync
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=338&pagina=3
Comentários : Leave a Comment »
Categorias : Frases do Dia
Concatenar Duas Colunas no Postgres / Sql Server / MySQL
1 09 2007No Postgres
Para concatenar duas colunas no postgres, ou duas strings utilize ||
SELECT colunaA || colunaB as colunaAB FROM tabela
Contribuição do meu amigo Ivan:
Se você tiver uma coluna que possa ter um valor nulo então é necessário utilizar o operador coalesce pois NULL concatenado com qualquer coisa dá NULL.
SELECT (coalesce((colunaA),'') || coalesce((colunaB),'')) AS colunaAB FROM tabela
Caso seja necessário concatenar colunas do tipo int então será necessário antes disso converter os
coalesce(cast(colunaA as varchar),'') || coalesce(cast(colunaB as varchar), '') as colunaAB
No SQL Server
O sinal de + é usado para concatena strings, desta forma:
SELECT coluna1 + coluna2 as coluna12 FROM tabela
irá concatenar a coluna1 com a coluna2.
Caso sua coluna seja de um tipo diferente, inteiro ou float por exemplo será necessário fazer um cast desta forma:
SELECT (cast(coluna1 as varchar) + ' - ' + cast(coluna2 as varchar)) as coluna12 FROM tabela
Caso uma coluna puder ser nula então use o IsNul(coluna1,’ ‘) para trocar seu valor nulo por um espaço pois lembrem-se nulo com qualquer coisa é sempre nulo.
No MySQL
SELECT concat(coluna1,’ – ‘,coluna2) FROM tabela
Comentários : 26 Comments »
Categorias : SQL
Apostila de AJAX PHP Prototype
17 08 2007Salve
De 28 a 30 de agosto acontecerá na Unioeste – Cascavel – Pr o EPAC e em paralelo o CONGED, maiores informações no site http://www.inf.unioeste.br/epac/.
Pois muito que bem, eu e meu amigo Alexandre Semmer iremos ministrar um mini curso sobre AJAX utilizando o Prototype.
Apostila : apostila.pdf (360 KB)
Apresentação : Apresentação
Exemplos : exemplo
Baixe o arquivo de exemplo e mude a extensão dele para .zip
Livro Grátis
Um ótimo livro sobre a prototype pode ser baixada no link:
http://beta.bigmedium.com/projects/prototype-pdf/index.shtml
Livros que Recomendo
Comentários : 4 Comments »
Tags: ajax, Javascript, Php, Prototype
Categorias : Php, Web
Desativar Integridade do Postgres
3 08 2007Saudações
Parece estranho o título, para que alguém em sã consciência vai desativar a INTEGRIDADE do Postgre. Mas, em momentos de atualização de dados vindos de outros bancos ou em testes em que você não está preocupado se tem a maldadita FK faça o seguinte:
Para desativar
UPDATE "pg_class" SET "reltriggers" = 0 WHERE "relname" = 'tabela';
Para Ativar
UPDATE pg_class SET reltriggers =
(
SELECT count(*) FROM pg_trigger WHERE pg_class.oid = tgrelid
)
WHERE relname = 'tabela';
Comentários : 2 Comments »
Categorias : SQL
Conjugação do Verbo
31 07 2007Como se conjuga o verbo programar?
EU programo;
TU programas
ELES ganham a grana
tenho dito!
Comentários : 3 Comments »
Categorias : Php
Como Reiniciar o Fstab
29 07 2007Micro $_POST
Após alguma mudança no fstab, você pode usar os comandos abaixo para reinicializa-lo
umount -a
mount -a
Isto faz com que todas as partições que NÃO estejam sendo usadas no momento sejam desmontadas e novamente montadas com as novas configurações que estão no fstab.
Caso apareça a mensagem: “impossível desmontar pois a partição está sendo usada” isto quer dizer que, alguém ou alguma coisa “programa” está usando a partição, isto vai aparecer para a partição / pq ela está sendo usada pelo SO.
Meu amigo gabriel http://lovison.com.br/ me ajudou neste $_POST
[]’s Anselmo Battisti
Comentários : 1 Comment »
Categorias : Linux
php.ini include_path
6 07 2007Quando vários sistemas no mesmo servidor compartilham alguns arquivos existe uma forma de referenciar diretamente estes arquivos, sem a necessidade de utilizar includes ou variáveis.
A solução para este “problema” é definir no arquivo de configuração do PHP o php.ini no parâmetro include_path o caminho da pasta que contem os arquivos em comuns, exemplo de php.ini:
php.ini
;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;
; UNIX: “/path1:/path2”
include_path = “.:/usr/share/php:/var/www/includes”
adicionei o caminho /var/www/includes que é onde os meus scripts em comum ficam. Reinicie o apache para que as mudanças sejam efetivadas.
Com isto no momento em que você der um include em um arquivo json.php por exemplo, se este arquivo não estiver na mesma pasta do script que contém o include, o PHP automaticamente busca pelo arquivo dentro do diretório /var/www/include.
Referência
http://www.modwest.com/help/kb5-98.html
http://www.imasters.com.br/forum/lofiversion/index.php/t144987.html
E é isto pessoal.
Comentários : 1 Comment »
Categorias : Php, Web
Prototype Compactador
4 07 2007Sempre temos o dilema de, usar ou não bibliotecas em Javascripts externas em nossos sistemas.
O grande ponto negativo é o tamanho delas.
Prototye : 97 Kb
Scriptaculous : 126 Kb
Em contra partida elas oferecem inúmeras funções prontas que quebram um “galhão” uma solução que achei bem viável são os compactadores de Javascripts, existem alguns softwares desktop e outros Web o que utilizei e achei muito bom foi o
http://www.bananascript.com/index.php?compress
Bom Divertimento.
Comentários : Leave a Comment »
Categorias : Php
Personalizando o Lynx – Um odisseia no mundo do software livre
30 06 2007Saudações
Esta semana deparei-me com um problema assas complicado e, apenas fui capaz de contorna-lo pois vivo em um mundo livre onde o código fonte fica ao alcance das mãos dos programadores astutos.
Uso o lynx para disparar uns crons do php mas por força do destino o lynx tem um bloqueio de 10 redirecionamento consecutivos para a mesma página, ele acha que é algum tipo de ataque sei lá.
Que fiz para contornar o problema, baixei o código fonte do lynx alterei o arquivo em C que tomava conta desta parte recompilei o lynx e beleza tudo funcionando.
Se fosse no IE por exemplo não teria o que fazer 🙂 Usei todos os direitos do software livre e me senti muito bem
Arquivo :
WWW\Library\Implementation\HTacces.c
TOO_MANY_CONNECTION
[]’s Anselmo
Comentários : Leave a Comment »
Categorias : Linux
Frase do Dia
26 06 2007O Dicionário é um artefato do cotidiano altamente recursivo, pois nele, as definições de palavras são feitas a partir de outras palavras e, que por sua vez suas, possuem suas próprias definições.
Não acredita faça você mesmo, pegue o Aurélio e veja o significado de:
Íntimo -> Âmago -> Cerne -> Íntimo
E existem milhares de outros exemplos procure o seu.
Comentários : Leave a Comment »
Categorias : Frases do Dia
Algumas Coisas Que Aprendi na Vida
13 06 2007Na Cozinha1 – Quando lavar a louça sempre coloque a pedra de sabão na posição vertical pois assim haverá um menor contato do sabão com a agua que possa estar na pia, isto irá diminuir o desperdício.
2 – Quando for usar esponja de aço “vulgo BOMBRIL” sempre corte ela em no mínimo 4 pedaços, cada um deles é suficiente para uma lavada de louça, após terminar jogue fora não tente reciclar sempre da ‘caca’.
Comentários : 1 Comment »
Categorias : Php
Frase do Dia
26 05 2007Um sistema de gestão deve ser visto como um funcionário da instituição.
Anselmo Battisti
Comentários : Leave a Comment »
Categorias : Frases do Dia
Frase do Dia
18 05 2007O estagiário é a base da cadeia alimentar do capitalismo.
Anselmo Battisti
Comentários : Leave a Comment »
Categorias : Php
Apostila de Ajax
9 05 2007Saudações
Segue a Apostila e a Apresentação sobre Ajax que eu e meu amigo Christiano utilizamos durante o mini curso que ministramos no último “Circuito Paranaense de Softeare Livre”.
Apostila AJAX (350 KB)
Apresentação AJAX (251 KB)
Link para a nova apostila de Ajax e PHP
https://battisti.wordpress.com/2007/08/17/apostila-de-ajax-epac-conged/
LIVROS QUE RECOMENDO
Estes são alguns livros que já li quando estava começando com o tal do AJAX.
[]’s Anselmo Battisti
Comentários : 7 Comments »
Tags: ajax, Php
Categorias : Php
Frase do Dia
8 05 2007Se todos os seres do universo fossem imortais eles não teriam consciência da própria vida.
“Anselmo Battisti”
Comentários : Leave a Comment »
Categorias : Frases do Dia
Frase do Dia
21 04 2007“The sooner you test for a mistake the greater your chance of finding it and the less it will cost to find and fix”
tradução mais ou menos , meu inglês é meio analfabeto.
“Quando mais você realiza testes em busca de erros, maiores serão suas chances de encontra-los, isto irá reduzir o custo de correção.”
Sebastina Bergamann – “PHPUnit”
Comentários : Leave a Comment »
Categorias : Frases do Dia
Problema com Aspas e Aspas Simples Prototype
10 04 2007Saudações
O prototype quando enviar ” ou ‘ ele insere uma \ antes de cara ocorrência destes caracteres.
Para inserir corretamente em bases de dados é necessário remover esta barra e transformar os caracteres especiais em caracteres html.
Para isso:
foreach ($_POST as $key=>$valor) { $valor = eregi_replace("\\","",$valor); $this->dados[$key] = htmlspecialchars($valor); }
[]’s Anselmo Battisti
Comentários : 3 Comments »
Categorias : Javascript, Php
Esquema diabólico para matar o Flash
7 04 2007Sim queridos leitores, sim, sim sim.
Aqui será detalhado um plano meticuloso para matar o flash. Este plano foi traçado com a ajuda de Everton, amigo e comparsa.
Os Fatos
Ele é o herói com um único super poder, sua velocidade. Como força é igual a massa X aceleração e tendo em vista que flash é mais rápido que o Super Man, ele logicamente consegue bater mais forte que o Homen de aço.
A velocidade do som segundo a wikipedia é de aproximadamente 1.257,1 Km/h, isto é parte fundamental do plano.
Comentários : 18 Comments »
Categorias : Frases do Dia
Frase do Dia
3 04 2007A equipe de desenvolvimento de software perfeita seria composta por programadores surdos e analistas mudos. Isto aumentaria a clareza da documentação e melhoraria a análise de requisitos.
Anselmo Battisti
O Sistema nunca é um fim por si só, é simplesmente um meio de levar adiante o negócio da empresa.
Alan Dennis “Análise e Projeto de Sistemas”
Comentários : Leave a Comment »
Categorias : Frases do Dia
Ida ao Paraguai
31 03 2007Hoje, dia 31 de março foi ao Paraguai comprar umas coisinhas. Foi uma das idas mais engraçadas. A fila da aduana esta relativamente pequena, levamos apenas 1:30 hrs para declarar nossas “muambas”.
Na fila estavam, eu e Everton e o Marcelo, durante a longa espera saíram algumas frases memoráveis.
Everton:
Quando eu escuto música sertaneja eu colono o nome dos cantores das músicas em minhas variáveis, variável tiaocarreiro, daniel.
Anselmo:
Se for um vetor você chama ele de familia lima então?
Comentários : Leave a Comment »
Categorias : cotidiano
Frase do Dia
30 03 2007Enquanto não houver reclamação não há problema.
Anselmo Battisti em um lampejo de desespero.
Comentários : Leave a Comment »
Categorias : Frases do Dia
Acentuação Ajax Prototype
29 03 2007Todo mundo já sofreu, sofre ou sofrerá com as malditas codificações no AJAX. No prototype não poderia ser diferente.
Existem várias soluções, a que eu uso é a seguinte:
No vetor POST que chega até o PHP eu passo um utf8_decode em cada uma das suas possições.
foreach ($_POST as $key => $valor ){ $_POST[$key] = utf8_decode($valor); }
Agora quando você gravar no banco ele ficará com a acentuação correta.
O Everton meu amigo de longa data que me lembrou hoje deste macete.
Comentários : Leave a Comment »
Categorias : Php
GAIM PROXY BLOQUEADO
28 03 2007Saudações
Em muitas redes a porta 1863, que é a porta padrão do GAIM, estÁ bloqueada. Hoje meu amigo Rafael Felberg me mandou um link de um sujeito mostrando como usar o GAIM nestas condições.
http://www.vivaolinux.com.br/dicas/verDica.php?codigo=8277
[]’s Anselmo Battisti
Comentários : Leave a Comment »
Categorias : Linux
Frases do Dia
27 03 2007“Você tem alguma atividade que te entra fundos.”
Em conversa com meu amigo Kaleu sobre a falta de dinheiro dos universitários.
Comentários : Leave a Comment »
Categorias : Brincadeiras
Validação de CPF em PHP
23 03 2007Sempre precisamos fazer validação de CPF. Existem milhares de sites que tem códigos de validação, o problema é que muitos destes códigos NÃO funcionam em um monte de casos.
Este código publicado no site do IMASTERS é quente, estou usando a algum tempo e não me decepciona.
http://forum.imasters.com.br/index.php?showtopic=125547
[]’s Anselmo Battisti
Comentários : Leave a Comment »
Categorias : Php
Frase do Dia
16 03 2007A coisa mais incompreensível sobre o mundo é que ele é compreensível.
Albert Einstein
Retirado do livro “A Ansiedade da Informação 2 pag. 42”
Comentários : Leave a Comment »
Categorias : Frases do Dia
Apostila de PHP
10 03 2007Faz uns 3 anos aproximadamente eu e meu amigo Everton TAVARESSSSSSSSSS escrevemos uma apostila de PHP-Mysql para um mini curso na EPAC.
Ela estava no meu outro site mas o servidor esta fora do ár por isso resolvi colocar aqui também.
Comentários : 4 Comments »
Categorias : Php
Formatar moeda”valores monetários” em Javascript
8 03 2007Importante Para Download e Demonstração Acesse
http://battisti.etc.br/projetos/
Saudações
Pessoal ai vão 3 funções bem legais para manipular valores monetários em javascript.
Comentários : 64 Comments »
Tags: Javascript
Categorias : Javascript
Frase do Dia
8 03 2007Odeio gente que faz de tudo pra não fazer nada.
Darlon Vasata
A morte do corpo representa o fim da consciência do renascimento
Anselmo
A única forma de expressão que não pode ser censurada é o pensamento. Pense e seja livre!
Anselmo’
Comentários : 1 Comment »
Categorias : Frases do Dia
Linux Day
4 03 2007Pessoal é com grande satisfação que escrevo aqui neste blog sobre o Linux Day. Ele será um evento organizado pelo GNU/C “Grupo de Usuários de Software Livre de Cascavel” no dia 17 de março de 2007.
O objetivo do evento é instalar software livre em computadores da comunidade, além disto o evento contará com palestra sobre software livre entre outras coisas.
Quem quiser ajudar a divulgar o evento pode colocar links em seus sites:
120X60
568X60
Coloquem o link apontando para o endereço
Todos estão convidados e é GRÁTIS!
Comentários : 1 Comment »
Categorias : Php
Frase do Dia
2 03 2007Se Cabral usasse o IE para navegar ele nunca teria chegado até o Brasil.
Anselmo Battisti
Comentários : Leave a Comment »
Categorias : Javascript
LS bento e RM batizado
27 02 2007Pessoal tendo em vista o grande número de “adubamentos”, entendam cagadas feitas no servidor, de hoje em diante meu teclado terá um novo acessório.
Foto 1
Foto 2
Sim é isso mesmo que vocês estão pensando, é uma fita do Senhor do Bomfim.
Comentários : Leave a Comment »
Categorias : Brincadeiras
Frase do Dia
22 02 2007Descobrir qual é o erro é metade da solução de um problema.
Anselmo Battisti
Mãos rápidas levam menos chicotadas.
Palhaço Curst – Simpson “Em sua fábrica de brinquedos na malásia”
Comentários : 2 Comments »
Categorias : Frases do Dia
Easy DOM Creator & Prototype & Frase do DIA
20 02 2007NA NOVA VERÃO DO PROTOTYPE O EASY DOM CREATOR FICOU OBSOLETO 🙂 USEM O INSERT
Este é um “grande” POST.
1 – Easy DOM Creator: EDC
É uma biblioteca desenvolvida para o JQuery porém ela também é compatível com o Prototype.
O que ela faz:
Quando se programa em AJAX é muito comum a necessidade de criar objetos HTML em tempo de execução, a única saída é trabalhar com o DOM do javascript porém sabemos que isso é tedioso pois as chamadas das funções são gigantes e tem o problema do cross-borwser.
O EDC é um jeito simples de mexer com DOM, veja o exemplo:
Continue lendo »
Comentários : 1 Comment »
Categorias : Php
Usuários ou Colaboradores ?
12 02 2007Passamos muito tempo usando ferramentas com limitações visíveis por não sabermos/podermos realizar modificações na mesma a fim de atender totalmente nossas necessidades. É estranho como temos que adaptar nossas necessidade a uma ferramenta que deveria atender plenamente nossa necessidade.
O paradigma da Web 2.0 é transformar as entidades que utilizam nossos artefatos, entenda site ou sistema, em colaboradores e não mais em apenas usuários. Infelizmente ainda não foi definido de forma clara como esta transição acontecerá.
Comentários : Leave a Comment »
Categorias : Web
Frase do Dia
10 02 2007O Usuário comum real está guardado em um caixa forte hermeticamente lacrado no International Bureau of Strandads em Genebra.
“Steve Krug”
Meus Deus, os ícones verdes estão dominando o Mundo “EMS, Dreamweaver, Zend Studio, MSN, DataBase Designer”. É uma invasão marciana.
“Anselmo Battisti”
Comentários : Leave a Comment »
Categorias : Frases do Dia
PHPMailer usando uma conta do YAHOO
9 02 2007Para mandar e-mail pelo php usando o smtp do yahoo a classe phpmailer é altamente recomendada.
Segue abaixo os códigos necessário:
/* Configuração do PHP MAILER -----------------------------*/ $mail = new PHPMailer(); $mail->IsHTML(true); // envio como HTML se 'true' $mail->WordWrap = 50; // Definição de quebra de linha $mail->IsSMTP(); // send via SMTP $mail->SMTPAuth = true; // 'true' para autenticação $mail->Mailer = "smtp"; //Usando protocolo SMTP $mail->Host = "smtp.mail.yahoo.com"; //seu servidor SMTP $mail->Username = "seuusuarionoyahoo sem aroba"; $mail->Password = "senhadoyahoo"; // senha de SMTP $mail->From = "seuusuarionoyahoo@yahoo.com.br"; $mail->FromName = "Seu Nome"; // caso queira que o reply seja enviado para outro lugar $mail->AddReplyTo("emaildaempresa","empresa"); $mail->AddAddress("mail do destinatário","nome do destinatário"); $mail->Body = "corpo do email"; $mail->Subject = "Assunto do email"; if(!$mail->Send()){ return false; } else { return true; }
Importante !
Não se esqueçam de dar um include no arquivo class.phpmailer.php , ele pode ser baixado no endereço
http://phpmailer.sourceforge.net/
Com o gmail é um pouco diferente pois ele usa ssl e neste caso tem que ter o módulo ssl no apache.
Problemas mais comuns:
1 – O e-mail do Yahoo tem que permitir enviar e-mail através de clientes como o thunderbird e outlook veja como
2 – Seu servidor possui algum firewall, antivirus ou porta 25 bloqueada.
Caso alguém tenha feito de uma maneira diferente, por favor coloque aqui um comentário para ajudar a comunidade.
Comentários : 12 Comments »
Categorias : Php
Frase do Dia
7 02 2007É logicamente impossível para qualquer coisa ser melhor do que outra enquanto permanecer completamente idêntica.
Esta frase foi tirada do seguinte artigo:
Comentários : Leave a Comment »
Categorias : Frases do Dia
Frase do Dia
6 02 2007O maior causador de gambiaras da história é o IF.
Anselmo Battisti
Você compraria em uma loja suja e com vendedores mal educados? pois é justamente isto que oferece aos seus clientes quando não leva em conta a usabilidade do seu site.
Anselmo Battisti
Minha religião não permite que eu instale o plug-in do flash no navegador!
Anselmo Battisti
Comentários : Leave a Comment »
Categorias : Frases do Dia
ADODB e Conexão com base de dados
5 02 2007Ta ai uma classe para fazer conexão com base de dados mssql com ADODB
class conecta { private function __construct(){ } /** * getConexao * * @abstract Retorna um objeto de conexão com o banco de dados * de acordo com o usuário,senha e base de dados * **/ public static function getConexao($pusuario=null,$psenha=null,$pbanco=null) { ini_set('display_errors',0); // caso não seja passado um banco ele pega o da sessao if($pbanco=="") { $banco = $_SESSION['bancoDados']; } else { $banco = $pbanco; } if($pusuario==""){ $usuario = $_SESSION['usuario']; } else { $usuario = $pusuario; } if($psenha==""){ $senha = $_SESSION['senha']; /* senha do usuário */ } else { $senha = $psenha; } $servidor = "nome do servidor"; $db = @NewADOConnection('mssql'); $db->Connect($servidor,$usuario,$senha,$banco); $db->SetFetchMode(ADODB_FETCH_ASSOC); if($db->ErrorMsg()=="Login incorrect."){ echo "Não logou"; } else { return $db; } } }
Quando você logar com uma senha errada ele redireciona para o arquivo index indicando que aconteceu o ERRO.
Comentários : Leave a Comment »
Categorias : Php
Montar Disquete
4 08 2006Para montar o disquete
mount -t vfat /dev/fd0 /media/floppy
Comentários : Leave a Comment »
Categorias : Linux
CSS focus
27 07 2006input:focus, textarea:focus, label:focus { background: #fff; border: 1px solid #686868; }
para trocar a cor de um input quando vc clica dentro dele. Isto
não funciona no IE
Comentários : 1 Comment »
Categorias : CSS
Frase do Dia
21 07 2006A porção da realidade que se enxerga é inversamente proporcional ao tempo de permanência assistindo a Globo!
Anselmo Battisti
Comentários : Leave a Comment »
Categorias : Frases do Dia
Máquina Virtual & Download de todos os links de uma página
13 07 2006Memória da Máquina Virtual Java
Quando for rodar um programa em JAVA e faltar memória na maquina virtual rode com o seguinte parâmetro
-Xms256M -Xmx1000M
no eclipse va em windows/options/instaledJRE/ seleciona a sua maquina virtual clique em editar e coloque o comando adicional.
Download de todos os links de uma Página
para fazer o downlaod de todos os links de uma página ai vai o script
wget url_site
sed -n ‘s/^<IMG SRC.*<A/<A/;/.java/p’ index.html > lista
wget -i lista -F \ –base url_site
Comentários : Leave a Comment »
Categorias : java, Linux, scripts
SQL – CONSTRAINT
16 05 2006Taca fogo em tudo 🙂 validação agora e tudo no banco aprendi a usar constraint.
ALTER TABLE PiadCapacitacao WITH NOCHECK
ADD CONSTRAINT Horas_positivas CHECK (Cpc_HrsSmnUsadas > 0);
Comentários : Leave a Comment »
Categorias : Uncategorized
localeconf
8 05 2006Hoje achei um programa muito fácil para configurar a localidade do seu computador no mundo, ele me ajudou a traduzir o openoffice para o português
apt-get install localeconf
Comentários : Leave a Comment »
Categorias : Uncategorized
screen É o cara
4 05 2006O screen é um programa muito interessante que permite dentro de um único shell abrir várias instâncias dele, isso é muito util quando se usa o putty por exemplo.
Uma matéria muito boa pode ser lida no site do aurélio.
Aqui vai um resumão da coisa:
convenção Quando ver um ^ significa CTRL + a.
^a muda de tela
^c cria uma nova tela
^: você cai na linha de comando do screen, ao digitarhardstatus alwayslastline “%c %w” que vai aparecer uma barra que diz quantas janelas estão abertas e em qual janela você está.
Comentários : Leave a Comment »
Categorias : Linux
Segunda Aula Prática de IA
4 05 2006Definiçã:
conhecimento: O conhecimento inclui, mas não está limitado, as descrições, hipóteses, conceitos, teorias, princípios e procedimentos que são ou úteis ou verdadeiros. O estudo do conhecimento é conhecido como epistemologia.
O conhecimento distingui-se da mera informação porque está associado a uma intencionalidade. Tanto o conhecimento como a informação consistem de declarações verdadeiras, mas o conhecimento pode ser considerado informação com um propósito ou uma utilidade.
referência
rpt.wikipedia.org/wiki/Conhecimento
Aprendizagem: A definição deste conceito vem sido estudado pela humanindade e a cada nosos conhecimentos que adquirimos o conceito de aprendizagem muda.
antiguidade:China e na Índia a finalidade era transmitir as tradições e os costumes.
idade media:O aprendizado era comendado pela religiao que nao respeitava os limites humanos mas sim a providencia divina.
vigotsky? o pensamento verbal não é uma forma de comportamento natural e inata, mas é determinado por um processo histórico-cultural e tem propriedades e leis específicas que não podem ser encontradas nas formas naturais de pensamento e fala. Uma vez admitido o caráter histórico do pensamento verbal, devemos considerá-lo sujeito a todas as premissas do materialismo histórico, que são válidas para qualquer fenômeno histórico na sociedade humana (Vygotsky, 1993 p.44).
piaget: Nos estudos de Piaget, a teoria da equilibração, de uma maneira geral, trata de um ponto de equilíbrio entre a assimilação e a acomodação, e assim, é considerada como um mecanismo auto-regulador, necessária para assegurar à criança uma interação eficiente dela com o meio-ambiente. (Wadsworth, 1996) Piaget postula que todo esquema de assimilação tende a alimentar-se, isto é, a incorporar elementos que lhe são exteriores e compatíveis com a sua natureza. E postula também que todo esquema de assimilação é obrigado a se acomodar aos elementos que assimila, isto é, a se modificar em função de suas particularidades, mas, sem com isso, perder sua continuidade (portanto, seu fechamento enquanto ciclo de processos interdependentes), nem seus poderes anteriores de assimilação. (Piaget,1975, p.14)
Resumo do McCarthy
Se um problema requer inteligencia para ser resolvido e se uma maquina conseguir resolve-lo entao esta maquina pode ser considerada inteligente.
O teste de Turing he um bom exemplo de como identificar se uma maquina he inteligente. O Teste prega o seguinte perguntas sao feitas a uma maquina e um humano, se quem fizer al pergunta nao conseguir identificar qual a maquina entao esta exibiu um comportamento similar ao comportamenteo humano logo ela pode ser considerada he inteligente.
IA pode ser aplicada mas mais variadas areas em cada uma destas areas he necessario um tipo de conhecimento inteligencia.
Comentários : Leave a Comment »
Categorias : Uncategorized
Anselmo é um Agente Inteligente
4 05 2006Mais uma vez o homem Anselmo mostra sua superioridade intelectual e com regras de inferências eurísticas apuradas resolve mais problema.
Pergunta que foi respondida:
Qual o time de futebol da professora de IA?
resposta depois de 5 segundos
R: Internacional
Como vc sabe anselmo, contenos: claro meus suditos
– Ela fez doutorado e mestrado em Porto Alegre logo ou as chances de torncer para um tima gaucho s'ao grandes, ela nasceu em Porto Alegre entao so podia ser ou Gremio ou para o Inter, como ela estava relativamente contente e sabendo que ontem o Inter ganhou na libertadores logicamente INTERNACIONAL
reposta CORRETA
Sou um Agente INTELIGENTE!
Comentários : Leave a Comment »
Categorias : Uncategorized
Reportar Erros e Alertas aos usuário “PHP”
3 05 2006É importante separar bem a camada de apresentação da camada de negócios. Em se tratando das mensagens de erro uma boa abordagem é a criação de um arquivo centralizador que irá possuir o layout e apenas receberá qual mensagem deve exibir:
<html> <body> <div id="corpo"> <blockquote> <p> <? echo "<img src='imagem/icone_". $_SESSION['mensagem_tipo'].".gif'/>"; echo $_SESSION['mensagem']; ?> </p> <a href="<?echo $_SESSION['url']?>">Voltar</a> </blockquote> </div> </body> </html>
Quando ocorrer um erro no uso do sistema basta fazer o seguinte:
$_SESSION[‘mensagem’] = “Favor informar um código válido!”;
$_SESSION[‘mensagem_tipo’] = “erro”;
header(“location: mensagem.php”);
A variável de sessão mensagem tipo é usada para identificar qual o tipo de mensagem que será apresentada ao usuário “erro, alerta, sucesso etc…”, no meu caso eu usei para indicar qual imagem irá aparecer ao lado da mensagem.
[]’s Anselmo Battisti
Comentários : Leave a Comment »
Categorias : Php
10 Armadilhas da Análise de Requisitos
2 05 2006Confusão sobre requisitos: requisitos mal elicitados;
Envolvimento inadequado do cliente: o cliente não é envolvido ou não tem interesse pelo processo do desenvolvimento, isso geralmente acarreta em distorções da visão do que o cliente imagina e o que ele recebe;
Requisitos vagos ou ambíguo: por serem mal elicitados vários requisitos podem descrever a mesma tarefa ou serem ambíguos quanto ao que devem realmente significar;
Requisitos sem prioridades: cada requisito deve ser categorizado quanto ao seu nível de prioridade, isto norteara os desenvolvedores sobre quais requisitos devem ser implementados primeiro além da atenção especial para pontos críticos do sistema;
Requisitos inúteis: construção de requisitos que estão fora do domínio do problema, são funções que o cliente imagina serem necessárias, a política de criação de um requisito deve ser: tudo o que não é necessário é desnecessário;
Paralisação na análise: um projeto deve avançar mesmo que toda a análise não tenha sido concluída pois os erros somente irão aparecer quando o projeto estiver sendo efetivamente desenvolvido;
Alteração do escopo: adição de novos requisitos durante a faze do projeto ou codificação é sinal de problemas na análise, em metodologias ágeis a alteração do escopo deixou de ser um problema para ser uma necessidade;
Processo de mudanças: quais os procedimentos devem ser feitos quando mudanças devem acontecer;
Análise de impacto: quais serão os reais efeitos de uma mudança dentro do software, o que ela afetará;
Controle de Versões: sistemas de controle de versão adequados evitam refazer trabalho perdido ou sobrescrito por um colega, no desenvolvimento de aplicações para Web este conceito é ainda mais importante.
Livro Indicado pelo Battisti
Comentários : 8 Comments »
Tags: engenharia de software, gerênciamento de projetos, projetos
Categorias : Livros, Programação
Hierarquia dentro de um Projeto de Software
1 05 2006Em algumas empresa o desenvolvimento de Software é feito de uma forma sistematizada e é desenvolvido em partes por grupos de pessoas com funções distintas:
pirâmida social
gerentes de projeto: geralmente pessoas mais experientes, a eles cabe a difícil tarefa das estimativa, de tempo e de custo, participam de todas as fazes do projeto mas de uma maneira macro não se preocupando com os detalhes peculiares de cada fase, mas sim do que afeta o sistema como um todo dentro da fase;
analista: responsável pela ponte entre os desenvolvedores e os clientes, produz os requisitos do sistema;
projetistas: com base nos requisitos elicitados pelos analistas, os projetistas criam os projetos estruturais "modulos" projetos de dados "quais informações devem ser armazenadas", a partir disto modularizam o sofware de forma que eles "módulos" sejam altamente coeso e fracamente acoplados;
programadores: pro fim temos os programadores que ficam com a transformação dos diagramas produzidos pelos projetistas em códigos da linguagem definida para o sistema ejunto com os clientes são responsáveis pelos testes do sistema.
Comentários : Leave a Comment »
Categorias : Uncategorized
VIM vi e Venci
27 04 2006Usem editores de texto realmente poderosos VIM, EMACS. Larguem estes editores WYSIWG eles te fazem perder segundo preciosos. No fim de um longo dia de trabalho você perdeu vários minutos, ao fim de um mês “horas” em vão.
O Aurélio, sim aquele Aurélio, cara muito gente boa por sinal, abrindo aspas “Estava com uma dúvida em um ER e pedi ajuda a ele, depois de uns 3 dias estava lá a resposta”, leia esta matéria sobre o VI que ele escreveu muito boa.
http://aurelio.net/doc/vim/pulando.html
Outra dica legal
para localizar por palavras dentro de arquivos no LINUX usem:
egrep palavra_busca nome_arquivo | less
no nome do arquivo pode ser qualquer coisa tipo *.php ou coisa do gênero
Comentários : Leave a Comment »
Categorias : Uncategorized
Conceitos da Inteligência Artificial IA
27 04 2006O QUE É INTELIGÊNCIA?
Binet Binet: “Inteligência é julgar bem, compreender bem;
Tearman Tearman: " A capacidade de conceituar e de compreender oeu significado”;
Helm Helm:“A atividade inteligente consiste na compreensão doessencial de uma situação e numa resposta reflexa essencial de uma situação e numa resposta reflexa propriada”;
Piaget Piaget: “Adaptação ao ambiente físico e social”;
O QUE É INTELIGÊNCIA ARTIFICIAL (IA)?
• “É a propriedade de um artefato de poder resolver problemas que se fossem resolvidos por um seu vivo problemas ele seria considerado inteligente.” (Barreto)
• Assim como existe medidas de inteligência para humanos é possível ter medidas de inteligência é possível ter medidas de inteligência para máquinas.
• Eliane Rich: “IA é o estudo de como fazer os computadores realizarem coisas que, hoje em dia são feitas melhores pelas pessoas”.
• Winston: IA é o estudo das idéias que permitem aos computadores serem inteligentes”.
• Charniak and McDermott: IA é o estudo das faculdades mentais através da utilização de modelos computacionais”.
• Bellman Bellman: “IA é o estudo e simulação de atividades que normalmente assumimos que requerem inteligência”.
• Russell and Norvig: “IA é o estudo e implementação de agentes racionais”.
fonte: http://www.inf.ufsc.br/~falqueto/aGraduacao/INE5633Sist_Intel/IA_Geral/IA_Introd_Historia.PDF
Histórico da Inteligência Artificial
Histórico da IA
As correntes de pensamento que se cristalizaram em torno da IA já estavam em gestação desde os anos 30 [BF81]. No entanto, oficialmente, a IA nasceu em 1956 com uma conferência de verão em Dartmouth College, NH, USA. Na proposta dessa conferência, escrita por John McCarthy (Dartmouth), Marvin Minsky (Hardward), Nathaniel Rochester (IBM) e Claude Shannon (Bell Laboratories) e submetida à fundação Rockfeller, consta a intenção dos autores de realizar “um estudo durante dois meses, por dez homens, sobre o tópico inteligência artificial''. Ao que tudo indica, esta parece ser a primeira menção oficial à expressão “Inteligência Artificial'' [McC79]. Desde seus primórdios, a IA gerou polêmica, a começar pelo seu próprio nome, considerado presunçoso por alguns, até a definição de seus objetivos e metodologias. O desconhecimento dos princípios que fundamentam a inteligência, por um lado, e dos limites práticos da capacidade de processamento dos computadores, por outro, levou periodicamente a promessas exageradas e às correspondentes decepções.
Existem duas linhas principais de pesquisa para a construção de sistemas inteligentes: a linha conexionista e a linha simbólica .
Conexionista visa à modelagem da inteligência humana através da simulação dos componentes do cérebro, isto é, de seus neurônios, e de suas interligações. Esta proposta foi formalizada inicialmente em 1943, quando o neuropsicólogo McCulloch e o lógico Pitts propuseram um primeiro modelo matemático para um neurônio. Um primeiro modelo de rede neuronal , isto é, um conjunto de neurônios interligados, foi proposto por Rosenblatt. Este modelo, chamado Perceptron , teve suas limitações demonstradas por Minsky e Papert [MP69] em livro onde as propriedades matemáticas de redes artificiais de neurônios são analisadas. Durante um longo período essa linha de pesquisa não foi muito ativa, mas o advento dos microprocessadores, pequenos e baratos, tornou praticável a implementação de máquinas de conexão compostas de milhares de microprocessadores, o que, aliado à solução de alguns problemas teóricos importantes, deu um novo impulso às pesquisas na área. O modelo conexionista deu origem à área de redes neuronais artificiais.
Simbólica segue a tradição lógica e teve em McCarthy e Newell seus principais defensores. Os princípios dessa linha de pesquisa são apresentados no artigo Physical symbol systems de Newell [New80]. O sucesso dos sistemas especialistas (SE) (do inglês, “expert system''), a partir da década de setenta, estabeleceu a manipulação simbólica de um grande número de fatos especializados sobre um domínio restrito como o paradigma corrente para a construção de sistemas inteligentes do tipo simbólico. Para facilitar a apresentação, vamos dividir a história da IA simbólica em “épocas'', conforme proposto em relatórios internos do MIT (Massachusetts Institute of Technology):
Divisão cronológica das idéias e dos objetivos atribuídos a IA
Clássica
Inicialmente, a pesquisa em manipulação de símbolos se concentrou no desenvolvimento de formalismos gerais capazes de resolver qualquer tipo de problemas. O sistema GPS, General Problem Solver, projetado por Ernst e Newell [EN69], é um exemplo deste tipo de pesquisa. Estes esforços iniciais ajudaram a estabelecer os fundamentos teóricos dos sistemas de símbolos e forneceram à área da IA uma série de técnicas de programação voltadas à manipulação simbólica, por exemplo, as técnicas de busca heurística. Os sistemas gerais desenvolvidos nesta época obtiveram resultados interessantes, por vezes até impressionantes, mas apenas em domínios simplificados, onde o objetivo era principalmente a demonstração da técnica utilizada, e não a solução de um problema real. O problema com os sistemas gerais é que a sua extensão a domínios de problemas reais se mostrou inviável. Isto se deveu a duas razões, uma relacionada com características teóricas dos métodos utilizados, e outra associada à natureza do conhecimento do mundo real.
A razão teórica é conseqüência do uso, nos sistemas gerais, de modelos baseados em lógica de primeira ordem como formalismo básico. A utilização desses modelos leva à chamada explosão combinatória : a memória e o tempo necessários para resolver um determinado problema cresce exponencialmente com o tamanho do problema. Este problema, descrito por Cook em seu artigo The complexity of theorem proving procedures [Coo71], é inerente aos métodos baseados em lógica, independentemente das técnicas de programação utilizadas. A segunda razão está associada ao fato de que, freqüentemente, o conhecimento disponível sobre o mundo real é incompleto e parcialmente incoerente, e que por vezes a única forma de solução conhecida para determinados problemas reais consiste em uma série de regras práticas não fundamentadas por nenhum tipo de teoria geral do domínio que pudesse ser usada para orientar a solução.
Esta situação levou a dois tipos diferentes de solução: (i) uso de métodos formais de inferência mais fracos do que a lógica de primeira ordem que garantissem uma certa eficiência aos programas, por exemplo, lógicas multivalores [PS85], [Bel77] e linguagens terminológicas [BW77]. (ii) Desenvolveram-se métodos heurísticos e lógicas não convencionais para permitir a representação de crenças, incoerências e incompletudes, por exemplo, lógica modal [HM85], lógica de exceções [Rei80] e lógica nebulosa [Zad79].
Romântica
Durante a década de setenta, a IA estava praticamente restrita ao ambiente acadêmico. Os objetivos da pesquisa eram, principalmente, a construção de teorias e o desenvolvimento de programas que verificassem estas teorias para alguns poucos exemplos. É interessante notar que o fato de que não havia interesse em construir programas de IA “de verdade'', isto é, com aplicações práticas, não se deve a uma eventual incompetência em programação dos pesquisadores em IA. Pelo contrário, foi a inspiração desses “hackers'' que levou a conceitos hoje integrados à ciência da computação, como: tempo compartilhado, processamento simbólico de listas, ambientes de desenvolvimento de “software'', orientação objeto, etc., além da mudança da relação usuário-computador ao eliminar a intermediação de um operador e colocar cada usuário diante de sua estação de trabalho.
Uma mudança importante ocorreu ao longo da década de setenta em relação aos critérios acadêmicos de julgamento de trabalhos em IA: houve uma crescente exigência de formalização matemática. Se no início dos anos setenta, um programa, mesmo tratando de alguns poucos exemplos de um problema até então não tratado, já era considerado IA, isto não acontecia mais em 1980. O programa em si passou a ser a parte menos importante; a análise formal da metodologia, incluindo decidibilidade, completude e complexidade, além de uma semântica bem fundada, passou a ser o ponto fundamental [Hay77], [McD78]. A década de setenta marcou também a passagem da IA para a “vida adulta'': com o aparecimento dos primeiros SE's, a tecnologia de IA passou a permitir o desenvolvimento de sistemas com desempenho intelectual equivalente ao de um ser humano adulto, abrindo perspectivas de aplicações comerciais e industriais.
Moderna
A tecnologia de SE disseminou-se rapidamente e foi responsável por mais um dos episódios ligados a promessas não cumpridas pela IA: o sucesso dos primeiros SE's chamou a atenção dos empresários, que partiram em busca de um produto comercializável que utilizasse esta tecnologia. No entanto, um SE não era um produto: um produto, na visão dos empresários, não deveria ser um sistema específico para um dado problema, mas algo que fosse implementado uma única vez e vendido em 100.000 unidades, por exemplo, uma ferramenta para a construção de sistemas especialistas (ASE) . Com isso foram colocadas no mercado uma grande quantidade de ASE's que prometiam solucionar o problema de construção de SE's. A conseqüência foi uma grande insatisfação por parte dos usuários, pois, apesar de uma ferramenta de programação adequada ajudar muito a construir um sistema complexo, saber o que programar continua sendo o ponto mais importante.
Se os ASE's deveriam ser vendidos como produtos de IA, então em algum lugar deveria haver IA, e o lugar escolhido foi o motor de inferência , que passou a ser considerado como sinônimo de IA. Isto levou à ilusão de que para construir um SE bastaria comprar um ASE, enquanto que a verdade é que a IA em um SE está basicamente na forma como é representado o conhecimento sobre o domínio, isto é, onde a IA sempre esteve: na tentativa de entender o comportamento inteligente a ser modelado, no caso o comportamento do especialista ao resolver um problema. Uma outra conseqüência desta visão distorcida dos ASE's foi a pouca ênfase dada inicialmente à aquisição de conhecimento , certamente a parte mais difícil do desenvolvimento de um SE. Se exageros existiram na publicidade dos ASE's, por certo houve também trabalhos descrevendo com fidelidade o potencial e as limitações da nova tecnologia (por exemplo, [DK77], [HRWL83] e [Wat86]).
Atualmente, os ASE's são considerados como parte de uma tecnologia de desenvolvimento de “software'' estabelecida, sendo objeto de diversas conferências internacionais e submetida a avaliações rigorosas de desempenho (por exemplo, [SMS92]). Entre os diversos benefícios associados ao desenvolvimento de SE's podem-se citar: distribuição de conhecimento especializado, memória institucional, flexibilidade no fornecimento de serviços (consultas médicas, jurídicas, técnicas, etc.), facilidade na operação de equipamentos, maior confiabilidade de operação, possibilidade de tratar situações a partir de conhecimentos incompletos ou incertos, treinamento, entre outros. Atualmente, existem milhares de SE's em operação nos mais variados domínios, e a influência da IA em outros campos da computação, como engenharia de “software'', bancos de dados e processamento de imagens vem crescendo constantemente.
As principais áreas de pesquisa em IA simbólica são atualmente: sistemas especialistas, aprendizagem, representação de conhecimento, aquisição de conhecimento, tratamento de informação imperfeita, visão computacional, robótica, controle inteligente, inteligência artificial distribuída, modelagem cognitiva, arquiteturas para sistemas inteligentes, linguagem natural e interfaces inteligentes. Além das linhas conexionista e simbólica, observa-se hoje o crescimento de uma nova linha de pesquisa em IA, baseada na observação de mecanismos evolutivos encontrados na natureza, tais como a auto-organização e o comportamento adaptativo. Nesta linha, os modelos mais conhecidos são os algoritmos genéticos e os autômatos celulares [Bar75], [FTW83], [GH88], [Hol75] e [Hol86].
A gradativa mudança de metas da IA, desde o sonho de construir uma inteligência artificial de caráter geral comparável à do ser humano até os bem mais modestos objetivos atuais de tornar os computadores mais úteis através de ferramentas que auxiliam as atividades intelectuais de seres humanos, coloca a IA na perspectiva de uma atividade que praticamente caracteriza a espécie humana: a capacidade de utilizar representações externas, seja na forma de linguagem, seja através de outros meios [Hil89]. Deste ponto de vista, a computação em geral e a IA em particular são o ponto culminante de um longo processo de criação de representações de conhecimento, iniciado com as primeiras pinturas rupestres. Esta nova perspectiva coloca os programas de IA como produtos intelectuais no mesmo nível dos demais, ressaltando questões cuja importância é central para os interesses atuais da IA, por exemplo, como expressar as características individuais e sociais da inteligência utilizando computadores de maneira a permitir uma maior produtividade, e como as propriedades das representações utilizadas auxiliam e moldam o desenvolvimento de produtos intelectuais?
Comentários : 4 Comments »
Categorias : Uncategorized