Nem todo o servidor é um servidor web

Há máximas que devemos ter sempre presentes:

“Nem todo o servidor é um servidor web.”

Finalmente ganhei coragem para configurar um verdadeiro ambiente de desenvolvimento completamente virtualizado, onde as VMs têm como sistema operativo CentOS 5 instalado a partir da netinstall e criei uma bridge do host para o guest.

Como padrão o webserver corre Apache na porta 80 e o servidor de dados irá correr MySQL na 3306.

O problema é que embora tivesse o Apache a correr e conseguisse pingar a máquina pelo seu endereço IP e hostname não estava a chegar ao Apache.
Lá se fez luz e fui direitinho à iptables adicionar a regra para a porta 80 que por omissão está fechada.
Continue reading

opensocial e shindig

The web is better when it’s social.

É com este slogan que se apresenta o projecto opensocial.org:

“Friends are fun, but they’re only on some websites. OpenSocial helps these sites share their social data with the web. Applications that use the OpenSocial APIs can be embedded within a social network itself, or access a site’s social data from anywhere on the web.”

Numa altura em que as redes sociais se multiplicam diariamente, os que já estavam presentes na internet precisam encontrar o equilibro no seu modelo de negócio aproximando os utilizadores do(s) seu(s) perfil social, concedendo aos seus sites áreas de interacção social.

Quando os grandes se juntam e aceitam falar a mesma língua tudo se simplifica.
O ilustre quadro de directores da OpenSocial (fundação sem fins lucrativos) assim o comprova:

  • Mike Jones, MySpace
  • Ramu Yalamanchi, hi5
  • David Glazer, Google
  • Joe Greenstein, Flixster
  • Sam Pullara, Yahoo!
  • Jay Parikh, Community Representative
  • Joseph Smarr, Community Representative

O resultado é notório e para quem conhece e/ou já experimentou o iGoogle ainda mais.
A especificação opensocial tem como princípio o acesso/partilha do perfil social dos utilizadores por toda a internet, disponibilizando uma API robusta para o efeito.

O meu contacto com esta tecnologia deveu-se à necessidade de implementar o conceito de widget/gadget. Não pretendendo reinventar a roda, este trabalho conjunto dos gigantes da web pareceu-me o caminho ideal a seguir.
No próximo passo a necessidade de alojar localmente os gadgets e a solução Shindig da Apache Software Foundation.

Tive oportunidade de fazer alguns testes mas quando o assunto é comunicar com Facebook, Twitter, GMail e afins, a coisa complica-se.
Daí a utilização desta combinação ficar, por enquanto, relegada para o plano experimental.

Se por aqui passar algum utilizador, fã ou mesmo fanático desta solução a caixa de comentários está aberta e eu interessado em partilhar conhecimento.

Virtual Hosts – MAMP

Para quem recorre ao MAMP como ambiente de desenvolvimento e pretende configurar Virtual Hosts aqui fica um How To em dois passos.

  1. Editar o ficheiro /Applications/MAMP/conf/apache/httpd.conf com um qualquer editor de texto (ex. Vim), acrescentando no final a seguinte entrada:
    NameVirtualHost 127.0.0.1
    <VirtualHost 127.0.0.1>
    	DocumentRoot "/Applications/MAMP/htdocs/site1/"
    	ServerName site1.dev
    </VirtualHost>
    <VirtualHost *>
    	DocumentRoot "/Applications/MAMP/htdocs/"
    	ServerName localhost
    </VirtualHost>
  2. Editar o ficheiro /etc/hosts(na raiz do sistema) com um qualquer editor de texto (ex. Vim), acrescentando a entrada ‘site1’ como abaixo:
    ##
    # Host Database
    #
    # localhost is used to configure the loopback interface
    # when the system is booting.  Do not change this entry.
    ##
    127.0.0.1       localhost site1.dev
    255.255.255.255 broadcasthost
    ::1             localhost
  3. Não há duas sem três: reinicie o MAMP (Stop Servers > Start Servers ou Quit)

Para testar, coloque um ficheiro em /Applications/MAMP/htdocs/site1/ e aceda a www.site1.dev a partir do seu browser.
Senão alterou a porta na qual o MAMP (na verdade o Apache que vem com este) está a servir, então deverá aceder através de www.site1.dev:8888

A escolha do TLD é opcional, tendo optador por .dev para projectos em desenvolvimento.