sexta-feira, julho 17, 2009

Google x Microsoft: E no meio do caminho havia um Linux



Não se sabe ao certo quem atirou areia nos olhos do outro, mas a verdade é que a briga Google x Microsoft tem se intensificado cada vez mais nesses últimos tempos. Seja pelo lançamento do Bing, o motor de busca da Microsoft que realmente parece ameaçar a hegemonia do google.com, ou a popularização do Google Docs entre clientes corporativos como suíte de escritório, mas a Big G e a empresa de Bill Gates parecem querer competir em ambas as frentes pelo dominio dos usuários da internet.

Google.com x Bing: O Front Principal



Sem dúvida que destruir o Google.com onde ele faz melhor, não é uma tarefa das mais fáceis, porém a Microsoft aceitou o desafio e parece ter feito um bom trabalho com o Bing. Ainda é cedo, porém, para apontar um dos dois como melhor ferramenta  de pesquisa, mas é visivel que ambos utilizam bons algoritmos de busca e boa taxa de resultados relevantes. Algo que merece ser destacado é o sistema de filtro por categorias de resultados do buscador da MS, um recurso realmente interessante e útil na hora de selecionar o tipo de conteúdo desejado para a pesquisa, mas que entretanto deveria ser aperfeiçoado um pouco mais para nós brasileiros. Quanto a aparência, apesar do Bing ter uma aparência visual excepcional, com belas imagens periodicamente mudadas pelo software, a simplicidade do google.com faz com que o serviço possa ser exibido corretamente nos mais diversos tipos de dispositivos e velocidades de conexão a internet.

Windows Live x Google Wave: Combates periféricos





Se por um lado, a MS decidiu integrar um grande número de serviços web (como o messenger, spaces, skydrive, hotmail, imagens, entre outras ferramentas mais) sob a marca Windows Live permitindo o acesso de usuários através de um único ID, o Google foi melhor:Mudou toda a forma de se pensar em serviços web através do Google Wave, que integra em uma só ferramenta funcionalidades de e-mail, mensagens instantâneas e wiki. Onde uma simples mensagem enviada pode tanto se comportar como um e-mail comum, como dar  inicio a toda uma conversação em tempo real e onde é possível ao usuário acompanhar diversas informações a respeito do contato, como últimas fotos adicionadas, videos publicados, etc.

Google Docs x Office 2010 Online: Próximo confronto direto



Em 2007, quando o Google juntou uma planilha eletrônica com um editor de textos (este comprado pela gigante das buscas três meses antes) e mais tarde integrando-se a uma ferramenta de apresentações. Estava formada uma suíte de escritório online que permitiria ao usuários acessarem os seus documentos de qualquer lugar onde houvesse uma conexão a internet. Incluindo ainda a possibilidade de compartilhar o mesmo documento com outras pessoas, em regime colaborativo. Um serviço online excelente, mas ainda online... Então o Google lançou o navegador Chrome e junto com ele a opção de acessar e armazenar os arquivos hospedados no docs localmente. E o melhor! Tudo isso inteiramente grátis! Estava armado um concorrente de peso para a galinha dos ovos de ouro da Microsoft, a suíte MS Office.

E a MS resolveu contra-atacar! O seu novo produto, o Office 2010 (que já fora anunciado anteriormente pelo nosso bog) , tem data de lançamento marcada para o primeiro semestre de 2010 e entre as principais novidades a respeito do produto, está o lançamento de uma versão simplificada do Word, Excell, Powerpoint e One Note disponível gratuitamente na web. Com isso, a Empresa de Bill Gates aposta que a marca "Office" seja o suficiente para que centenas de pessoas começem a  utilizar o serviço em oposição ao Google Docs.

Windows x Chrome OS: O Ápice



Com o anúncio do lançamento de seu Sistema Operacional basado no seu navegador web, Chrome, o Google praticamente iniciou a corrida armamentista! Enquanto a Microsoft faz grande alarde de sua tecnlogia azure para cloud computing (embora nada de muito sólido tenha sido definido ainda) e de seu novo S.O para desktops, o Windows 7, o Google aposta em um sistema open source leve e voltado inicialmente para sistemas com menor quantidade de recursos, como os Netbooks, com aplicações e serviços localizados principalmente na web.

E entre mortos e feridos, havia um penguim...

"Don't be evil" é o nome da filosofia seguida pelos funcionários do Google que diz, de uma maneira bem resumida, que não se deve tomar atitudes nocivas  que possam prejudicar a imagem da empresa e entre os consumidores e concorrentes. Por muito tempo, o Google transpareceu essa filosofia inteiramente, pregando a paz e o bem-estar dos usuários.

Entretanto, vejamos os últimos anúncios e analisemos um outro sistema operacional que busca seu lugar ao sol, o Linux.

Os usuários do S.O do pinguim, sempre sofreram muito com a fragmentação do aplicativos e distribuições. São tantas as distribuições e reunindo tantos softwares diferentes que nasceram e morreram  por mudanças de  interesses dos desenvolvedores ou por falta de retorno vindo de seus usuários que seria difícil a um S.O poder crescer ao nivel em que pudesse confrontar diretamente um S.O comercial. Mas isso felizmente aconteceu com a distribuição da Canonical, o Ubuntu Linux.

O Ubuntu tornou-se rapidamente um dos sistemas operacionais mais populares e com mais recursos disponíveis atuamente. Mas será que após o Chrome OS ele continuará tão popular assim? Afinal, nenhuma distribuição Linux dota do poder de Marketing da empresa de Sergey Brin e Lary Page ou do suporte para tantos fabricantes de hardware.

O Futuro parece nublado para o Linux....





sexta-feira, julho 10, 2009

SQLite e Relacionamentos

Para quem não conhece, o SQLite é um banco de dados leve open source, escrito em C, transacional que não precisa de servidor e sem necessidade de configuração. O banco destaca-se pela sua ótima performance e portabilidade. E como usamos esse banco então? Basta nós adicionarmos a lib (dll) do SQLite em nossos projetos. Para saber mais acesse a home page do projeto http://www.sqlite.org/.

Uma das suas grandes deficiências é a falta de relacionamentos. Porém como o banco suporta triggers, muita gente implementa esses relacionamentos através destas. Assim ao invés de você criar um relacionamento, você cria várias triggers. Para ilustrar o que estou falando vamos a um exemplo da criação de um relacionameto em um banco de dados relacional qualquer:

CREATE TABLE casa (
id INTEGER NOT NULL PRIMARY KEY
);

CREATE TABLE morador (
id INTEGER NOT NULL PRIMARY KEY,
casaId INTEGER
CONSTRAINT fk_casa_id REFERENCES casa(id)
);
No SQLite, este relacionamento é implementado da seguinte forma:

-- Foreign Key Preventing insert
CREATE TRIGGER fki_morador_casaId_casa_id
BEFORE INSERT ON [morador]
FOR EACH ROW BEGIN
SELECT RAISE(ROLLBACK, 'insert on table "morador" violates foreign key constraint "fki_morador_casaId_casa_id"')
WHERE NEW.casaId IS NOT NULL AND (SELECT id FROM casa WHERE id = NEW.casaId) IS NULL;
END;

-- Foreign key preventing update
CREATE TRIGGER fku_morador_casaId_casa_id
BEFORE UPDATE ON [morador]
FOR EACH ROW BEGIN
SELECT RAISE(ROLLBACK, 'update on table "morador" violates foreign key constraint "fku_morador_casaId_casa_id"')
WHERE NEW.casaId IS NOT NULL AND (SELECT id FROM casa WHERE id = NEW.casaId) IS NULL;
END;

-- Foreign key preventing delete
CREATE TRIGGER fkd_morador_casaId_casa_id
BEFORE DELETE ON casa
FOR EACH ROW BEGIN
SELECT RAISE(ROLLBACK, 'delete on table "casa" violates foreign key constraint "fkd_morador_casaId_casa_id"')
WHERE (SELECT casaId FROM morador WHERE casaId = OLD.id) IS NOT NULL;
END;
Como pode-se ver, não é nenhum pouco prático, no entanto seguindo essa onda de WEB 2.0 foi criado um serviço na internet que já cria esses códigos automaticamente para você, bastando que nós colemos o código de criação do relacionamento. Para usar esse serviço acesse http://rcs-comp.com/site/index.php/view/Utilities-SQLite_foreign_key_trigger_generator e aproveite para melhorar seu banco!.

quarta-feira, julho 08, 2009

Google anuncia Google Chrome OS

Durante muito tempo se falou sobre o possível lançamento do sistema operacional do Google, então a gigante lançou o Android, os ânimos se aplacaram, as pessoas se contentaram, eis que de repente a notícia cai como uma bomba, o Google irá lançar um sistema operacional para netbooks, laptops e Desktops! Tremei Microsoft, seu reinado está ameaçado!

A idéia do Google é repensar como os sistemas operacionais devem ser, para isso o Google pretende fazer um sistema operacional open source e leve inicialmente voltado para netbooks. Pelo que deu pra entender o sistema já está em estado bem adiantado, pois o Google fala que na segunda metade de 2010, o sistema já estará sendo vendido em conjunto com netbooks no mercado.

Velocidade, leveza e segurança, como essse trio o Google pretende emplacar seu sistema operacional. Não por conhecidência, as maiores reclamações dos usuários do Windows, notadamente o Vista, são lentidão, um sistema pesado que exige hardware poderoso e falta ou excesso de segurança.

O sistema será compatível com várias arquiteturas, pois o Google anunciou que o Chrome OS rodará em máquinas com chips x86 e ARM. Provavelmente teremos mais um distribuição Linux. Também fica claro que este sistema será totalmente diferente do Android e que ambos são sistemas projetos diferentes dentro do Google.

Sabe-se que o sistema será voltado para a web, com foco nos serviços e aplicações, notadamente as do Google.

Muitos já estão falando em dominação do mundo, mas o fato é que pelo sistema ser open source, essas anseios ficam asfastados.

Se seguir a filosofia do Google Chrome, realmente teremos um sistema leve e fácil de usar, só esperamos que não demore muito e que nem o sistema saia em uma estado "cru" demais e nunca saia do Beta. Aguardamos ansiosamente!

segunda-feira, julho 06, 2009

Instalando o Ruby on Rails

Em se tratando de desenvovimento WEB, ágil, moderno e eficiente, nada mais natural que se falar em Ruby on Rails. Nesse post nós aprenderemos como instalar essa grande ferramenta.

Instalando no Windows

Instalar este framework no sistema operacional do tio Bill é mamão com açucar. Isso porque uma alma caridosa, Curt Hibbs, juntou tudo em um único arquivo e disponibilizou na web, assim como o EasyPHP. Esse pacote se chama InstantRails e contém Ruby, Rails, SQLite, MySQL, Apache, etc. Vamos aos passos para instalá-lo:

  1. Baixe o InstantRails da seção de downloads site http://instantrails.rubyforge.org/wiki/wiki.pl.
  2. Descompacte o conteúdo em um diretório, de preferência na raiz de alguma partição. Ex: "C:\InstantRails" ou "D:\InstantRails"
  3. Acesse o diretório escolhido e execute o InstantRails. Se aparecer uma janela perguntando se você quer gerar novamente os arquivos de configuração, clique em sim.
Na janela do InstantRails você pode monitorar o status do Apache,do MySql e de suas aplicações Rails. Lembre-se que para digitar os comandos do Rails, você SEMPRE deve abrir o console para digitar os comandos. Para isso, clique no botão com o ícone do InstantRails do lado do botão Apache, menu Rails Applications, Open Ruby Console Window, como na imagem a seguir:

Ruby on Rails instalando, é hora de atualizar a sua versão para a mais nova, devemos abrir o console, conforme explicado no parágrafo anterior e digitarmos no prompt:

C\:InstantRails> gem update rails --include-dependecies

Instalando no Linux

No Linux a instalação é menos prática, mas em compensação o framework ao final já estará atualizado e totalmente integrado ao sistema.

Independente da distribuição Linux usada, teremos que instalar o interpretador Ruby, depois o gems, que a partir daí instalará o Rails. Nós usamos o Ubuntu 9.04 Jaunty Jackalope para demonstração. Para instalar, abra o prompt e digite:
$sudo aptitude update
$sudo aptitude install build-essential
$sudo aptitude install ruby rubygems ruby1.8-dev libsqlite3-dev
$sudo gem install -y rails
$sudo gem update sqlite3-ruby

Pronto seu Ruby on Rails está instalado! =D

domingo, julho 05, 2009

A Maravilhosa Prototype

Quem já precisou fazer qualquer projeto com javascript, sabe muito bem o quão chata é essa linguagem. Não por ter sintaxe obscura ou complexa, mas sim pela falta de bibliotecas nativas de acordo com as novas exigências da web. É aí que entra a Prototype.

Alguns preferem chamar de biblioteca, outros de framework, não importa o nome, o fato é que Prototype extende em muito as funcionalidades padrão do javascript. A biblioteca acrescenta métodos as classes do DOM, tornando o estilo de codificação em javascript mais moderno e robusto.

Um bom exemplo de inovação genial, são os seletores. Sabemos como é doloroso escrever códigos usando o famoso método getElementById() do DOM, pelo fato da sua sintaxe ficar terrivelmente grande. Observe o exemplo:

//estilo de codificação comum
document.getElementById('popup').style.display = 'none';

Sinta agora a diferença da mesma linha de código com Prototype:

//usando prototype
$('popup').hide();


Viu? Agora se você quer "esconder" todos os elementos com a tag div ou com a tag span, dentro da div #guestbook, comumente, podemos fazer assim:

var divs = document.getElementById('guestbook').getElemenstByTagName('div');
for (i=0;i<divs.length;i++)
{
divs[i].style.display = 'none';
}
var spans = document.getElementById('guestbook').getElemenstByTagName('span');
for (i=0;i<divs.length;i++)
{
spans[i].style.display = 'none';
}


10 linhas de código, tarefas repetidas... Poderia ter criado uma função, mas só pra isso? Concordo, isso não vale uma função. Agora veja o mesmo trecho com prototype:

$('#guestbook div', '#guestbook span').each(function (node) { node.hide(); });


Uma linha?! Já deu pra notar o poder prototypeano?

Se você quiser saber mais dessa fabulosa biblioteca, acesse http://www.prototypejs.org ou acompanhe a nova série Prototype do nosso blog.

sexta-feira, julho 03, 2009

Melhorando o sinal 3G, versão gambi

Para aqueles que estão sem grana para comprar a famigerada antena externa para modens 3G, ou não tem saco para fazer uma cantena, existe uma solução temporária de baixo custo, enquanto as outras não podem ser providenciadas.

Esta solução tabajara é na verdade um fio desencapado colocado no conector da antena externa no modem, fazendo as vezes de antena! A partir daí você pode colocar todo seu conhecimento adormecido aprendido no tempo das televisões preto e branco para fora. Vale pôr bombril na ponta do fio, enrrolar o meio e o final, usar fundos de latas de refri, ou cerva, para improvisar parabólicas, enfim, vale tudo para melhorar o sinal!

quarta-feira, julho 01, 2009

O Flickr e o Twitter: Juntos Agora!!



O Flickr, serviço de upload de fotos da Yahoo integrou ontem (30/06) sua integração total com o Twitter, a rede social mais influente e de crescimento mais rápido dos últimos tempos. Agora é possível tanto compartilhar suas fotos armazenadas no Flickr pelo Twitter ou escrever para seus seguidores, via microblog, a respeito das atualizações efetuadas no seu album, por exemplo.

Mas como, fazer isso? Primeiramente é necessário cadastrar o seu microblog no sistema. Ou seja, a partir do menu Minhas Coisas, selecione a opção Conta e a aba Extendendo o Flickr. Em seguida em Seus Blogs, configure os detalhes de sua conta no Twitter. Confirmada a operação no próprio Twitter, você já poderá enviar suas fotos do Flickr pelo Twitter.

A partir de então, você pode tanto enviar fotos tiradas pelo celular para o endereço de e-mail gerado após o cadastro de sua conta no twitter, como pode  utilizar o botão Blogar no alto da foto que estiver sendo visualizada, escrever sua mensagem e pronto! Lembrando que as mensagens devem possuir no máximo 116 caracteres, posto que o Flickr anexa ao post o endereço da foto em formato de url reduzida.



Além disso, o serviço online disponibilizou um usuário no twitter, chamado @Flickr, para divulgar novidades e fatos interessantes na Flickesfera.

Bom proveito, twitters!