Mostrando postagens com marcador web. Mostrar todas as postagens
Mostrando postagens com marcador web. Mostrar todas as postagens

quarta-feira, junho 01, 2011

Nova busca do Twitter permitirá pesquisar fotos e vídeos

O Twitter constantemente oferece aos seus usuários melhorias na interface de seu serviço de microblogs de acordo com a demanda dos usuários, foi assim com o famoso botão de RT (mecanismo de republicação de posts de outros usuários que atua propagando os dados para os usuários que seguem a você) e  ferramentas facilitadas de inserção de links e imagens. Agora, o site apresenta duas novas funcionalidades: um serviço integrado de publicação de fotos e um novo sistema de buscas que indexará além de mensagens e perfis, fotos e vídeos publicados pelos usuários.

Para efetuar esse tipo busca, é necessário que o usuário busque por hashtags, ou seja, aquelas palavras e expressões iniciadas por um simbolo "#" como #music, #photos, #guloseimas, #showdebola etc.. Os resultados de vídeos e imagens são listados na coluna direita da página de busca e podendo ser expandidas para uma página própria.


Quanto ao serviço integrado de publicação de fotos, o Twitter fechou uma parceria com o photobucket para o desenvolvimento e fornecimento da tecnologia. como resultado, agora as imagens poderão ser anexadas diretamente na caixa de tweets (Aquela do "What's happening?").

Ficou curioso, então veja o vídeo promocional dos recursos



Te cuida, Google!

quarta-feira, maio 25, 2011

Programando para Android: Criando uma aplicação com o Eclipse IDE - Parte 2

Antes de começarmos, é importante que seu ambiente de desenvolvimento já esteja preparado e configurado para criar aplicações para Android, por isso sugiro ler o post anterior.

Programar para Android é muito fácil, afinal: Java é ensinado em 99% das escolas de informática ao redor do mundo! Para ilustrar isso vamos fazer o mundialmente famoso "Hello World" e para você criar também, só basta seguir o passo a passo abaixo.

Abra o Eclipse e clique no menu "File", depois no submenu "New" e por fim em "Project...". Uma janela semelhante a mostrada abaixo se abrirá:


Clique em "Android", depois em "Android Project" e por fim em "Next > ". Uma janela de propriedades se abrirá, aqui devemos determinar as configurações básicas iniciais do nosso projeto.


Coloque o nome do projeto de "Hello Droid". Em "Build Target" devemos selecionar qual versão do Android nossa aplicação será testada, clique em Android 1.5. Note que a cada versão do Android, temos um nível de API diferente.

Em "Aplication Name" coloque "Hello Droid", este será o nome da nossa aplicação quando instalada em um dispositivo.

Em "Package name" coloque "com.cafecombits.hellodroid". Neste campo devemos seguir uma hierarquia, começamos com "com", de "company", seguido da companhia em si, "cafecombits", depois podemos hierarquizar da forma que nos convier, sempre colocando o nome da nossa app por último, por exemplo: "com.cafecombits.games.crazychess", "com.cafecombits.tools.coffeemachine".

Marque a opção "Create Activity" e escreva: "hello". Activitys são equivalentes a janelas no mundo da programação Desktop.

Em "Min SDK Version" coloque "3", esta é a versão mínima do Android necessária para rodar sua aplicação. Em caso de dúvidas olhe na tabela "Build Target" em API Level. Por exemplo, se a versão mínima é a 2.2, coloque 8.

Agora é só clicar em finish e seu projeto se abrirá conforme mostrado abaixo:



A estrutura de pastas do nosso projeto está sendo mostrada a esquerda. A pasta "src" contém o código em java de nossa aplicação. A pasta"res" contém 3 subpastas, "drawable", onde colocamos as imagens, "layout", onde ficam os arquivos XML que guardam a forma visual de nossas activitys, e a pastas "values", onde existe um arquivo especial chamado "strings.xml", onde podemos colocar todas as strings que nossa app irá utilizar. Como podemos ver o Android foi pensado na torre de babel das línguas do mundo. E com a centralização de strings em arquivos fica fácil fazer a tradução da nossa aplicação para outros idiomas.

Na direita, podemos ver que está aberto o arquivo hello.java, que contém o código da nossa activity inicial. Basicamente ele cria a activity e seta seu arquivo de layout. Sim! Aquele da pasta "res/layout" chamado "main.xml".

Se você abrir o arquivo "main.xml", vai ver uma imagem semelhante a essa, onde podemos ver uma paleta de contoles a esquerda e opções de visualização em cima:


Então você me diz, mas espere um pouco, isso não é um arquivo XML? A resposta é sim! O Eclipe abre um editor que facilita a visualização e edição do layout de nossa activity, mas se você preferir, pode ver o código XML puro clicando embaixo na aba "main.xml" ao lado de Graphical Layout".

Como podemos ver o projeto padrão já criou uma frase emblemática em nossa app. Como podemos alterar essa frase? O código XML de nossa acitivity não explica muita coisa, podemos notar que o nosso arquivo não armazena o conteúdo da string da frase diretamente, mas carrega seu conteúdo a partir de uma string definida no arquivo "strings.xml", contido na pasta "res/values". Ao abrir esse arquivo, devemos clicar na string "hello", então na direta poderemos editar em "value":


Digite "Hello Droid!" e pronto, nossa aplicação já pode ser compilada e testada! Clique na aba "hello.java", depois em "Debug" ou aperte "F11" e a tela do emulador com nossa aplicação se abrirá.

Caso você ainda não tenha nenhum emulador definido, pode criar um clicando no menu "Window -> Android SDK and AVD Manager".

Veja o resultado final de nossa app:



Divirtam-se!

quarta-feira, maio 27, 2009

Lançado Google Chrome 2.0

O navegador do Google chega a sua versão 2.0 cheio de novos recursos para tentar alcançar os rivais, no entanto, o principal trunfo do aplicativo é sua simplicidade e boa performance.

Infelizmente, grande parte das novidades do Chrome, já estão implementadas nos demais navegadores há tempos. Então não espere nada inovador ou que não esteja disponível em qualquer browser moderno. Vamos aos principais novos recursos:

  1. Modo de Tela Cheia: quando apertamos a tecla F11, o Chrome entra em modo de tela cheia. Ou seja, o mesmo passa a ocupar toda a tela e os menus, abas, etc., ficam ocultos. Para trocar as abas neste modo, basta clicar "Ctrl + Tab". Para voltar ao modo janela, basta apertar F11 novamente. Nada empolgante, uma vez que este recurso está disponível há muito tempo nos outros navegadores.
  2. Zoom em páginas: esta é outra novidade que já é comum nos outros browsers e que só agora foi implementada no Chrome. Para ampliar o conteúdo apertamos "Ctrl + " e para afastar teclamos "Ctrl -".
  3. Autopreenchimento de Formulários: finalmente este recurso básico foi implementado, nada de demais em relação à forma de funcionamento.
  4. Corretor Ortográfico: o browser integrou um corretor que ajuda na hora de escrever emails, comentários, etc. Porém o mesmo não está atualizado em consonância com o novo acordo ortográfico da língua portuguesa.
As demais novidades, não passam de melhorias em recursos já existentes, como a possibilidade de remover miniaturas de uma aba em branco do Chrome.

O motor de renderização WebKit usado no Chrome e no Safari foi atualizado, melhorando, assim, a performance e a compatibilidade aos padrões web. Como consequência, no teste Acid 3, o Chrome se destaca por atingir a pontuação máxima, mas, como ainda ocorre uma falha durante o o teste, o navegador ainda precisa melhorar.

O V8, apelido sugestivo do motor de javascript do Chrome, foi melhorado. Com isso temos uma melhor performance acessando sites com interfaces ricas, típicas da web 2.0, feitas usando o conjunto de tecnologias conhecidas como AJAX.

Os desenvolvedores dizem ter otimizado partes do código do browser e corrigido mais de 200 bugs. De fato o navegador ficou bem mais estável, mesmo quando executando plug-ins de terceiros como Java e Flash.

Concluindo, apesar das melhorias e das novas funções, o navegador não fez mais do que agregar recursos que já existiam há muitos anos em seus rivais. O Chrome ficou devendo suporte à extensões e temas, que fazem do Mozilla Firefox um browser tão popular. Por outro lado, o browser está bem mais estável, leve, rápido e prático.

Para baixar o Chrome, acesse http://www.google.com/chrome e divirta-se!

terça-feira, maio 26, 2009

A Microsoft usando Software Livre?

A Microsoft todo mundo sabe, sempre agiu com ferocidade contra a filosofia do software livre chegando ao ponto de Steve Ballmer, CEO da MS, declarar em 2001 que o código aberto era como um câncer para a indústria de software. Com a divulgação do lançamento da nova ferramentas de buscas da empresa conhecido atualmente como Kumo (e abordado pelo Café com Bits nesse post) e que trabalha sobre uma estrutura de software livre, a situação parece ter mudado para a Microsoft.

Entretanto, essa mudança de paradigmas vai muito além do novo buscador da MS. Acredito que essa essa tendência iniciou basicamente na popularidade da plataforma .NET entre os desenvolvedores, formando uma comunidade colaborativa que iniciou com os fóruns e bibliotecas de estudo disponíveis no site oficial de desenvolvedores Microsoft, o MSDN. Mais tarde, surgiram o portal para desenvolvedores ASP.NET AJAX e um repositório de software assumidamente declarado como projeto open-source, o CodePlex. Nele é possível compartilhar softwares e componentes de software, categorizar os projetos por tipo, bem como visualizar os projetos mais populares e os último a serem divulgados.

Mas, não para por aí. O lançamento do portal Port25 pegou a todos de surpresa a começar pelo título "Port25 is home to open source community at Microsoft. This represents an open conversation dedicated to Linux". Mas hein? Isso mesmo caro leitor, foi isso mesmo que você leu. Na verdade, o Port25 destina-se a integração de tecnologias livres aos produtos microsoft, como por exemplo o Eclipse4SL, open-source baseado no Eclipse para desenvolvimento de aplicações ricas usando Silverlight ou lançamento de um SDK PHP para Windows Azure.

É, A briga entre software proprietário x software livre parece estar se desenrolando e já vemos um vencedor apontando . aparentemente...



sexta-feira, maio 22, 2009

Google lança o Chrome 2.0

Ontem dia 21, fora lançado o novo navegador de internet do Google, o Chrome 2.0, acirrando ainda mais a atual guerra dos browsers. Segundo o gigante das buscas, o Chrome 2.0 apresenta um novo motor de javascript que tornou o browser 30% mais eficiente em termos de performance.


Além disso, o navegador estréia um recurso já conhecido de seus concorrentes, o Auto-preenchemento de formulários, Zoom de página através dos atalhos Ctrl+ e Ctrl-  e criação de perfis de acesso.



Além disso, temos o recurso de rolagem automática da página através de um clique sobre a página e indicando a direção desejada.



Baixe o novo Google Chrome 2.0.



quinta-feira, maio 21, 2009

Liberado Visual Studio 2010 Beta




Nessa segunda dia 19, foi liberado para download o Beta da nova versão da IDE de desenvolvimento de sistemas da Microsoft, o Visual Studio 2010.

Entre as novidades da nova versão estão:


  • Aprimoramento da interface gráfica: com uma organização mais clara, redução de complexidade, janelas e documentos flutuantes, editor melhorado.
  • Programação paralela: Agora disponível tanto para usuários de código nativo e gerenciado e com suporte embutido na própria IDE.
  • Gerenciamento do ciclo de vida de aplicações: Prometendo ferramentas para todos os envolvidos no projeto de software, desde arquitetos a programadores e testadores. Incluindo construção de novos tipos de diagramas com use cases e diagramas de sequência e atividade, um novo motor de testes e uma nova ferramenta de controle de workflow.

  • Desenvolvimento WEB: Novo motor de intellisense de Javascript,suporte a SilverLight,  "One click deployment" que permite publicar todo o site e suas dependências de uma só vez.
  • Cloud Computing: Windows Azure Tools já integradas por padrão na IDE.
  • Suporte nativo a mais Databases: Agora é possível utilizar as classes de acesso a dados nativos do .NET Framework para BDs baseados em IBM DB2 e Oracle.


Ficou interessado? Pode conferir o novo VS 2010 aqui.

Aprenda Cloud Computing com a Microsoft



Para quem quer aprender a programar para a nuvem sem muito esforço, a Microsoft disponibiliza uma área específica no portal MSDN (voltado para desenvolvedores de produtos microsoft) para o estudo das características e funcionalidades do Windows Azure, a plataforma para Cloud Computing da empresa, o desenvolvimento e deployment de aplicações para a nuvem e a integração com outros serviços, como o SQL Services e ferramentas de colaboração da série Live.

Chamada Azure Academy, essa área disponibiliza apresentações em forma de vídeos e transparências que guiam o estudante desde os conceitos introdutórios da estrutura e objetivos envolvidos no desenvolvimento da plataforma Azure até a distribuição de serviços e  aplicações na nuvem. O forte das apresentações é, sem dúvida, a linguagem de fácil entendimento e a presença de demontrações explicativas que facilitam o entendimento do conteúdo apresentado.

Para o desenvolvimento para Windows Azure, é utilizado o Visual Studio 2008 integrado com com o Windows Azure SDK e o conjunto de ferramentas para do Windows Azure para o Visual Studio.



sexta-feira, maio 15, 2009

Validando Expressões Facilmente em ASP.NET

Se você é programador ASP.NET e costuma utilizar os componentes da aba validation da Toolbox do  MS Visual Studio, provavelmente já se deparou com o trabalho árduo de criar expressões de validação para campos de texto específicos como Data,Endereços, Telefones, CEP, CPF, CNPJ, etc.. Infelizmente, a IDE da microsoft possui poucas referências prontas e o trabalho de criação de novas expressões é, no mínimo, broxante.

A solução pode vir com o site RegExLib.com. Trata-se de uma biblioteca formada por Validations Expressions criadas por milhares de desenvolvedores em todo o mundo. Todas elas possuem o código disponível livremente, seguido por uma descrição a respeito da aplicação da expressão e exemplos de dados aceitos ou não pela expressão. Inclusive, caso você seja criativo ou tenha uma expressão de validação que deseja compartilhar, o sistema oferece a oportunidade de submeter o código para a rede em instantes. Vale a pena dar uma conferida.

terça-feira, maio 12, 2009

Leve seus favoritos para todos os lugares!



Você navega diariamente por uma centena de sites e eventualmente alguns deles te chamam a atenção de tal forma que você não quer correr o risco de esquecer o endereço. A escolha mais comum é guardá-lo na lista de favoritos de seu navegador e dessa forma você constrói uma verdadeira biblioteca de sites úteis. Entretanto, um dia você se depara com a necessidade de formatar emergencialmente a sua máquina, seja pelo ataque de algum malware ou a corrupção de um arquivo do sistema, e entre os sem números de arquivos a ser incluído em seu backup, você acaba esquecendo da lista de favoritos perdendo assim essa informação valiosa.

Felizmente, existe solução para esse dilema e ele atende pelo nome de XMarks, um complemento do Firefox voltado especialmente para essa funcionalidade. Anteriormente conhecido como Foxmarks, o XMarks sincroniza automaticamente os favoritos de seu navegador com a lista existente no servidor do serviço, bastando para isso que o usuário possua uma conta no website, entretanto, caso o usuário não possua-a é possível criar rapidamente uma nova conta a partir do complemento. Além disso, se o usuário decidir utilizar a sua senha em outro computador que possua o complemento, ele pode compartilhar as listas de favoritos do novo computador com a sua lista atual. Ideal para quem utiliza vários computadores para acessar a internet, como o pc do trabalho e o de casa.

E o Xmarks não sincroniza apenas os favoritos, mas bookmarks e senhas também. Além disso, ele oferece informações interessantes sobre sites selecionados por outros usuários e realiza backups frequentes de seus favoritos e senhas após mudanças.

Ficou curioso? Adicione já ao seu Firefox!

A partir do repositórios de complementos do Firefox ou direto do site oficial.

quinta-feira, maio 07, 2009

Lembre-se do Leite!



Uma aplicação web que está se tornando bastante popular atualmente é o serviço oferecido pelo site rememberthemilk.com. Mas, calma! Não é um serviço de entrega delivery de leite pela web, mas de um poderoso gerenciador de tarefas que permite ao usuário cadastrar suas atividades e compromissos diários. Com ele, você pode planejar as suas atividades semanais de maneira fácil e rápida, categorizando as da maneira que quiser e adicionando notas de lembrete.

Uma ferramenta interessante para quem tem uma agenda cheia de compromissos, para aqueles que desenvolvem projetos remotos e necessitam de uma ferramenta de controle temporal eficiente, controlar o regime de estudo para vestibulares e concursos ou mesmo para uso para controle de atividades do trabalho.

Mas, o forte da aplicação é a interatividade com um número variado de serviços. Você pode acessar o remember the milk pelo seu Iphone, Windows Mobile, integrar ao Gmail, Google Calendar, Tasque,Twitter além de um sem número de outras variedades de softwares que utilizam o sistema RTM.




terça-feira, maio 05, 2009

Café com Bits agora também no Twitter


O Café com Bits agora vai estar muito mais perto de você, caro leitor! Estamos entrando na rede social que mais tem crescido na atualidade, integrando os cerca de 10 milhões de usuários do Twitter. A rede que foi criada em 2006, utilizando o formato de microblogs, onde as mensagens inseridas não podem ultrapassar a faixa dos 140 caracteres e que a cada dia torna-se ainda mais popular atraindo pessoas interessadas em compartilhar suas vidas e perspectivas, o público corporativo interessado em estimular uma melhor comunicação entre empresas e clientes e o meio jornalístico que encontrou na rede uma oportunidade de divulgar um acontecimento assim que o mesmo tenha ocorrido.

É com essa intenção que o Café Com Bits entra em mais um campo de atuação, objetivando uma infomação de qualidade disponível onde você estiver!

Follow us!


segunda-feira, fevereiro 23, 2009

Mil e uma maneiras de se conectar à web

É impossível não deixar de perceber a revolução pela qual passa a acessibilidade virtual em nosso país. Com o advento das redes Wi-Fi e da tecnologia de terceira geração (3G), tecnicamente conhecida como WCDMA, tivemos a oportunidade de conhecer um novo padrão de mobilidade. Independente da operadora contratada pelo usuário, a possibilidade de se acessar internet em banda larga a partir de lugares diversos passou a ser uma realidade. Uma despedida aos planos de acesso à internet domésticos baseados em redes com base em cabos que obrigam o cliente a se conectar à web por meio de um lugar fixo.

Entretanto, já despontam no horizonte alternativas que prometem abranger ainda mais a rede wireless nos centros urbanos. A primeira delas diz respeito a uma tecnologia semelhante ao 3G, a WiMax. Diferente do que acontece com as atuais redes Wi-Fi, que distribuem ondas por uma casa, empresa ou uma pequena área na vizinhança da antena, o WiMax promete abranger regiões inteiras para cada antena, que chegam ao raio de 500m a 1Km em regiões muito densas do ponto de vista populacional, com presença de muitos obstáculos físicos, como prédios e outras construções, ou até 4Km em cidades menos populosas.

wimax-1

Entre as principais diferenças entre as tecnologias 3G e WiMax, temos que a primeira opera em frequências na faixa de 1,9MHz/2,1MHz e pode atingir taxa de transferência de dados na casa dos 7mbps, enquanto que a concorrente possuem frequência de espectro na faixa de 2,5GHz (como as praticadas nos Estados Unidos e na Ásia) ou de 3,5GHz (como encontradas na Europa e América Latina) e podem atingir taxas de transferencia de dados na casa dos 70Mbps. Entretanto, falta ainda uma regulamentação da tecnologia pela Anatel, já que ela ainda é considerada por aqui como rede fixa associada a uma única antena mais próxima e com velocidades bem menores as prometidas pela tecnologia.

Mais próxima de uma regulamentação definitiva, está a rede PLC – Power Line Communications ou simplesmente Internet sob rede elétrica é uma tecnologia que se baseia justamente na transmissão de dados e voz através da rede de energia elátrica. Com regulamentação prevista pela Anatel para sair até o final de março, a PLC apresenta algumas vantagens e desvantagens.

tomada_web

Entre as vantagens do PLC estão o baixo custo de instalação por utilizar uma instalação já existente, que independente do país tende a ser a mais abrangente, atingindo a marca de 95% da população mundial. A taxa de transferência de dados é outro ponto importante e está estimada na casa dos 40mbps, operando em frequências que variam entre 1,7MHz e 30MHz. Além disso, a criptografia empregada no sinal através de um algortimo DES de 56 bits promete acabar com o uso de sinal de internet alheio como acontece nas redes Wi-Fi.

Como desvantagens da internet sob a rede elétrica, estão os fatos de que experiências com a tecnologia confirmaram perda de sinal por corrompimento por longas distâncias, além de sofrer interferências por outros equipamentos eletrônicos e sinais de rádios ou ecos causados por emendas, “T”s, filtros de linhas, transformadores e o ligamento/desligamento de produtos eletrônicos.

Entretanto, apesar dos pontos fracos e fortes dessas novas formas de acesso, não se pode negar que elas servirão como uma alternativa a mais para o consumidor optar no momento de escolher sua forma de conexão à grande rede, enquanto o mercado se prepara para uma nova guerra entre os provedores dessas tecnologias.

Por Janio N. Lima

quarta-feira, outubro 15, 2008

Cloud Computing - Programando nas Nuvens

cloud

Em muitos diagramas da informática, principalmente na área de redes de computadores, é comum retratar o ambiente diverso da internet como a figura de uma nuvem (cloud, em inglês) e não por acaso. Tal qual uma nuvem real, a internet apresenta uma estrutura maleável com centro indefinido e contornos em constante mutação. Logo, Cloud Computing passou a ser conhecido como o ato de se utilizar a internet como se a mesma fosse uma extensão de seu computador.

É uma tendência que vêm ganhando força ultimamente, principalmente com os investimentos realizados por gigantes como o Google, Yahoo!, Microsoft, IBM entre outras e objetiva de forma simples centralizar tarefas relativas a processamento de dados em um unico lugar. Na prática, o computador passaria a ser um pouco mais que uma porta de acesso à nuvem e os serviços oferecidos por ela, sem a necessidade de instalar pouco ou nenhum dado adicional, o que para uma empresa significaria uma boa economia em investimentos em hardware, backups e atualizações de softwares.

Entretanto, a tecnologia não é tão recente como aparenta ser, afinal ela é a base que sustenta grandes empresas como o Google, atual ícone da Cloud Computing, e que tornou o mesmo tão popular, seja por meio de seu famoso motor de busca (que vasculha a cada consulta 40 bilhões de páginas, selecionando as informações pertinentes e devolvendo-as ao usuário como links) ou atuais aplicativos on-line Gmail, Google Calendar, Google Docs, etc. Mas não só ela, o que impressiona na programação nas nuvens é a diversidade de soluções disponíveis, indo desde simples sistemas de armazenamento de dados, edição de fotos, editores de texto até mesmo sistemas operacionais! Pelo menos é o que prometeu no ínicio do mês Steve Ballmer, CEO da Microsoft. O S.O, provisoriamente chamado de Windows Cloud seria um projeto separado do Windows 7 e voltado para desenvolvedores de aplicativos WEB, já disponível antes do fim do ano segundo pronunciamento de Ballmer.

Mas, e como a Cloud Computing garante a segurança dos dados de seus usuários? Bom, isso é uma questão que ainda levanta polêmica entre os pesquisadores do assunto, embora a opinião geral seja que os riscos são mínimos para a área corporativa. Para eles, é mais vantajoso para pequenas e médias empresas manterem seus dados na nuvem do que armazena-los no HD de seus servidores. A explicação é que as empresas que oferecem serviços web geralmente possuem uma equipe especializada destinada a proteger os dados armazenados, sistemas robustos e atualizados de combate a vírus e invasões e backups frequentes, coisa que muitas empresas desse porte não tem condições de realizar por conta de baixos investimentos na área ou falta de pessoal capacitado.

Flexibilidade do Cloud Computing

Isso sem contar que a flexibilidade da internet, facilita o acesso aos dados tanto por computadores e notebooks até por celulares, PDAS e outros dispositivos digitais. O resultado de toda essa revolução seria por exemplo o fim de suítes de softwares, como o pacote Office da Microsoft, em virtude de serviços web gratuítos ou assinados períodicamente. Enfim, aparentemente vivemos mais um momento de mudança de conceitos com relação ao computador e a influência da web em nossas vidas. Ou talvez não? Mais uma vez na informática, a força dessa corrente só o tempo dirá.

Por Janio N. Lima

sábado, outubro 11, 2008

Live Search usando AJAX, PHP e MYSQL

Um recurso muito legal e útil usado em páginas da web 2.0, é o chamado “live search”. O live search consiste em uma caixa de pesquisa cujos resultados são exibidos em tempo real sem precisar recarregar toda a página. O exemplo é bem simples e pode ser visto em http://solleon.hostdegraca.com/cafecombits/livesearch/, onde basta digitarmos três letras e o resultado da pesquisa já é exibido logo a baixo.

Vamos agora demonstrar passo a passo como fazer uma busca do tipo “live search” para suas aplicações online.

Passo I – Fazendo um banco de dados para o exemplo

Para o exemplo vamos criar um banco de dados em MYSQL bem simples, contendo somente uma tabela, como monstrado a seguir:

bd

O script de criação do BD é:


SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Banco de Dados: `exemplo`
--

-- --------------------------------------------------------

--
-- Estrutura da tabela `Frases`
--

CREATE TABLE IF NOT EXISTS `Frases` (
`CodFrase` int(11) NOT NULL auto_increment,
`frase` varchar(255) NOT NULL,
`autor` varchar(50) NOT NULL default 'Desconhecido',
PRIMARY KEY (`CodFrase`),
KEY `frase` (`frase`,`autor`),
FULLTEXT KEY `frase_2` (`frase`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Frases interessantes' AUTO_INCREMENT=49 ;



Se preferir baixar este script, clique aqui.



Para excecutar o script de criação, podemos abrir o prompt de comando e simplesmente digitar:



shell> mysql < arquivo_texto



Também podemos abrir o client mysql e digirtar:



mysql> source filename



O client fará tudo de forma automatizada e teremos nosso banco de dados criado.



Cadastre algumas frases no banco de dados para poder vizualisar o exemplo mais tarde.





Passo II – Criação da página HTML para pesquisa e exibição dos dados



Nossa página em HTML será bem simples, terá apenas uma caixa de busca no topo, onde o usuário irá digitar uma palavra, e as frases que a contiverem serão exibidas logo abaixo.



Seu código HTML deve conter um form e uma div que daremos o nome de “resultado” para exibição dos resultados da consulta. O form deve ter um controle input, onde o evento onhotkey deve chamar uma função que fará a consulta.



Código HTML da página “index.html” do exemplo




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml">


<head>


<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />


<title>Exemplo de Live Search</title>


<style type="text/css">


<!--


body {


font-family: Arial, Helvetica, sans-serif; font-size: 0.7em;


color:#000;


margin:0;


padding:0;


}



#page {

width:720px;


height:100%;


margin-left:auto;


margin-right:auto;


margin-top:0;


padding:0;


}



#content {

width:85%;


margin-left:auto;


margin-right:auto;


padding:0;


padding-top:30px;


padding-left:5px;


padding-right:5px;


text-align:justify;
}



#resultado

{


background: #F5F5F5;


padding:15px;


border:#999 3px dashed;


}


.titulo {


font-size: 1.5em;


font-weight: bold;


text-align:center;


}



.subtitulo {

font-size: 1.3em;


font-weight: bold;


text-align:center;


}



label, input {
display: block;
}
fieldset {
border: dashed 3px #999;


background:#F5F5F5;


padding:15px;


}



-->

</style>


<script src="ajax.js" language="javascript" type="text/javascript"></script>


</head>



<body>

<div id="page">


<div id="content">


<span class="titulo">


Exemplo de Live Search usando AJAX, MYSQL E PHP


<br /><br />
</span>


<!-- este é o form de pesquisa, repare que não tem action e nem um controle submit-->


<form name="busca">
<fieldset>


<legend>Buscar frases</legend>


<!-- esta eh a caisa de pesquisa, repare no onkeyup chamando a funcao Buscar que fara a pesquisa-->


<input type="text" size="89" maxlength="255" name="texto" onkeyup="Buscar();" />
</fieldset>


</form>
<br />
<br />
<!-- essa div conterá o resultado da busca-->


<div id="resultado"><span class='subtitulo'>Digite uma palavra com mais de 2 (duas) letras. Por exemplo, <i>vida</i></span></div>


</div>


</body>


</html>



Este código HTML pode ser baixando na íntegra clicando aqui.



Salve o arquivo como “index.html” no seu servidor WEB.



Passo III – Criando o javascript da página “index.html”



O javascript da página, conterá funções que interpretam e tratam a entrada do usuário, que criam o xml request e lê o xml com o resultado da busca gerado dinamicamente e, por fim, formataram o resultado para o html adicionando a página.



Por razões óbvias, chamaremos esse arquivo de javascript de “ajax.js”, segue o código fonte do mesmo:



// JavaScript Document

var http_request = false;



//funcao que realiza a busca

function Buscar()


{


//pegando o valor do controle no form na pagina


var text = document.busca.texto.value;
//se o comprimento do texto for maior que dois


if (text.length >2)


{


//definindo pagina que fara a consulta e retornará o xml


var url = "buscar.php";


url += "?q="+text;


//gerando uma imagem do tipo carregando para que o usuario saiba que esta sendo feita uma busca no banco de dados


document.getElementById("resultado").innerHTML = "<div align='center' class='subtitulo'><img src='ajax-loader.gif' alt='Carregando...' /><br /><br />Carregando...</div>";


//chamando funcao que verifica se a busca pode ser feita


AtualizaResultado(url);


}


else


{


document.getElementById("resultado").innerHTML = "<span class='subtitulo'>Digite uma palavra com mais de 2 (duas) letras. Por exemplo, <i>vida</i></span>";


}


}


//coracao do ajax, cria o objeto xmlhttprequest e tenta lelo


function AtualizaResultado(url)


{



http_request = false;

if (window.XMLHttpRequest) { // Mozilla, Safari,...


http_request = new XMLHttpRequest();


if (http_request.overrideMimeType) {


http_request.overrideMimeType('text/xml');


}


} else if (window.ActiveXObject) { // IE


try {


http_request = new ActiveXObject("Msxml2.XMLHTTP");


} catch (e) {


try {


http_request = new ActiveXObject("Microsoft.XMLHTTP");


} catch (e) {}


}


}



if (!http_request) {

alert('Não foi possível criar uma instância XMLHTTP');


return false;


}


http_request.onreadystatechange = mudancaDeEstado; // essa funcao eh chamada quando o xml eh carregado


http_request.open('GET', url, true);


http_request.send(null);


}



//funcao que controi o resultado da busca

function mudancaDeEstado()


{


var retorno = "";


//definindo o xml


var xmldoc = http_request.responseXML;


//navegando para a tag item


var lst = xmldoc.getElementsByTagName('item');


var total = 0;


//criando a tabela para exibicao dos dados


retorno = "<table width='100%' border='0' cellpadding='2' cellspacing='2'>";


//percorrendo todos os itens


for (var i=0;i<lst.length;i++)


{


var frase = "";


var autor = "";


total = total +1;


var objNode = lst[i];


if (objNode.nodeType == 1)


{


for (var j=0;j<objNode.childNodes.length;j++)


{


var objNI = objNode.childNodes[j];


if (objNI.nodeType == 1)


{


switch (objNI.nodeName)


{


case "frase":


frase = objNI.firstChild.nodeValue;


break;


case "autor":


autor = objNI.firstChild.nodeValue;


break;


}


}


}


}


//criando row na tabela que conterá a frase e o autor


retorno += "<tr><td><i>&quot;"+frase+"&quot;</i> <strong>"+autor+"</strong></td></tr>";


}
if (total > 0)


{


retorno += "<tr><td><strong>"+total+" frase(s) listada(s)</strong></td></tr></table>";
}


else // no caso de não ter encontrado nenuma frase


{


retorno = "<span class='subtitulo'>Nenhuma frase encontrada com esta palavra</span>"


}


//escrevendo o resultado no documento


document.getElementById("resultado").innerHTML = retorno;


}



Para baixar o arquivo já pronto, clique aqui.



Você deve salvar este arquivo como “ajax.js” no mesmo diretório onde salvou o “index.html”, no seu servidor WEB.



Passo IV – Criando a página PHP que realizará a consulta no BD



Agora iremos confeccionar a página PHP que fará a consulta no banco de dados e formatará o resultado em um arquivo xml para ser usado pelo javascript. O nome do arquivo do exemplo será “search.php”.



Código fonte, lembre-se de alterar os dados da conexão ao banco de dados:



<?php

//capturando variaveis


$buscar = $_GET["q"];


//abrindo conexao com o bancode dados


$link = mysql_connect("hostmysqlqualquer", "usuario", "senha");


if (!$link)


{
echo 'Não foi possível selecionar o banco de dados';


die('Não foi possível conectar: ' . mysql_error());


}


if (!mysql_select_db('exemplo', $link))


{


echo 'Não foi possível selecionar o banco de dados';


exit;


}


//criando a consulta


$sql = "SELECT * FROM Frases";


if (isset($buscar) && $buscar != '')


{


$sql .= " WHERE frase LIKE '%".$buscar."%'";


$sql .= " ORDER BY frase";


}


//executando a consulta
$result = mysql_query($sql, $link);
if (!$result)


{


echo "Erro do banco de dados, não foi possível consultar o banco de dados\n";


echo 'Erro MySQL: ' . mysql_error();


exit;


}


//montando o xml de saida


echo '<?xml version="1.0" encoding="iso-8859-1"?>'."\n";


echo "<frases>\n";
while ($row = mysql_fetch_assoc($result))


{


echo "\t<item>\n";


echo "\t\t".'<frase>'.$row['frase'].'</frase>'."\n";


echo "\t\t".'<autor>'.$row['autor'].'</autor>'."\n";


echo "\t</item>\n";



}

mysql_close($link);
echo '</frases>';


?>



Se preferir baixá-lo, clique aqui.



Salve no mesmo diretório onde estão os outros arquivos, com o nome de “search.php”, no seu servidor WEB, coloque também a figura que será exibida quando a consulta estiver sendo executada no mesmo diretório, para baixá-la clique aqui.



Pronto! Agora é só acessar “index.html” do seu browser e testar se o exemplo está funcionando bem no seu servidor WEB. Não se esqueça de inserir alguns registros no banco de dados para poder testar a pesquisa! Valeu e até a próxima pessoal!



Por Solleon Menezes

segunda-feira, outubro 06, 2008

Speed Dial no Firefox

O recurso "Speed Dial" nativo do navegador Opera, agora está presente também no Firefox como add-on.

O complemento permite que nós configuremos várias páginas para ser acessadas rapidamente. Para usá-lo basta adicionar uma nova aba ao navegador, onde serão gerados previews das páginas pré-selecionadas, como na imagem a seguir.


Ao se clicar em um preview, somos direcionados ao website orginal. O add-on facilita muito o acesso aos nossos sites prediletos.

Instalar o complemento no Firefox é muito simples, basta clicar no link https://addons.mozilla.org/pt-BR/firefox/addon/4810 e aproveite o seu dia!

Quer aprender qual idioma? italki.com

Está com vontade de aprender inglês? Italiano? Chinês? Alemão? Japonês? Ou talvez até mesmo português? ;) Aprender um idioma é o objetivo do site de relacionametos Italki.

A proposta do site é oferecer ao usuário um aprendizado de uma língua a partir da conversação e troca de experiências com outros usuários. O visual é bem leve, clean e bonito. O site é super funcional, turbinado com ajax.

Logo ao acessar o seu profile, o site pergunta o que você está disponível para fazer no momento, como o status do msn, como ensinar alguém, conversar, aprender, está querendo tirar uma dúvida, etc.

O profile do usuário, além das informações usuais de qualquer site de relacionamentos, traz um perfil linguístico do usuário, onde selecionamos as línguas que estamos aprendendo, o tempo disponível para o aprendizado e as línguas que sabemos.

O site traz ótimos recursos como a possibilidade de colocar arquivos no profile, para que seus "alunos" possam pegar, a produção de material didático para que qualquer um possa acessar o que é chamado de "Contribuitions".

As comunidades, chamadas de grupos, são voltadas para o aprendizado e aperfeiçoamento das línguas desejadas. Temos comunidades sobre gramática, conversação no msn, conversação no skype, tradução do próprio site, etc.

Achar material didático também é fácil, o site possui uma guia no profile chamada de "Recursos", onde você pode achar sites, podcasts, videos, software, livros, etc.

Acesse http://www.italki.com e aproveite um ótimo serviço online da web 2.0... Ah! E aproveite para aprender!