Você está na página 1de 99

UNIVERSIDADE COMUNITRIA DA REGIO DE CHAPEC Curso de Graduao em Sistemas de Informao

Andr Luiz Dallacorte

PROTTIPO DE REDE SOCIAL VOLTADA PARA A CONSCIENTIZAO AMBIENTAL BASEADA NOS PRINCPIOS DA WEB 2.0

Chapec SC, Julho de 2010

ANDR LUIZ DALLACORTE

PROTTIPO DE REDE SOCIAL VOLTADA PARA A CONSCIENTIZAO AMBIENTAL BASEADA NOS PRINCPIOS DA WEB 2.0

Monografia II apresentada Unochapec, como parte dos requisitos para obteno do grau de Bacharel em Sistemas de Informao. Orientador: Jos Carlos Toniazzo

Chapec SC, Julho de 2010

ANDR LUIZ DALLACORTE

PROTTIPO DE REDE SOCIAL VOLTADA PARA A CONSCIENTIZAO AMBIENTAL BASEADA NOS PRINCPIOS DA WEB 2.0

Esta Monografia foi julgada para obteno do ttulo de Bacharel em Sistemas de Informao, no Curso de Graduao em Sistemas de Informao da Universidade Comunitria da Regio de Chapec UNOCHAPEC Campus Chapec, com a seguinte Banca Examinadora:

_______________________________________ Prof. Jos Carlos Toniazzo Professor Orientador

_______________________________________ Prof. Jorge Antonio Di Domenico

_______________________________________ Prof. Sediane Carmem Lunardi

Chapec SC, Julho de 2010

AGRADECIMENTOS

Agradeo primeiramente aos meus pais, pelo apoio e incentivo durante todo o tempo, alm da ajuda financeira disponibilizada no decorrer do curso. Tambm agradeo a meu orientador, professor Jos Carlos Toniazzo, pela orientao clara e objetiva permitindo a realizao deste trabalho. Finalmente agradeo aos meus colegas e amigos, os quais fizeram grande diferena na minha vida, e que nunca sero esquecidos.

Se eu soubesse que o mundo acabaria amanh, ainda hoje plantaria uma rvore. Martin Luther King

RESUMO

Objetivando oferecer um espao para disponibilizar informaes relacionadas ao meio ambiente, este trabalho apresenta o desenvolvimento de um prottipo de rede social voltada para a conscientizao ambiental com base nos princpios da Web 2.0. Essa rede se mostra de grande valia, visto que preservar o meio ambiente um tema que vm apresentando expressiva relevncia. Cada vez mais pessoas buscam maneiras de defender esta causa. Apesar dos esforos nesse sentido, as pessoas ainda sentem a falta de um espao onde possam opinar e participar das discusses ambientais. Com base na conceituao de redes sociais, bem como um estudo das mesmas, busca-se expor os principais fatores que garantem uma boa receptividade dos usurios para a rede ambiental. Para isso, so apresentadas as tecnologias da Web 2.0, as quais esto cada vez mais completas e prezando por agilidade no desenvolvimento. Dessa forma, utiliz-las no desenvolvimento de uma nova rede social se torna de grande relevncia. Para isso, foi estudado o Framework Ruby on Rails, uma tecnologia em ascenso e que atende a todos os requisitos para desenvolver para a Web 2.0. Ao final do trabalho apresenta-se a rede desenvolvida, bem como a repercusso inicial que a mesma atingiu ao ser disponibilizada no domnio www.cigno.com.br. Palavras-chave: Ruby on Rails, Redes Sociais, Meio Ambiente.

ABSTRACT

Aiming to offer a space to provide information related to the environment, this work presents the development of a social network prototype focused on environmental awareness based on the principles of Web 2.0. This network proves valuable, as preserving the environment is a theme that have been having significant relevance. More and more people seek ways to defend this cause. Despite such efforts, people still feel the lack of a space where they can provide feedback and participate in environmental discussions. Based on the concept of social networks, and a study of them, seeks to explain the key factors that guarantee a good reception from users on the network environment. For this, are presented the Web 2.0 technologies, which are more complete and keep looking for agility in development. Thus, use them in developing a new social network becomes highly relevant. For this, was studied the framework Ruby on Rails, a technology and rising that meets all the requirements for developing for the Web 2.0. At the end of the work, are present the network developed and the initial impact that it has reached to be available in the domain www.cigno.com.br. Keywords: Ruby on Rails, Social Networks, Environmental.

LISTA DE FIGURAS

FIGURA 1: Seqncia de Eventos para Atender a Solicitao do Usurio. ............................ 27 FIGURA 2: Estrutura dos Documentos. ................................................................................... 28 FIGURA 3: Arquitetura de Arquivos Servlets e JSP. .............................................................. 32 FIGURA 4: Estrutura de Diretrios de uma Aplicao Rails .................................................. 46 FIGURA 5: Criando uma Aplicao Bsica em Rails. ............................................................ 48 FIGURA 6: Criando uma Estrutura Padro de um Novo Projeto em Rails. ............................ 49 FIGURA 7: Arquivo de Configurao do Banco de Dados. .................................................... 49 FIGURA 8: Criando o Banco de Dados do Projeto. ................................................................ 50 FIGURA 9: Criando Modelos, Vises e Controladores em uma nica Operao. ................. 50 FIGURA 10: Comando Rake para Executar a Migrao do Banco de Dados. ........................ 51 FIGURA 11: Iniciando o Servidor WebRick do Rails. ............................................................ 52 FIGURA 12: Tela para Listagem de Carros. ............................................................................ 52 FIGURA 13: Tela para Incluso de Carros. ............................................................................. 53 FIGURA 14: Tela para Exibio de Carros.............................................................................. 53 FIGURA 15: Tela para Edio de Carros. ................................................................................ 54 FIGURA 16: Tela para Destruio de Carros. ......................................................................... 54 FIGURA 17: Wireframe do prottipo. ..................................................................................... 69 FIGURA 18: Estrutura do projeto. ........................................................................................... 69 FIGURA 19: Tela da pgina inicial do prottipo. .................................................................... 75 FIGURA 20: Tela da pgina inicial do usurio logado. ........................................................... 76 FIGURA 21: Tela da pgina de aes realizadas pelo usurio logado. ................................... 77 FIGURA 22: Tela da pgina do perfil do usurio visitado. ..................................................... 78 FIGURA 23: Tela da pgina de mensagens do usurio logado. ............................................... 78 FIGURA 24: Tela da pgina do perfil de empresa. .................................................................. 79 FIGURA 25: Tela da pgina de Amigos seguidos pelo usurio logado. .................................. 79 FIGURA 26: Tela da pgina de empresas seguidas pelo usurio logado. ................................ 80 FIGURA 27: Tela da pgina de eventos com temtica ambiental. .......................................... 80 FIGURA 28: Tela da pgina de lbuns de fotos do usurio logado. ........................................ 81 FIGURA 29: Tela da pgina de fotos do lbum do usurio logado. ........................................ 81 FIGURA 30: Tela da pgina de vdeos do usurio logado. ...................................................... 82 FIGURA 31: Tela da pgina de Rankings. ............................................................................... 83 FIGURA 32: Tela da pgina do TreeRank de usurios. ........................................................... 84

FIGURA 33: Tela da pgina do TreeRank de empresas. ......................................................... 84 FIGURA 34: Relatrio Grfico de sesses do domnio cigno.com.br. .................................... 85 FIGURA 35: Relatrio Grfico de cliques do domnio cigno.com.br...................................... 86 FIGURA 36: Resumo da mdia de acessos do prottipo. ........................................................ 87 FIGURA 37: Comentrio realizado na rede social Twitter dia 05/06/2010. ............................ 87 FIGURA 38: Comentrio realizado na rede social Twitter dia 10/06/2010. ............................ 88 FIGURA 39: Comentrio realizado na rede social Twitter dia 15/06/2010. ............................ 88 FIGURA 40: Post realizado pelo Blog3 falando sobre o Cigno............................................... 88

LISTA DE QUADROS Quadro 1: Caractersticas da Linguagem Python. .................................................................... 34 Quadro 2: Principais Caractersticas das Tecnologias Apresentadas. ...................................... 36 Quadro 3: Aplicando o Mtodo upcase() em uma String. ........................................................ 39 Quadro 4: Classe em Ruby sem uso de Atalhos. ...................................................................... 39 Quadro 5: Classe em Ruby com uso dos Atalhos. .................................................................... 40 Quadro 6: Descrio da Funo de Cada Pasta da Raiz do Projeto Rails ................................ 46 Quadro 7: Estrutura Criada a Partir do Script de Scaffolding. ................................................. 51 Quadro 8: Atraes das Redes Sociais. .................................................................................... 62 Quadro 9: Fases do projeto ....................................................................................................... 70 Quadro 10: Principais plugins utilizados no projeto ................................................................ 71 Quadro 11: Funo para gerar o grfico do Ranking de empresas. .......................................... 72 Quadro 12: Cdigo para exibir na tela o grfico do Ranking de empresas. ............................. 72 Quadro 13: Cdigo do Will_Paginate para o Modelo Post. ..................................................... 73 Quadro 14: Cdigo para o Controlador do mtodo Post receber os dados paginados. ............ 73 Quadro 15: Cdigo para exibir os links da paginao na Viso do mtodo Post. .................... 73 Quadro 16: Tabela de utilizao do prottipo. ......................................................................... 87

LISTA DE SIGLAS E ABREVIATURAS

AJAX APAS API CGI CONAMA CRUD CSS DER DOM DRY EIA/RIMA FTP GPL HTML HTTP IBAMA JSP JVM MVC O.O. OGM ONG PHP RIA ROR SPHAN TCP/IP TI W3C XHTML XML

Asynchronous JavaScript+XML rea de Proteo Ambiental Application Programming Interface Common Gateway Interface Conselho Nacional do Meio Ambiente Create, Retrieve, Update, Delete Cascading Style Sheet Diagrama Entidade Relacionamento Document Object Model Dont Repeat Yourself Estudo e Relatrio de Impacto Ambiental File Transfer Protocol General Public License Hypertext Markup Language HiperText Transfer Protocol Instituto Brasileiro do Meio Ambiente e dos Recursos Naturais Renovveis Java Server Pages Java Virtual Machine Model, View, Controller Orientao a Objetos Organismos Geneticamente Modificados Organizao No Governamental Hypertext Preprocessor Rich Internet Application Ruby On Rails Servio de Patrimnio Histrico e Artstico Nacional Transmission Control Protocol / Internet Protocol Tecnologia da Informao World Wide Web Consortium eXtensible Hypertext Markup Language eXtensible Markup Language

SUMRIO

1 INTRODUO ..................................................................................................................... 15 1.1 ORGANIZAO DO TRABALHO............................................................................. 15 2 MEIO AMBIENTE E LEGISLAO AMBIENTAL ......................................................... 17 2.1 CONCEITO DE MEIO AMBIENTE ............................................................................ 17 2.2 PRESERVAO AMBIENTAL .................................................................................. 18 2.3 LEGISLAO AMBIENTAL ...................................................................................... 18 2.3.1 As 17 Leis Ambientais Mais Importantes da Legislao Brasileira ...................... 19 2.4 CONSIDERAES FINAIS ........................................................................................ 24 3 TECNOLOGIAS NA WEB 2.0............................................................................................. 26 3.1 AJAX ............................................................................................................................. 26 3.1.1 Web Standards e CSS............................................................................................. 27 3.1.2 DOM (Document Object Model) ........................................................................... 28 3.1.3 XML (Extensible Markup Language) .................................................................... 29 3.1.4 XMLHttpRequest ................................................................................................... 29 3.1.5 JavaScript ............................................................................................................... 29 3.2 PHP ................................................................................................................................ 30 3.3 JAVA ............................................................................................................................. 31 3.3.1 Java para a Web ..................................................................................................... 32 3.4 PYTHON ....................................................................................................................... 33 3.5 RUBY ON RAILS ......................................................................................................... 34 3.6 ADOBE FLEX ............................................................................................................... 35 3.7 CARACTERSTICAS DAS TECNOLOGIAS APRESENTADAS ............................. 35 4 O FRAMEWORK RUBY ON RAILS .................................................................................. 37 4.1 O QUE RUBY? .......................................................................................................... 37 4.2 CARACTERSTICAS DO RUBY ................................................................................ 38 4.3 ENTENDENDO O RUBY ............................................................................................ 38

4.3.1 Totalmente Orientado a Objetos ............................................................................ 39 4.3.2 Atalhos de cdigo ................................................................................................... 39 4.3.3 Escopo das Variveis ............................................................................................. 40 4.3.4 Tipos de acesso ...................................................................................................... 41 4.3.5 Mdulos ................................................................................................................. 41 4.3.6 Mixins .................................................................................................................... 41 4.4 INTRODUO AO FRAMEWORK RAILS ............................................................... 42 4.4.1 O Padro MVC ....................................................................................................... 43 4.4.2 Por Dentro do Rails ................................................................................................ 44 4.4.3 Estrutura de diretrios ............................................................................................ 45 4.4.4 Padro de Nomenclatura ........................................................................................ 47 4.4.5 Scripts do Ruby on Rails ........................................................................................ 47 4.5 DESENVOLVENDO APLICAES COM RAILS .................................................... 48 5 REDES SOCIAIS NA WEB ................................................................................................. 56 5.1 REDES SOCIAIS ATUAIS........................................................................................... 57 5.1.1 Orkut ...................................................................................................................... 57 5.1.2 Facebook ................................................................................................................ 58 5.1.3 Twitter .................................................................................................................... 59 5.1.4 YouTube................................................................................................................. 60 5.1.5 Ning ........................................................................................................................ 61 5.1.6 Outras redes sociais ................................................................................................ 61 5.2 FATORES PREPONDERANTES NA DISSEMINAO DE REDES SOCIAIS ...... 62 6 PROTTIPO DE REDE SOCIAL PARA A CONSCIENTIZAO AMBIENTAL ......... 64 6.1 REQUISITOS FUNCIONAIS ....................................................................................... 64 6.2 REQUISITOS NO FUNCIONAIS ............................................................................. 65

6.3 FATORES NECESSRIOS PARA O SUCESSO DA REDE ..................................... 66 6.4 DESENVOLVIMENTO DO PROJETO ....................................................................... 67 6.4.1 Ferramentas utilizadas ............................................................................................ 67 6.4.2 Desenvolvimento da Rede Social........................................................................... 68 6.4.3 Hospedagem do prottipo na Web ......................................................................... 74 6.4.4 Utilizao da Rede Social ...................................................................................... 74 6.4.5 Sistema de pontuao pela utilizao da rede ........................................................ 82 6.4.6 Anlise de Utilizao da Rede Social .................................................................... 85 7 CONCLUSO ....................................................................................................................... 90 7.1 TRABALHOS FUTUROS ............................................................................................ 90 8 REFERNCIAS .................................................................................................................... 92 9 ANEXO A: INSTALAO DO RUBY ON RAILS NO UBUNTU ................................... 96 10 ANEXO B: DIAGRAMA ENTIDADE RELACIONAMENTO ........................................ 97 11 ANEXO C: MODELO, VISO E CONTROLADOR ....................................................... 98

15

1 INTRODUO Atualmente, um dos principais problemas que o mundo enfrenta a falta de um espao para que as possam participar e contribuir nas discusses ambientais. Com base nisso, o presente trabalho tem como tema central o desenvolvimento de uma rede social verde. O objetivo permitir que os usurios da rede compartilhem com todos o que esto fazendo para a preservao ambiental. uma maneira de aliar a Tecnologia da Informao (TI) a atitudes em prol da conscientizao sobre a preservao do planeta. Atravs de uma rede social, usurios e empresas podem trabalhar em conjunto na preservao ambiental, com vantagens para ambos os lados. Nesse sentido, uma rede social com fins de preservao garante que todos estejam engajados na mesma causa, que manter o planeta vivo. Empresas e organizaes podero usar a rede social proposta para divulgarem de forma transparente o que fazem pelo bem do planeta. Desde uma pequena atitude, como separar o lixo reciclvel, at grandes aes, como tratamento de gua e reflorestamento. Alm disso, podem permitir que os usurios opinem e colaborem em atividades pr meio ambiente. Aplicar a Tecnologia da Informao para contribuir com a preservao ambiental possibilita mostrar que a TI pode oferecer solues a favor da natureza, ao mesmo tempo em que facilita a comunicao entre pessoas engajadas na mesma causa ao redor do mundo. Com base nestas informaes e aproveitando as tendncias da Web 2.0, foi possvel criar uma rede social com um fim especfico, ou seja, a preservao ambiental. Assim, alm de trazer informaes, dicas e sugestes sobre o meio ambiente, ela oferece recursos que despertem o interesse da comunidade cientfica que defende a preservao do planeta.

1.1 ORGANIZAO DO TRABALHO

O presente trabalho est dividido em oito captulos, sendo o primeiro a introduo e a forma como ele est organizado.

16

O captulo dois fala a respeito do tema meio ambiente. Nele so apresentados os problemas que o meio ambiente enfrenta atualmente e as polticas ambientais que regem o pas. O terceiro captulo apresenta as caractersticas das tecnologias emergentes na Web 2.0, tecnologias estas que propiciam o desenvolvimento de uma rede social. O captulo quatro trata especificadamente do framework Ruby on Rails, apresentando suas funcionalidades e forma de utilizao. No captulo cinco apresenta-se um estudo sobre as redes sociais atuais, analisando os fatores que influenciam os usurios s utilizarem, bem como suas principais funcionalidades. O sexto captulo descreve como o prottipo foi desenvolvido, bem como os principais requisitos e atrativos que a rede ir oferecer. Alm disso, tambm so apresentados os resultados de utilizao e a repercusso da rede social proposta. O captulo sete apresenta as consideraes finais do trabalho, alm de propostas para trabalhos futuros. Por fim, no captulo oito so listadas todas as referncias bibliogrficas utilizadas para o desenvolvimento do projeto.

17

2 MEIO AMBIENTE E LEGISLAO AMBIENTAL No final do sculo XVIII, aps o incio da Revoluo Industrial, houve um aumento significativo das atividades do Homem sobre o meio ambiente. Com a necessidade de energia e espao para as fbricas, o ser humano comeou a modificar o planeta para atender as suas necessidades. Daquela poca at os dias atuais, pode-se afirmar que a ao exploratria do homem sobre o meio ambiente s vem aumentando. A partir deste perodo, o ser humano conseguiu perceber que os recursos naturais so finitos, e que devemos tomar atitudes para proteger o nosso hbitat natural. Foram feitas diversas conferncias e criados protocolos para a proteo da natureza. Destaque para a conferncia Rio 92, realizada em 1992 no Rio de Janeiro, que reuniu diversos pases do mundo para discutir assuntos como o tema meio ambiente. Antes de entrar na parte de legislao ambiental, ser destacado no item a seguir um breve conceito de meio ambiente.

2.1 CONCEITO DE MEIO AMBIENTE

Neste ponto, pode-se destacar o esclarecido conceito escrito por Milar (2000):
A palavra ambiente indica o lugar, o stio, o recinto, o espao que envolve os seres vivos ou as coisas. Redundante, portanto, a expresso meio ambiente, uma vez que ambiente j inclui a noo de meio. De qualquer forma, trata-se de expresso consagrada na Lngua Portuguesa, pacificamente utilizada pela doutrina, lei e jurisprudncia de nosso pas, que, amide, falam em meio ambiente, em vez de ambiente apenas (MILAR, 2000, p. 63-4).

Ento, neste sentido, meio ambiente compreende uma grande variedade de elementos, tanto naturais quanto os criados pelo homem, conforme foi afirmado por Silva (1997):
O meio ambiente , assim, a interao do conjunto dos elementos naturais, artificiais e culturais, que propiciem o desenvolvimento equilibrado da vida em todas as suas formas. A integrao busca assumir uma concepo unitria do ambiente, compreensiva dos recursos naturais e culturais (SILVA, 1997, p.02).

Estabelecida assim uma noo bsica de meio ambiente, pode ser afirmado que a preservao ambiental no trata s dos aspectos relativos ao meio ambiente natural, porque

18

abriga tambm o artificial, e, sobretudo, o meio ambiente cultural, que se entende como as diversas formas de expresso de um povo, elo formador e determinante dos sentimentos da nao e cidadania. Depois desta breve apresentao sobre meio ambiente, ser dada continuidade ao presente captulo, falando mais especificadamente sobre legislao e preservao ambiental.

2.2 PRESERVAO AMBIENTAL

Nos ltimos anos, notou-se uma mudana significativa nas pessoas em sua maneira de pensar sobre o meio ambiente. Houve uma maior conscientizao em relao aos problemas ambientais. Isso se deve ao fato de toda a populao mundial ter os mesmos problemas, como o aquecimento global, que ocorre devido ao desmatamento e poluio, o problema na camada de oznio, os resduos contaminando guas e a desertificao do solo. H necessidade de uma nova tica de consumo, de uma nova tica ambientalista. Pois estes problemas recm citados colocam a vida da humanidade em risco. E quem est por trs de tudo isso so as prprias pessoas. Cada vez consumido mais, cada vez gerado mais lixo, cada vez poludo mais e isso precisa mudar. J foram criadas diversas normas e feitas vrias conferncias em prol da proteo ambiental, porm no esto sendo seguidas. Para que seja possvel vencer todos estes problemas ambientais, devemos seguir risca nossa legislao ambiental, que ser discutida no tpico a seguir.

2.3 LEGISLAO AMBIENTAL

O Brasil possui e reconhecido mundialmente por ter uma legislao ambiental bastante avanada. Porm ela no est sendo totalmente aplicada na prtica. Com isso, no temos garantida uma proteo eficaz ao patrimnio natural e tambm um combate eficiente poluio. Segundo Carvalho (2005), a ausncia de apoio incluso do direito humano ao meio ambiente levou a comunidade ambientalista a:

19

Desviar a ateno dessa ampla abordagem para identificar direitos humanos cujo gozo poderia ser considerado pr-requisito proteo ambiental, dando-se nfase aos direitos informao, participao e aos recursos jurdicos para reparao dos danos ambientais (CARVALHO, 2005).

Na opinio de Birnie e Boyle (1992), o reconhecimento do direito ao ambiente poderia:


Resultar na criao de uma hierarquia, na qual se daria humanidade a posio de superioridade e importncia, acima dos demais membros da comunidade natural. Parcela da comunidade ecologista teme que os objetivos e padres formulados fossem centrados exclusivamente no ser humano, como por exemplo, na sobrevivncia da humanidade, na elevao do padro de vida humano e na intensificao do uso dos recursos naturais para atender crescente demanda dos consumidores. Dessa forma, o Estado do ambiente seria determinado pelas necessidades da humanidade, sem considerar as de outras espcies (BIRNIE; BOYLE, 1992).

Tendo em vista que o presente trabalho visa propor uma ferramenta de conscientizao ambiental, fundamental conhecer quais as polticas ambientais que regem o pas. Para garantir a preservao ambiental brasileira, necessrio respeitar as dezessete leis ambientais mais importantes da nossa legislao.

2.3.1 As 17 Leis Ambientais Mais Importantes da Legislao Brasileira

A seguir, as dezessete leis sero mais bem analisadas, de acordo com Milar (2001). Lei da Ao Civil Pblica - nmero 7.347 de 24/07/1985. Lei de interesses difusos, trata da ao civil pblica de

responsabilidades por danos causados ao meio ambiente, ao consumidor e ao patrimnio artstico, turstico ou paisagstico (MILAR, 2001). Lei dos Agrotxicos - nmero 7.802 de 10/07/1989. A lei regulamenta desde a pesquisa e fabricao dos agrotxicos at sua comercializao, aplicao, controle, fiscalizao e tambm o destino da embalagem (MILAR, 2001). Exigncias impostas: o Agrotxicos ao consumidor. o Registro de produtos nos Ministrios da Agricultura e da Sade.

20

o Registro no Instituto Brasileiro do Meio Ambiente e dos Recursos Naturais Renovveis IBAMA o O descumprimento desta lei pode acarretar multas e recluso. Lei da rea de Proteo Ambiental - nmero 6.902 de 27/04/1981. Lei que criou as Estaes Ecolgicas, reas representativas de ecossistemas brasileiros, sendo que 90 % delas devem permanecer intocadas e 10 % podem sofrer alteraes para fins cientficos. Foram criadas tambm as reas de Proteo Ambiental ou APAS, reas que podem conter propriedades privadas e onde o poder pblico limita as atividades econmicas para fins de proteo ambiental (MILAR, 2001). Lei das Atividades Nucleares - nmero 6.453 de 17/10/1977. Dispe sobre a responsabilidade civil por danos nucleares e a responsabilidade criminal por atos relacionados com as atividades nucleares. Determina que se haja um acidente nuclear, a instituio autorizada a operar a instalao tem a responsabilidade civil pelo dano, independente da existncia de culpa. Em caso de acidente nuclear no relacionado a qualquer operador, os danos sero assumidos pela Unio. Esta lei classifica como crime produzir, processar, fornecer, usar, importar ou exportar material sem autorizao legal, extrair e comercializar ilegalmente minrio nuclear, transmitir informaes sigilosas neste setor, ou deixar de seguir normas de segurana relativas instalao nuclear (MILAR, 2001). Lei de Crimes Ambientais - nmero 9.605 de 12/02/1998. Reordena a legislao ambiental brasileira no que se refere s infraes e punies. A pessoa jurdica, autora ou co-autora da infrao ambiental, pode ser penalizada, chegando liquidao da empresa, se ela tiver sido criada ou usada para facilitar ou ocultar um crime ambiental. A punio pode ser extinta caso se comprove a recuperao do dano ambiental. As multas variam de R$ 50,00 a R$ 50 milhes de reais (MILAR, 2001).

21

Lei da Engenharia Gentica nmero 8.974 de 05/01/1995. Esta lei estabelece normas para aplicao da engenharia gentica, desde o cultivo, manipulao e transporte de organismos modificados (OGM), at sua comercializao, consumo e liberao no meio ambiente. A autorizao e fiscalizao do funcionamento das atividades na rea e da entrada de qualquer produto geneticamente modificado no pas, de responsabilidade dos Ministrios do Meio Ambiente, da Sade e da Agricultura. Toda entidade que usar tcnicas de engenharia gentica obrigada a criar sua Comisso Interna de Biossegurana, que dever, entre outros, informar trabalhadores e a comunidade sobre questes relacionadas sade e segurana nesta atividade (MILAR, 2001). Lei da Explorao Mineral numero 7.805 de 18/07/1989. Esta lei regulamenta as atividades garimpeiras. Para estas atividades obrigatria a licena ambiental prvia, que deve ser concedida pelo rgo ambiental competente. Os trabalhos de pesquisa ou lavra, que causarem danos ao meio ambiente so passveis de suspenso, sendo o titular da autorizao de explorao dos minrios responsvel pelos danos ambientais. A atividade garimpeira executada sem permisso ou licenciamento crime (MILAR, 2001). Lei da Fauna Silvestre nmero 5.197 de 03/01/1967. A lei classifica como crime o uso, perseguio, apanha de animais silvestres, caa profissional, comrcio de espcies da fauna silvestre e produtos derivados de sua caa, alm de proibir a introduo de espcie extica (importada) e a caa amadorstica sem autorizao do IBAMA. Criminaliza tambm a exportao de peles e couros de anfbios e rpteis em bruto (MILAR, 2001).

22

Lei das Florestas nmero 4.771 de 15/09/1965. Determina a proteo de florestas nativas e define como reas de preservao permanente (onde a conservao da vegetao obrigatria) uma faixa de 30 a 500 metros nas margens dos rios, de lagos e de reservatrios, alm de topos de morro, encostas com declividade superior a 45 graus e locais acima de 1.800 metros de altitude. Tambm exige que propriedades rurais da regio Sul e Sudeste do pas preservem 20 % da cobertura arbrea, devendo tal reserva ser averbada em cartrio de registro de imveis (MILAR, 2001). Lei do Gerenciamento Costeiro nmero 7.661 de 16/05/1988. Define as diretrizes para criar o Plano Nacional de Gerenciamento Costeiro, ou seja, define o que zona costeira como espao geogrfico da interao do ar, do mar e da terra, incluindo os recursos naturais e abrangendo uma faixa martima e outra terrestre. Permite aos estados e municpios costeiros institurem seus prprios planos de gerenciamento costeiro, desde que prevaleam as normas mais restritivas. Este gerenciamento costeiro deve obedecer s normas do Conselho Nacional do Meio Ambiente (CONAMA) (MILAR, 2001). Lei da criao do IBAMA nmero 7.735 de 22/02/1989. Criou o IBAMA, incorporando a Secretaria Especial do Meio Ambiente e as agncias federais na rea de pesca, desenvolvimento florestal e borracha. Ao IBAMA compete executar a poltica nacional do meio ambiente, atuando para conservar, fiscalizar, controlar e fomentar o uso racional dos recursos naturais (MILAR, 2001). Lei do Parcelamento do Solo Urbano nmero 6.766 de 19/12/1979. Estabelece as regras para loteamentos urbanos, proibidos em reas de preservao ecolgicas, naquelas onde a poluio representa perigo sade e em terrenos alagadios (MILAR, 2001).

23

Lei Patrimnio Cultural - decreto-lei nmero 25 de 30/11/1937. Lei que organiza a Proteo do Patrimnio Histrico e Artstico Nacional, incluindo como patrimnio nacional os bens de valor etnogrfico, arqueolgico, os monumentos naturais, alm dos stios e paisagens de valor notvel pela natureza ou a partir de uma interveno humana. A partir do tombamento de um destes bens, ficam proibidas sua demolio, destruio ou mutilao sem prvia autorizao do Servio de Patrimnio Histrico e Artstico Nacional, SPHAN (MILAR, 2001). Lei da Poltica Agrcola - nmero 8.171 de 17/01/1991. Coloca a proteo do meio ambiente entre seus objetivos e como um de seus instrumentos. Define que o poder pblico deve disciplinar e fiscalizar o uso racional do solo, da gua, da fauna e da flora; realizar zoneamentos agro ecolgicos para ordenar a ocupao de diversas atividades produtivas, desenvolver programas de educao ambiental, fomentar a produo de mudas de espcies nativas, entre outros (MILAR, 2001). Lei da Poltica Nacional do Meio Ambiente nmero 6.938 de 17/01/1981. a lei ambiental mais importante e define que o poluidor obrigado a indenizar danos ambientais que causar, independentemente da culpa. O Ministrio Pblico pode propor aes de responsabilidade civil por danos ao meio ambiente, impondo ao poluidor a obrigao de recuperar e/ou indenizar prejuzos causados. Esta lei criou a obrigatoriedade dos estudos e respectivos relatrios de Impacto Ambiental (EIA-RIMA) (MILAR, 2001). Lei de Recursos Hdricos nmero 9.433 de 08/01/1997. Institui a Poltica Nacional de Recursos Hdricos e cria o Sistema Nacional de Recursos Hdricos. Define a gua como recurso natural limitado, dotado de valor econmico, que pode ter usos mltiplos (consumo humano, produo de energia, transporte, lanamento de esgotos).

24

A lei prev tambm a criao do Sistema Nacional de Informao sobre Recursos Hdricos para a coleta, tratamento, armazenamento e recuperao de informaes sobre recursos hdricos e fatores intervenientes em sua gesto (MILAR, 2001). Lei do Zoneamento Industrial nas reas Crticas de Poluio nmero 6.803 de 02/07/1980. Atribui aos estados e municpios o poder de estabelecer limites e padres ambientais para a instalao e licenciamento das indstrias, exigindo o Estudo de Impacto Ambiental (MILAR, 2001). Com base nas leis recm apresentadas, possvel verificar que a legislao brasileira de grande alcance. E sabe-se tambm que estas leis so para assegurar um meio ambiente equilibrado para todos, conforme pode ser visto no Artigo 255 da Constituio da Repblica Federativa do Brasil:
Todos tm direito ao meio ambiente ecologicamente equilibrado, bem de uso comum do povo e essencial sadia qualidade de vida, impondo-se ao Poder Pblico e coletividade o dever de defend-lo e preserv-lo para as presentes e futuras geraes (CONSTITUIO FEDERAL, art. 255).

Se todas as pessoas e empresas cumprissem estas leis de maneira adequada, teramos um enorme avano no que se refere preservao do nosso patrimnio natural. Mas ainda falta muito para que esta meta seja atingida, por isso deve-se comear logo essa jornada buscando conscientizar um grande nmero de pessoas em relao a este assunto.

2.4 CONSIDERAES FINAIS

Conforme apresentado no presente captulo, possvel perceber que a legislao ambiental vigente no pas obriga as empresas e as pessoas a se preocuparem com o meio ambiente. Alm disso, atualmente, a preservao do meio ambiente um tpico recorrente na discusso de leis. Tendo em vista esse fator, utilizar a TI para fornecer s empresas um mecanismo que permita apresentar o que elas podem fazer em prol do meio ambiente se torna de grande

25

relevncia. No prximo captulo sero abordadas algumas tecnologias na Web 2.0, que mais adiante sero analisadas para a criao de uma rede social de conscientizao ambiental.

26

3 TECNOLOGIAS NA WEB 2.0 Aps uma breve anlise da legislao ambiental, ser dada nfase s tecnologias emergentes na era da Web 2.0. Tecnologias estas que so de grande importncia no desenvolvimento de sites interativos e redes sociais. Mas antes de falar sobre estas tecnologias, ser apresentado um breve conceito sobre a Web 2.0:
Web 2.0 a mudana para uma internet como plataforma, e um entendimento das regras para obter sucesso nesta nova plataforma. Entre outras, a regra mais importante desenvolver aplicativos que aproveitem os efeitos de rede para se tornarem melhores quanto mais so usados pelas pessoas, aproveitando a inteligncia coletiva (O'Reilly, 2004).

Com base nesse conceito de Web 2.0, pode-se enxergar a internet como uma plataforma. Nesta plataforma existem inmeras aplicaes e servios rodando, estes que, por sua vez, precisam de informao para atingir seus objetivos. Por exemplo, o Google possui um sistema de buscas muito eficaz, porm para funcionar corretamente ele precisa de seu banco de dados, ou seja, precisa de informao. Nesse sentido, OReilly (2004) diz que o valor de um programa proporcional ao tamanho e dinamismo do contedo que ele ajuda a administrar (OREILLY, 2004). Outro exemplo que pode ser citado o Google Maps. Ele possui um sistema de visualizao de fotos de satlite, porm o Google no o dono destas fotos, quem oferece as fotos a Digital Globe, ou seja, a dona dos dados. Com este exemplo conclui-se que os dados so de suma importncia na Web 2.0, ou seja, o contedo tudo. Aps esta breve definio, sero abordadas algumas das principais tecnologias, conceitos e recursos na era da Web 2.0. Com base na anlise destas, possvel elencar os principais requisitos para desenvolver para esta nova plataforma.

3.1 AJAX

O Ajax (Asynchronous JavaScript+XML) um nome relativamente novo, cunhado por Jesse James Garrett da Adaptive Path. A maioria das pessoas acha que o Ajax foi inventado pela Google. Mas na verdade, esse comentrio surgiu devido ao fato da Google ter sido uma

27

das pioneiras a utilizar esta tecnologia em suas aplicaes. Vrias outras empresas tambm j utilizavam Ajax, como por exemplo, a Amazon.com, a maior livraria virtual do mundo. Em um site com Ajax, fica mais agradvel de navegar e realizar operaes. Isso devido ao fato de no haver a necessidade do usurio ficar esperando que a pgina seja recarregada a cada modificao. Sem contar que h muito mais interao do que em sites sem este sistema. Como um de seus princpios bsicos trabalhar de forma assncrona, ele deve proporcionar ao usurio uma maneira de realizar suas operaes ao mesmo tempo, carregando somente uma vez a pgina pretendida. A Figura 1 ilustra a seqncia de eventos realizados em segundo plano para buscar os dados sem alterar a pgina que est sendo exibida ao usurio.

Fonte: (Ajax em Ao, 2007).


FIGURA 1: Seqncia de Eventos para Atender a Solicitao do Usurio.

3.1.1 Web Standards e CSS

A folha de estilo em cascata (CSS Cascading Style Sheet) uma forma de padronizar a formatao de um documento, conforme a definio de Silva (2008), folha de estilo em cascata um mecanismo simples para adicionar estilos (p.ex., fontes, cores, espaamentos) aos documentos Web (SILVA, 2008). Web Standards so Padres Web, que tem a finalidade de criar um padro de programao, tornando-se acessvel a todos os usurios. A seguir a definio apresentada por Silva (2008):

28

Web Standards o termo em ingls para designar um conjunto de normas e diretrizes a serem empregadas nos vrios setores envolvidos direta ou indiretamente com a Web. Tais normas so reguladas pelo W3C, um consrcio mundial formado por companhias, fabricantes, desenvolvedores e comunidades relacionadas que buscam a universalidade da Web (SILVA, 2008, p. 28).

Ento, Web Standards serve para criar sites padronizados de acordo com as normas e definies da W3C. J o CSS se encarrega de separar programao, contedo e estilos visuais.

3.1.2 DOM (Document Object Model)

Segundo James (2007), o Document Object Model (DOM) expe um documento (uma pgina Web) ao mecanismo JavaScript. Utilizando o DOM, a estrutura dos documentos, como vista na Figura 2, pode ser manipulada programaticamente. Essa uma capacidade particularmente til a se ter a disposio ao escrever um aplicativo Ajax (JAMES, 2007).

Fonte: (Ajax em Ao, 2007).


FIGURA 2: Estrutura dos Documentos.

29

Em outras palavras, DOM padroniza o HTML para que seja possvel que a programao encontre o que precisa em uma pgina.

3.1.3 XML (Extensible Markup Language)

Segundo Heitlingler (2001), XML o formato universal para partilha de dados entre aplicaes. O conceito XML simples e as possibilidades so inmeras (HEITLINGER, 2001). Documentos em formato XML podem conter: Bases de Dados, Transaes Comerciais, Catlogos de Produtos, Grficos Vetoriais, Equaes Matemticas, Frmulas Qumicas, Relatrios Financeiros, Dados Bibliogrficos, Anncios Publicitrios, enfim, quase todos os dados estruturados, em documento de texto. De forma sucinta, XML um padro que foi criado para facilitar a troca de informao entre um banco de dados e qualquer outra interface.

3.1.4 XMLHttpRequest

Como Babin (2007) explica em seu livro, o Ajax realmente apenas um conceito. Ele utilizado para descrever a interao do objeto XMLHttpRequest no lado Cliente com os scripts baseados no servidor (BABIN, 2007). Ento, XMLHttpRequest explica o motivo do Ajax ser definido como assncrono. Pois este componente permite que sejam enviados dados e obtidas respostas do servidor sem a necessidade de recarregar toda a pgina. Concluindo, os dados podem ir e vir sem a necessidade de sincronia com os cdigos da pgina.

3.1.5 JavaScript

De acordo com Crockford (2008), JavaScript uma importante linguagem, pois a linguagem dos navegadores. Sua associao com o navegador proporciona que seja uma das linguagens de programao mais utilizadas do mundo (CROCKFORD, 2008).

30

uma linguagem de criao de scripts Web do lado do cliente que amplia as capacidades de interface com o usurio dos navegadores. Trabalhando com as outras tecnologias utilizadas pelo Ajax, o JavaScript pode desempenhar vrias funes do lado do cliente, diminuindo o tempo de espera dos usurios para realizar suas operaes. Desta forma, o site se torna mais agradvel de navegar, fazendo com que o usurio retorne a procura de novas informaes. Depois desta breve explicao sobre Ajax, ser apresentada uma tecnologia que permite o desenvolvimento de aplicaes Web, contando com uma grande gama de recursos e possibilidades de integrao com outras tecnologias, como o prprio Ajax, por exemplo.

3.2 PHP

A linguagem PHP foi criada por Rasmus Lerdof por volta de 1994. Seu objetivo inicial foi substituir um conjunto de scripts Perl que ele usava no desenvolvimento de sua pgina pessoal. J em 1997, surgiu uma reviso, trazendo com ela um interpretador de comandos SQL. Aps o lanamento desta nova reviso, foi formada uma equipe com Rasmus para lanar o PHP3, a partir da houve vrias revises que tornaram a linguagem cada vez melhor. Segundo Converse e Park (2003), o PHP uma linguagem de criao de scripts da Web do lado do servidor embutidos no HTML, cujo cdigo-fonte aberto e compatvel com os mais importantes servidores da Web (CONVERSE E PARK, 2003). PHP uma linguagem de programao de computadores interpretada, mas, livre e muito utilizada para criar contedos dinmicos na Web. Alm de ser gratuita, rpida e robusta, tem a vantagem de poder ser escrita apenas uma vez e rodar em qualquer lugar, pois independente de plataforma. Na seqncia, ser abordada outra linguagem que permite desenvolvimento Web e tambm independente de plataforma, fala-se do Java.

31

3.3 JAVA

Java foi desenvolvida na Sun Microsystems por volta de 1990, pouco antes da exploso da internet. Segundo Schtzer e Massago (1999), essa linguagem possui estrutura muito semelhante da linguagem C, da qual descende imediatamente. Java tem em comum com a linguagem C++ o fato de ser orientada a objetos e mantm com esta um alto grau de semelhana (SCHTZER; MASSAGO, 1999). Segundo Flanagan (2000), os criadores do Java tentaram tornar esta linguagem poderosa, mas, ao mesmo tempo, mantendo ela como uma linguagem simples, facilitando os programadores para poderem escrever cdigos robustos e sem bugs (FLANAGAN, 2000). Ele tambm afirma que a linguagem Java foi projetada com os seguintes objetivos: Orientao a objeto Baseado no modelo de Samlltalk e Simula67; Portabilidade Independncia de plataforma write once run anywere; Recursos de Rede Possui extensa biblioteca de rotinas que facilitam a cooperao com protocolos TCP/IP, como HTTP e FTP; Segurana Pode executar programas via rede com restries de execuo; Bytecode interpretado, ao invs de compilado. Alm destes, ele destaca outras vantagens apresentadas pela linguagem: Facilidade de Internacionalizao Suporta nativamente caracteres Unicode; Simplicidade na especificao, tanto da linguagem como do ambiente de execuo (JVM); distribuda com um vasto conjunto de bibliotecas (ou APIs); Possui facilidades para criao de programas distribudos e multitarefa (mltiplas linhas de execuo num mesmo programa); Desalocao de memria automtica por processo de coletor de lixo; Carga Dinmica de Cdigo Programas em Java so formados por uma coleo de classes armazenadas independentemente e que podem ser carregadas no momento de utilizao.

32

3.3.1 Java para a Web

De acordo com Kurniawan (2002), uma das principais arquiteturas adotadas para desenvolvimento de aplicativos Web em Java, usa servlets JSP na camada central para servir os clientes e processar a lgica comercial, vide Figura 3 (KURNIAWAN, 2002).

Fonte: (JSP, a tecnologia Java na Internet, 2002).


FIGURA 3: Arquitetura de Arquivos Servlets e JSP.

3.3.1.1 Servlets

Conforme Jnior (2002), os servlets surgiram na internet como alternativa mais eficiente que os scripts CGI (Common Gateway Interface) que, por sua vez, foram os pioneiros como mecanismos de gerao de contedo dinmico na rede (JNIOR, 2002, p. 124). Kurniawan (2002) afirma que um servlet como uma classe Java que pode ser automaticamente carregada e executada em um servidor Web especial, este que chamado de continer servlet (KURNIAWAN, 2002). Um servlet carregado pelo servidor Web na primeira vez que solicitado e interage com os clientes por meio de solicitao-resposta baseado em HTTP. Ele recebe uma solicitao do usurio, ento a processa e retorna a resposta ao servidor Web cliente que, por sua vez, envia a resposta de volta ao usurio. Depois disso, o servlet fica na memria aguardando novas solicitaes do usurio. Ento, dentre suas vantagens, com um servlet no h necessidade de serem criados novos processos para que os mesmos funcionem a cada nova solicitao. Isso proporciona uma demanda de recursos de memria e processamento muito menor para realizao de tarefas.

33

3.3.1.2 Java Server Pages

Kurniawan (2002) define Java Server Pages (JSP) como:


uma tecnologia Java para desenvolver aplicativos Web. Ela foi lanada quando a tecnologia servlet tinha atingido popularidade como uma das melhores tecnologias disponveis. Porm, a JSP no foi criada com inteno de substituir a servlet. Na verdade, a JSP uma extenso da tecnologia servlet, foi montada na base de servlet e precisa dela para trabalhar (KURNIAWAN, 2002, p. 217).

De acordo com Jnior (2002), como uma classe Java a responsvel por exibir o contedo da pgina JSP, o resultado que as pginas JSP tambm desfrutam todos os benefcios da linguagem e da plataforma Java (JUNIOR, 2002). Kurniawan (2002) tambm afirma que a JSP utiliza as mesmas tcnicas encontradas em programao servlet, ou seja, em JSP tambm so feitas solicitaes e respostas HTTP, parmetros de solicitao, atributos de solicitao, entre outros (KURNIAWAN, 2002). Com pginas JSP, a linguagem Java funciona como uma linguagem de scripting, mas isso depende da sofisticada infra-estrutura de containers Web, capazes de recompilar JSPs automaticamente e substituir o cdigo antigo pelo novo atravs dos classloaders da JVM (DOEDERLEIN, 2005).

3.4 PYTHON

O Python foi criado no incio dos anos 1990 por Guido van Rossum, na Holanda. Guido o principal autor do Python, embora a linguagem inclua muitas contribuies de terceiros. A princpio, foi criada como uma linguagem de script para o sistema operacional distribudo Amoeba. Aps isso, o Python se desligou de seu projeto original e hoje utilizado em vrias reas. No Quadro 1, so exibidas algumas caractersticas da linguagem Python.

34

Quadro 1: Caractersticas da Linguagem Python.

Interpretador interativo

Possibilidade de testar e modificar o cdigo de um programa antes de iniciar a compilao ou inclu-las nos programas. Fortemente Tipada. GPL (General Public License) Sim Clara Fcil integrao com outras linguagens. No necessita compilao de cdigo, podem ser executados trechos, testando aos poucos. Feito em c. 100% O.O., mas tem suporte a outros paradigmas: estrutural, funcional.

Tipagem Licena Multiplataforma Sintaxe Integrao com outras linguagens Linguagem interpretada Interpretador Orientada a objetos
Fonte: (CHAGAS, 2007)

Dentre as principais tecnologias voltadas para a Web 2.0, podemos citar outra ferramenta que alm de possuir as caractersticas de software livre, ser orientada a objetos e ser dinmica, atrai uma grande gama de usurios.

3.5 RUBY ON RAILS

Ruby on Rails uma plataforma aberta de desenvolvimento Web, criada em 2003 por David Heinemeier Hansson. um framework otimizado para a produtividade sustentvel. Ele permite que voc escreva cdigo de forma elegante, favorecendo a conveno ao invs da configurao, ou seja, utilizando seus padres (convenes) no h necessidade de estar realizando configuraes desnecessrias. No site oficial do Ruby on Rails, OReilly enfatiza a agilidade de desenvolvimento do Ruby on Rails.
Ruby on Rails incrvel por estar diminuindo as barreiras para entrar no mundo da programao. Aplicaes Web poderosas que geralmente demoram semanas ou meses para serem desenvolvidas agora necessitam somente de uma questo de dias (OREILLY, 2009).

35

Como afirmou OREILLY, Ruby on Rails possui um grande diferencial. Ele poupa um tempo precioso do programador, fazendo com que aplicaes sejam desenvolvidas em um prazo muito menor de tempo. Tempo esse que considerado o gargalo dos projetos de software. Como o intuito deste projeto desenvolver o prottipo de uma rede social com o uso do Ruby on Rails, essa tecnologia ser explanada de forma mais detalhada no prximo captulo.

3.6 ADOBE FLEX

Segundo Eduardo (2009), o Flex um framework multi-plataforma para desenvolvimento de aplicaes ricas para a Internet, levando um modelo de programao padro e conhecido por profissionais e desenvolvedores. O Flex possui funcionalidades para entrega eficiente de aplicaes ricas e de alto desempenho (EDUARDO, 2009). Ainda no mesmo artigo, Eduardo (2009) explica o que so aplicaes ricas para a Internet, do ingls RIA (Rich Internet Application):
um conceito inovador no modo de pensar e desenvolver na web. Uma aplicao RIA tem como foco principal os usurios, ou seja, levar at eles uma nova experincia em usabilidade e interatividade, unindo as funcionalidades dos softwares desktop com servios e aplicaes Web, proporcionando assim um novo nvel de experincia (EDUARDO, 2009).

Atravs destes conceitos, pode-se entender que o Flex uma ferramenta com caractersticas de portabilidade, agilidade e seguidora de padres. E por utilizar os padres RIA, suas aplicaes tendem a ser mais atrativas, bonitas e seguras, fazendo com que tenha uma maior aceitao dos usurios.

3.7 CARACTERSTICAS DAS TECNOLOGIAS APRESENTADAS

Aps o estudo destas tecnologias da Web 2.0 possvel elencar algumas caractersticas que cada uma delas possui. Estas so apresentadas no Quadro 2.

36

Quadro 2: Principais Caractersticas das Tecnologias Apresentadas.

Tecnologia AJAX

Principais Caractersticas Padres xHTML e CSS; Visual dinmico; Troca de informaes com XML; JavaScript para realizar as operaes Velocidade; Portabilidade; Estruturado; Orientado a Objeto; Tipagem Dinmica Segurana; Orientado a Objeto; Portabilidade; Tipagem Esttica Fcil de Aprender; Orientado a Objeto; Portabilidade; Tipagem Dinmica Gerador de cdigos; Orientado a Objeto; Portabilidade; Tipagem Dinmica

PHP

JAVA

PYTHON

RUBY ON RAILS

Aplicaes Ricas e de alta performance; Aplicaes altamente interativas; Utiliza as funcionalidades do Adobe Flash Player; Usa ActionScript para a parte lgica da aplicao Fonte: (elaborado pelo autor). ADOBE FLEX Como pode ser visto, de grande importncia que as linguagens utilizadas na era da Web 2.0 tenham caractersticas como portabilidade, orientao a objeto, segurana e velocidade. Tambm importante possuir tipagem dinmica, oferecendo a possibilidade de mudar o tipo da varivel durante a execuo do programa. Com a apresentao das principais tecnologias recorrentes no ambiente Web, possvel perceber que esse ambiente um poderoso recurso para desenvolver solues que beneficiem empresas e atraiam usurios. No captulo seguinte ser abordado o framework Ruby on Rails, este que ser utilizado no desenvolvimento do prottipo proposto.

37

4 O FRAMEWORK RUBY ON RAILS Nesse captulo ser apresentada a linguagem Ruby, um pouco de sua histria, e estilo de desenvolvimento. Sero apresentadas informaes introdutrias sobre o modo como foi idealizado, seu modelo de orientao a objetos, atributos, classes e demais conceitos da linguagem. Na segunda parte, com base em uma definio prvia do conceito de framework, ser abordado o framework Rails. Sero apresentados os principais mdulos que compem o framework, assim como sua forma de utilizao, acesso a banco de dados, controladores, uso de sesso e cookies e o modelo de viso. Alguns dos fatores que motivaram a escolha do Rails foram por ser uma ferramenta gil tanto para desenvolvimento como para manuteno. Alm de dar nfase na simplicidade e elegncia do cdigo, possuir cdigo aberto, gratuito e sem restries e por ser orientada a objetos. Tambm possibilita maior reaproveitamento de cdigos e est em ascenso.

4.1 O QUE RUBY?

Baseado em seu site oficial, Ruby uma linguagem criada por Yukihiro matz Matsumoto que se tornou pblica em 1995, angariando programadores devotos pelo mundo todo. Para formar esta nova linguagem, Matsumoto uniu partes de suas linguagens favoritas, criando um equilbrio entre a programao funcional (no mutvel) e a programao imperativa (mutvel). Sua popularidade entre os programadores do mundo todo se deve ao fato de ter uma filosofia focada nas pessoas. Sobre isso, Matz afirma em entrevista a Venners (2003) que:
Muitas pessoas, especialmente engenheiros de computao, focam nas mquinas. Eles pensam, fazendo isso, a mquina ser mais rpida, que fazendo isso, a mquina ser mais eficiente e fazendo isso, a mquina ir fazer determinada coisa melhor. Eles esto focando nas mquinas. Mas de fato ns precisamos focar nos humanos, em como os humanos lidam com programao ou operao das aplicaes das mquinas. Ns somos os mestres. Elas so as escravas, disse Matz (VENNERS, 2003).

38

Segundo Matsumoto (2008), o Ruby simples na aparncia, mas muito complexo no interior, tal como o corpo humano. uma linguagem orientada a objetos rpida e fcil. Entre suas vantagens, pode-se destacar a portabilidade e simplicidade, sem contar que totalmente livre, podendo ser copiada, modificada e at distribuda (MATSUMOTO, 2008).

4.2 CARACTERSTICAS DO RUBY

A seguir, de acordo com Matsumoto (2008), so citadas algumas das principais caractersticas do Ruby: um software livre; A sintaxe enxuta, quase no havendo necessidade de colchetes e outros caracteres que dificultam a leitura; Foram criados atalhos de cdigo, como os attr, attr_reader e attr_writer (Funcionam como getters/setters); Orientao a objetos pura (tudo so objetos, at mesmo os tipos mais bsicos de variveis); Para instalar uma biblioteca nova, bastando apenas digitar gem install biblioteca na linha de comando do seu sistema operacional (MATSUMOTO, 2008). Com base nestas caractersticas pode-se entender porque o Ruby considerado uma linguagem gil, pois ela faz com que sobre mais tempo para o programador pensar na lgica da programao ao invs das formalidades da linguagem.

4.3 ENTENDENDO O RUBY

Como definida por seu criador, Ruby uma linguagem totalmente orientada a objeto. Isso significa que qualquer varivel um objeto, mesmo classes e tipos que em muitas outras linguagens so designadas como primitivos, ou seja, so estruturas estticas que servem como base para construo de outros tipos de dados (CUNHA NETO, 2007).

39

4.3.1 Totalmente Orientado a Objetos

Como visto no item anterior, tudo em Ruby um objeto, ou seja, at uma simples String uma classe e possui mtodos. No Quadro 3 pode-se entender melhor como funciona:
Quadro 3: Aplicando o Mtodo upcase() em uma String.

Fonte: (elaborado pelo autor) Neste exemplo, o mtodo upcase() ir tornar a primeira letra da String teste maiscula. Como pode ser visto, no houve a necessidade de chamar algum mtodo ou passar a String como parmetro, isso devido ao fato da String j ser um objeto de uma classe.

4.3.2 Atalhos de cdigo

Dentre as principais caractersticas do Ruby destacadas no item 4.2, se encontram os atalhos de cdigo, estes que funcionam como os mtodos getters e setters. Um exemplo observado no cdigo do Quadro 4.
Quadro 4: Classe em Ruby sem uso de Atalhos.

Fonte: (elaborado pelo autor)

40

Na classe Pessoa apresentada no Quadro 4 pode-se observar duas funes para buscar nome e sobrenome utilizando getters, e outras duas utilizando setters para atribuir valores a elas. J utilizando atalhos, o cdigo fica mais enxuto, conforme Quadro 5:
Quadro 5: Classe em Ruby com uso dos Atalhos.

Fonte: (elaborado pelo autor)

No Quadro 5 a classe Pessoa criada com a utilizao de atalhos e possui somente uma linha. Isso se deve ao fato de o Ruby saber que o programador quer criar getters e setters para nome e sobrenome. Estes atributos deixam de forma clara o seu conceito de facilidade.

4.3.3 Escopo das Variveis

Em Ruby, somente pelo nome da varivel pode-se saber qual o seu escopo. Ento, quando dado um nome a uma varivel j est sendo afirmado qual seu escopo. De acordo com Cunha Neto (2007) utilizam-se as seguintes opes de variveis: Variveis locais so declaradas dentro um mtodo ou um for, por exemplo, e somente existiro dentro daquele argumento (CUNHA NETO, 2007);

Variveis globais como o prprio nome j diz, so variveis que esto disponveis em qualquer parte do programa. Devem ter seus nomes iniciados com $ (CUNHA NETO, 2007);

Variveis de instncia so as variveis que implementam os atributos de uma classe. Por conveno devem ser declaradas comeando com @ (CUNHA NETO, 2007);

41

Variveis de classe uma varivel de classe compartilhada entre todos os objetos da classe em que foi declarada. Devem ser iniciadas com @@ (CUNHA NETO, 2007).

Tambm existem outras particularidades para declarao de variveis em Ruby. Por exemplo, quando uma varivel possuir mais de uma palavra, estas devem ser separadas por underline. Variveis globais e de instncia recebem automaticamente um valor padro nulo, j as locais e de classes devem ser obrigatoriamente inicializadas (CUNHA NETO, 2007).

4.3.4 Tipos de acesso

Segundo Cunha Neto (2007), Ruby trabalha com trs tipos de acesso aos mtodos, so eles: Pblicos Podem ser acessados de qualquer classe e instanciados por qualquer objeto; Privados So acessados somente por objetos da mesma classe; Protegidos Podem ser acessados por qualquer objeto dentro da mesma estrutura hierrquica da classe.

4.3.5 Mdulos

Mdulos em Ruby so bastante parecidos com as classes, se diferenciando pelo fato de no ter instncia, subclasse e ser definido atravs das diretivas modulo ... end. So utilizados para agrupar constantes ou mtodos com relaes entre si e na realizao de mixin, que ser explicado a seguir (CUNHA NETO, 2007).

4.3.6 Mixins

Propositalmente, o Ruby no possui a denominada herana mltipla, que possibilita herdar caractersticas de mais de uma superclasse. Porm, utilizando mixin, pode-se obter o mesmo efeito (CUNHA NETO, 2007).

42

Como foi apresentado no item anterior, um mdulo funciona de maneira similar a uma classe. Dessa forma os mtodos, as variveis e as constantes podem ser acrescentadas a outros mdulos utilizando o include, que importa as suas propriedades na classe. Agora, depois desta breve apresentao sobre Ruby, pode-se ter uma noo sobre como funciona a linguagem base para o framework Rails, que de suma importncia para o sucesso deste projeto.

4.4 INTRODUO AO FRAMEWORK RAILS

Neste item ser apresentado de forma mais detalhada o framework Ruby on Rails, ou simplesmente Rails. Como o prprio termo framework j diz, Rails uma ferramenta de programao gil, ou seja, preza pela agilidade no desenvolvimento do software. Segundo Lloyd (2004) framework pode ser definido como:
Conjunto de blocos de software pr-fabricados que os programadores podem usar, estender, ou customizar para sua aplicao. um mecanismo de reuso orientado a objeto que permite ao desenvolvedor decompor uma aplicao em um conjunto interativo de objetos. Descreve as relaes executadas pelos componentes da estrutura, pelo fluxo do controle entre estes componentes, e pelos contratos entre os componentes e o sistema. Sendo assim, um framework um design reusvel (LLOYD, 2004).

Assim, framework um conjunto de classes com o objetivo de reutilizao de um design. Ele se diferencia de uma simples biblioteca, pois uma biblioteca oferece apenas implementao de funcionalidades, sem definir a reutilizao de uma soluo de design. Segundo Hanson (2006), Rails visa dois conceitos com o objetivo de aumentar a produtividade do desenvolvedor: DRY e Conveno ao invs de Configurao, do ingls Convenction over Configuration (HANSON, 2006). No repetir a si mesmo, ou DRY (Dont Repeat Yourself) o conceito por trs da tcnica de definir nomes, propriedades e cdigos em somente um lugar e reaproveitar essas informaes em outros, muitas vezes sugeridos pelas convenes de separar o cdigo em modelo, viso e controle, ou MVC (Model, View, Controller). Desta forma muito difcil encontrar duplicaes no Rails (THOMAS, HANSON, 2005).

43

O Convention over Configuration, ou seja, Conveno ao invs de Configurao, permite ao desenvolvedor terminar seu projeto em um tempo reduzido, pois se seguir a conveno, geralmente no ser necessria nenhuma configurao (THOMAS, HANSON, 2005).

4.4.1 O Padro MVC

O Rails utiliza a estratgia MVC (Model Modelo, View Viso, Controller Controlador). Desta forma, haver disponvel para o desenvolvedor uma estrutura com os componentes modelos, vises e controladores separados, cada um executando as tarefas que lhe so convenientes. Como Ferraz (2006) afirma em sua obra, a parte correspondente ao Model existe nas classes de dados e implementada pelo ActiveRecord. Um segundo componente do Rails, o ActionPack, implementa o V e o C que so respectivamente View e Controller (FERRAZ, 2006). A seguir, de acordo com Carvalho (2008), so definidos o que so os Modelos, as Vises e os Controladores em um projeto Rails. O componente modelo impe todas as regras de negcio que se aplicam aos dados e objetos da aplicao. Por exemplo, se um campo no banco de dados tiver um limite de 30 caracteres, o modelo impe essa restrio, de modo que somente dados com at este limite sejam persistidos no banco de dados. Esse tratamento faz sentido, pois garante que nenhum dado invlido proveniente de outro lugar da aplicao seja guardado (CARVALHO, 2008). A viso responsvel por gerar uma interface com o usurio, normalmente baseada em dados do modelo. Por exemplo, em uma loja os dados de todos os produtos cadastrados esto em um modelo, mas esses dados so apresentados ao usurio por meio de uma interface gerada pela viso. Para aes de persistncia, a viso simplesmente se encarrega de enviar os dados capturados em sua interface e envi-los para o modelo que, por sua vez, o guarda no banco caso seja vlido (CARVALHO, 2008). O componente controlador, por sua vez, funciona como um gerenciador de requisies, recebendo eventos na maioria das vezes vindas do usurio, coordenando a criao de objetos e indicando as vises apropriadas para a requisio (CARVALHO, 2008).

44

Ainda baseando-se na obra de Carvalho (2008), pode-se concluir que o sistema de MVC do Rails funciona de maneira organizada, em que cada componente espera ser requisitado por outro para entrar em ao (CARVALHO, 2008). Alm da estratgia MVC, Rails formado por outros cinco frameworks, os quais sero brevemente explicados no item a seguir.

4.4.2 Por Dentro do Rails

Para Thomas (2005), Rails agrupa um conjunto de outros cinco frameworks, que so utilizados a maior parte do tempo pelo desenvolvedor. Tambm existe um componente muito importante, o qual faz o gerenciamento de todos os mdulos de alto nvel que compe o framework. Este componente leva o nome de Rails e, pela sua importncia, fez com que todo o framework levasse o seu nome (THOMAS, 2005). Cada um dos frameworks embutidos no Rails realiza uma funo especfica e independente, sendo gerenciados pelo componente Rails. Assim, todos os componentes do framework trabalham harmoniosamente. Portanto, este componente essencial para o funcionamento correto do sistema.

4.4.2.1 Active Record

Em geral este padro, ou pattern, especifica que uma classe Active Record equivale a uma tabela do banco de dados, e cada objeto (instncia) representa um registro. Ele minimiza o montante de configuraes que os desenvolvedores realizam. Se um formulrio Web contm dados relacionados a um objeto de negcios, Active Record pode extra-los para dentro de nosso modelo. O Active Record suporta sofisticadas validaes de modelos de dados, e se o formulrio de dados carecer de validaes, as vises de Rails podem extrair e formatar erros com apenas uma linha de cdigo (THOMAS, HANSON, 2005).

45

4.4.2.2 Action Pack

um framework MVC completo, ou seja, separa de forma clara o layout, as regras de negcio e a base de dados. Tambm faz a integrao dos mesmos de forma consistente e precisa (THOMAS, HANSON, 2005).

4.4.2.3 Action Mailer

um componente Rails simples que permite suas aplicaes enviar e receber e-mails (THOMAS, HANSON, 2005).

4.4.2.4 Action Web Service

uma biblioteca que facilita muito o desenvolvimento de Web Services. Com apenas algumas linhas de cdigo, possvel implementar um Web Service completo (THOMAS, HANSON, 2005).

4.4.2.5 Active Support

um conjunto de bibliotecas que so compartilhados por todos os componentes Rails. Muito do que se encontra l para uso interno dos Rails (THOMAS, HANSON, 2005). Para o Rails funcionar corretamente, necessrio seguir certo padro em relao aos diretrios do projeto, assunto que ser abordado a seguir.

4.4.3 Estrutura de diretrios

Visando organizar as aplicaes desenvolvidas, Rails exige que seja seguido um layout padro para sua estrutura de diretrios. Padro este que apresentado na Figura 4.

46

Fonte: (elaborado pelo autor).


FIGURA 4: Estrutura de Diretrios de uma Aplicao Rails

No Quadro 6, de acordo com Hanson (2006), feita uma breve descrio sobre a funo desempenhada por cada pasta da raiz do projeto padro do Rails:
Quadro 6: Descrio da Funo de Cada Pasta da Raiz do Projeto Rails

Arquivo/Diretrio README Rakefile app/ config/ db/ doc/ lib/ log/ public/

Propsito Este um breve manual de instruo para sua aplicao. Use-o para explicar a outros o que sua aplicao faz, como configur-la, etc. Este arquivo contm tarefas em lote que podem ser executadas do terminal. Contm os controllers, models, e views para sua aplicao. Aqui fica o cdigo principal da aplicao. Configure suas regras de execuo para a aplicao, rotas, banco de dados, etc. Exibe o seu schema de banco de dados atual, bem como as migraes de banco de dados. Documentao completa para sua aplicao. Mdulos de extenso para sua aplicao. Arquivos de log da aplicao. A nica pasta vista pelo mundo como ela . Aqui onde suas imagens, javascript, stylesheets (CSS), e outros arquivos estticos ficam. Scripts fornecidos pelo Rails para fazer tarefas repetitivas, tais como benchmarking, instalao de plugins, e iniciar o console ou o servidor web. Testes unitrios, fixtures, e outros aparatos de teste. Estes so tratados em Testando Aplicaes Rails.

script/

test/

47

tmp/ vendor/

Arquivos temporrios. Um local para cdigo de terceiros. Em uma aplicao Rails tpica, isto inclui Ruby Gems, o cdigo fonte do Rails e plugins contendo funcionalidades adicionais.

Fonte: (HANSON, 2006)

Depois de apresentado o padro de pastas seguido pelo Rails, ser explicado como funciona outro padro, o de nomenclatura.

4.4.4 Padro de Nomenclatura

No Rails, por conveno, nomes de variveis possuem letras minsculas e palavras separadas por sublinhado (ex: preco_do_produto). Nomes de classes e mdulos no possuem sublinhado, ao invs disso cada palavra, incluindo a primeira, inicia-se com uma letra maiscula (ex: GeradorRelatorio). A nomenclatura de tabelas do banco de dados e de arquivos segue de maneira similar s variveis, sendo letras minsculas e palavras separadas por sublinhado (ex: usuario_model.rb). Porm, no caso das tabelas, os nomes precisam estar no plural (ex: grupo_usuarios) (THOMAS; HANSSON, 2005). Utilizando essas convenes, o Rails diminui o processo de configurao fazendo a converso de nomes automaticamente. Pois como j foi citado anteriormente, o Rails parte do princpio de conveno ao invs de configurao.

4.4.5 Scripts do Ruby on Rails

Para facilitar e agilizar o desenvolvimento de aplicaes, o Rails disponibiliza uma srie de scripts para gerao automtica de cdigo. Os principais scripts que fazem parte de qualquer aplicao Rails so elencados e explicados a seguir de acordo com Fortes e Junqueira (2009). console: disponibiliza um console para interao com o ambiente da aplicao Rails, no qual possvel interagir com o modelo do domnio. Neste console, so disponibilizadas todas as partes da aplicao configurada, exatamente igual quando a aplicao est rodando. possvel inspeo dos modelos, mudar

48

seus valores e salvar os resultados no banco de dados (FORTES; JUNQUEIRA, 2009). destroy: permite destruir determinado componente da aplicao, como por exemplo um modelo ou uma view que tenham sido criados de forma incorreta ou que no sejam mais necessrios (FORTES; JUNQUEIRA, 2009). generate: permite que seja feita a gerao automtica de cdigo. Os geradores padro do Rails so: controller, integration_test, mailer, migration, model, observer, plugin, resource, scaffold, scaffold_resource, session_migration, web_service (FORTES; JUNQUEIRA, 2009). server: permite rodar um servidor bsico para a aplicao. Este servidor bastante utilizado em ambiente de desenvolvimento, por permitir rpido acompanhamento da aplicao (FORTES; JUNQUEIRA, 2009). Depois de apresentar alguns dos scripts padro do Rails, ser mostrado no prximo item como desenvolver uma aplicao bsica.

4.5 DESENVOLVENDO APLICAES COM RAILS

Neste item sero apresentados de forma sucinta, os passos necessrios para a criao de uma aplicao utilizando Rails. O percurso bsico ilustrado na Figura 5.

Fonte: (elaborado pelo autor).


FIGURA 5: Criando uma Aplicao Bsica em Rails.

49

Partindo da premissa que se tenha o Rails instalado no computador seguem-se os passos apresentados no roteiro da Figura 5: Criao do banco de dados Nesta etapa, como o prprio nome j diz, criado o banco de dados relacional da aplicao; Criao da estrutura padro Depois de ter instalado o Rails e ter o banco de dados criado, ser criada estrutura da aplicao. Como ilustrado na Figura 6, utilizado o comando rails e o nome da aplicao. A partir deste comando, o Rails entende que deve criar uma nova estrutura (Como visto na Figura 4) para aquele projeto;

Fonte: (elaborado pelo autor).


FIGURA 6: Criando uma Estrutura Padro de um Novo Projeto em Rails.

Configurao do banco de dados Agora com a estrutura padro do projeto criada, deve ser configurado, o arquivo config/database.yml, que contm as informaes sobre o banco de dados. Na Figura 7, por exemplo, o arquivo foi configurado para acessar o banco de dados MySQL;

Fonte: (elaborado pelo autor).


FIGURA 7: Arquivo de Configurao do Banco de Dados.

50

Como visto na Figura 7, existem trs bancos de dados diferentes que o Rails pode rodar: Ambiente de Desenvolvimento: usado no computador do desenvolvedor, para interagir com a aplicao manualmente; Ambiente de Testes: utilizado para rodar testes na aplicao; Ambiente de Produo: a base utilizada quando a aplicao disponibilizada para outras pessoas. Antes do prximo passo, ser realizada a criao do banco de dados de acordo com os parmetros informados no arquivo da Figura 7. O comando a ser executado apresentado na Figura 8, ele utiliza o Rake, que conforme diz Hanson (2006) um executador de comandos genricos que o Rails utiliza para diversas coisas (HANSON, 2006).

Fonte: (elaborado pelo autor).


FIGURA 8: Criando o Banco de Dados do Projeto.

Com o banco de dados criado, pode-se seguir o roteiro. Criao de scaffolding O mtodo mais gil de criar os modelos, vises e controladores em Rails utilizando um script de scaffolding. Levando em considerao que j se esteja na pasta raiz do projeto, este comando realizado conforme a Figura 9.

Fonte: (elaborado pelo autor).


FIGURA 9: Criando Modelos, Vises e Controladores em uma nica Operao.

Depois de executado o comando da Figura 9, alm dos arquivos acima citados, so criadas as operao bsicas de insero, visualizao, edio e excluso, tambm conhecidas por CRUD (Create, Retrieve, Update, Delete). De acordo com Hanson (2006), o Quadro 7 exibe os arquivos que foram criados (ou editados) aps a realizao do script de scaffolding.

51

Quadro 7: Estrutura Criada a Partir do Script de Scaffolding.

Arquivo app/models/carro.rb db/migrate/20091119131424_create_c arros.rb app/views/carros/index.html.erb app/views/carros/show.html.erb app/views/carros/new.html.erb app/views/carros/edit.html.erb app/views/layouts/carros.html.erb O model Carro

Propsito

A migrao para criar a tabela de carros em seu banco de dados. Uma view para visualizar uma listagem de todos os carros Uma view para visualizar um nico carro Uma view para criar um novo carro Uma view para editar um carro existente Uma view para controlar a visualizao geral das outras views de carros Cascading style sheet para fazer com que as views criadas pelo scaffold tenham melhor aparncia O controller para os Carros Estrutura de testes funcionais para o controller de carros Funes auxiliares para usar com as views de carros Editado para incluir informaes de roteamento para os carros Dados de Carros simulados para uso nos testes Estrutura de testes unitrios para o model Carro Estrutura de testes unitrios para o helper de carros

public/stylesheets/scaffold.css app/controllers/carros_controller.rb test/functional/carros_controller_test.r b app/helpers/carros_helper.rb config/routes.rb test/fixtures/carros.yml test/unit/carro_test.rb test/unit/helpers/carros_helper_test.rb


Fonte: (HANSON, 2006)

Um dos arquivos gerados pelo scaffold o arquivo de migrao do banco de dados, este que pode ser visto na segunda linha do Quadro 7. A partir deste arquivo ser criada uma tabela no banco de dados de acordo com os parmetros de conexo informados no comando da Figura 7. Mas para que isso ocorra deve-se executar o comando da Figura 10.

Fonte: (elaborado pelo autor).


FIGURA 10: Comando Rake para Executar a Migrao do Banco de Dados.

52

Com a estrutura criada, pode-se iniciar o servidor WebRick, que instalado junto com o Rails e de grande utilidade para testar as aplicaes desenvolvidas. Para isso necessrio executar o comando ilustrado na Figura 11.

Fonte: (elaborado pelo autor).


FIGURA 11: Iniciando o Servidor WebRick do Rails.

Depois de executado este comando, o servidor fica aguardando requisies HTTP na porta 3000. Ento, para visualizar a pgina criada com o comando da Figura 9, basta digitar o seguinte endereo no browser: http://localhost:3000/carros, o resultado exibido na Figura 12.

Fonte: (elaborado pelo autor).


FIGURA 12: Tela para Listagem de Carros.

Como foi mencionado anteriormente, o gerador scaffold tambm gera as operaes bsicas de insero de registros (Figura 13), exibio de registros (Figura 14), edio de registros (Figura 15) e excluso de registros (Figura 16). Na Figura 13 possvel visualizar a tela de incluso de um novo registro na tabela de carros.

53

Fonte: (elaborado pelo autor).


FIGURA 13: Tela para Incluso de Carros.

J na Figura 14 pode-se visualizar a tela que exibe de forma detalhada o registro escolhido.

Fonte: (elaborado pelo autor).


FIGURA 14: Tela para Exibio de Carros.

Tambm h a possibilidade de editar um registro existente, como apresentado na Figura 15.

54

Fonte: (elaborado pelo autor).


FIGURA 15: Tela para Edio de Carros.

Alm da opo de apagar um determinado registro, como pode ser visto na Figura 16.

Fonte: (elaborado pelo autor).


FIGURA 16: Tela para Destruio de Carros.

55

Depois desta breve utilizao do framework, pode-se constatar que Rails realmente uma ferramenta que facilita a realizao de tarefas comuns em qualquer aplicao, sendo gil e organizada ao mesmo tempo. Utilizando Rails, temos a possibilidade de ter a organizao do Java e a rapidez e praticidade do PHP. Sem contar o fato de que voc escreve menos cdigo para um sistema inteiro do que um arquivo XML de configurao em Java. Com base nos conceitos e exemplos apresentados no presente captulo, conclui-se que Rails uma tecnologia ideal para desenvolver rpido para a Web. Alm disso, seguindo os padres da arquitetura MVC e oferecendo uma soluo produtiva de desenvolvimento aos programadores, o Rails est revolucionando a internet. No prximo captulo sero abordadas as redes sociais, analisando os fatores que levam a popularizao das mesmas, permitindo uma anlise da melhor forma de criar uma rede e torn-la atrativa na era da Web 2.0.

56

5 REDES SOCIAIS NA WEB possvel observar nos ltimos anos, que as redes sociais tem feito um grande sucesso entre os usurios de Internet. Isso se d pelo motivo de haver uma interao entre as pessoas, onde podem se expressar e contribuir com suas opinies sobre o que acham sobre determinado assunto ou situao. Esse foi um diferencial que as redes sociais trouxeram, e que as tornou to populares e acessadas. Antigos e famosos portais e sites de comunicao da internet, antes da era da Web 2.0, eram ricos em informao, porm pobres nos quesitos de interao e aceitao do usurio. Isso fazia com que ele no tivesse um motivo ou interesse para retornar quele site, ou mesmo acompanhar as atualizaes e novas notcias. De acordo com Recuero (2009), a internet:
Proporcionou que as pessoas pudessem disseminar as informaes de forma mais rpida e mais interativa. Tal mudana criou novos canais e, ao mesmo tempo, uma pluralidade de novas informaes circulando nos grupos sociais. Juntamente com essa complexificao, o aparecimento de ferramentas de publicao pessoal, tais como os weblogs, fotologs, e mesmo o YouTube, por exemplo, deu fora e alcance para esses fluxos, ampliando a caracterstica de difuso das redes sociais (RECUERO, 2009, p. 116).

Deste modo, com as redes de relacionamento proporcionando interao e liberdade de expresso na internet, as pessoas podem se conectar no somente a sites ou portais, mas tambm a outras pessoas. Com isso podem transferir ou agregar conhecimento sobre os mais diversos assuntos. Com o advento da Web 2.0, e a crescente interao dos usurios com os sites, uma nova forma de cooperar e interagir surgiu. E assim como surgiu, teve uma disseminao muito rpida, juntando um nmero surpreendente de usurios. As denominadas redes sociais vieram para ficar, e cada vez mais atrai usurios, independente de faixa etria ou qualquer outra classificao. No ambiente Web, vm se tornando unanimidade. Dessa maneira, o presente captulo faz uma abordagem dos fatores que elevaram a popularizao de uma rede social, fazendo uma anlise das mais difundidas.

57

5.1 REDES SOCIAIS ATUAIS

Conforme Bouas (2009), quem utiliza redes sociais so pessoas que tem o hbito de acompanhar o que publicado a seu respeito ou a respeito de alguma idia defendida em seu espao virtual (BOUAS, 2009). Neste ambiente, os usurios encontram espao para criticar e elogiar pessoas, produtos, servios e idias com audincias que muitas vezes ultrapassam milhes de usurios. Um estudo desenvolvido pela In Press Porter Novelli e pela empresa de anlise de mdia E.Life, indica diversas motivaes que fazem com que um usurio adote uma rede social para interagir (BOUAS, 2009). De acordo com este levantamento, mais de 60% dos internautas, acessam o Twitter para ler notcias e divulgar contedo (BOUAS, 2009). J o Orkut, segundo 86% dos entrevistados, utilizado como forma de manter contato com amigos e familiares. O YouTube considerado por quase 90% dos usurios como uma forma de entretenimento e diverso. Redes como blogs so utilizadas por 86,1% das pessoas para a divulgao de contedo, e 42% do total tambm os utilizam como fonte de informao (BOUAS, 2009). Depois de elencadas as principais motivaes dos internautas para acessar uma rede social, ser feita uma breve apresentao sobre algumas das redes de relacionamento mais utilizadas. Com isso, pretende-se analisar os fatores que levaram ao sucesso das mesmas, bem como elencar os pontos positivos e negativos de cada um destes sites.

5.1.1 Orkut

De acordo com seu site oficial, o Orkut uma comunidade on-line criada para tornar a sua vida social e a de seus amigos mais ativa e estimulante. A rede social do Orkut pode ajud-lo a manter contato com seus amigos atuais por meio de fotos e mensagens, e a conhecer mais pessoas (ORKUT, 2009). Com o Orkut fcil conhecer pessoas que tenham os mesmos hobbies e interesses que os seus, que estejam procurando um relacionamento afetivo ou contatos profissionais. O

58

usurio tambm pode criar comunidades on-line ou participar de vrias delas para discutir temas atuais, reencontrar antigos amigos da escola ou at mesmo trocar receitas favoritas. A estratgia utilizada pelo criador do Orkut para alavancar a sua rede foi espetacular. O sistema de distribuio de convites fez com que as pessoas sentissem a necessidade de serem convidadas para fazer parte daquela rede social. Isso se deve ao fato do ser humano ser muito curioso e querer estar sempre frente das demais. Como visto, graas curiosidade e a ganncia de superioridade das pessoas, o Orkut se tornou um fenmeno da internet, conseguindo reunir inmeros usurios espalhados pelo mundo todo. Mas alm de ter a capacidade de conseguir tantos usurios, ele teve um grande diferencial, dando o poder s pessoas de terem sua prpria pgina na internet. Um dos principais motivos que as fez manter seus perfis atualizados foi sua interface amigvel, possibilitando at os menos experientes com computador a utiliz-lo. Dentre seus pontos positivos pode-se citar a utilizao de comunidades para agregao de pessoas com interesses em comum. Desta forma, qualquer tipo de pessoa pode: buscar informaes sobre determinados assuntos; procurar esclarecimentos e orientaes de utilidade pblica; compartilhar experincias tanto relacionadas a doenas como vtimas de crimes dentre outras possibilidades. Mas tambm existe o lado negativo desta rede, onde pessoas mal intencionadas as utilizam para cometer diversos tipos de crimes. Os mais freqentes so casos de pedofilia, racismo e prostituio infantil. Eliminar este tipo de comunidade um esforo constante que a mantenedora do Google faz diariamente.

5.1.2 Facebook

O Facebook apresentado em seu site oficial como uma rede social que rene pessoas a seus amigos e queles com quem trabalham, estudam e convivem. As pessoas participam do Facebook para manter contato com seus amigos, carregar um nmero ilimitado de fotos, compartilhar links e vdeos e aprender mais sobre as pessoas que conhecem (FACEBOOK, 2009).

59

O Facebook constitudo de muitas redes, cada uma baseada em volta de uma empresa, localizao, ou escola. O usurio participa de redes que reflitam as comunidades da sua vida real para saber mais sobre as pessoas que trabalham, vivem, ou estudam perto dele. Assim como o Orkut, o Facebook uma rede que visa manter relacionamentos entre as pessoas com quem cada um convive no dia-a-dia. possvel participar de comunidades especficas de acordo com o interesse do usurio, dando-o oportunidade de expor suas crticas e/ou opinies. Como os objetivos e vises do Facebook e Orkut so muito semelhantes, pode-se afirmar que seus prs e contras so os mesmos. Deixando a cargo de o usurio escolher qual das duas ferramentas se enquadra melhor na sua realidade, podendo tambm escolher as duas. No Brasil o uso do Facebook menos difundido em relao ao Orkut.

5.1.3 Twitter

O Twitter uma rede social que oferece um servio de mensagens curtas, o qual pode ser acessado de diversas redes e tipos de aparelhos. Atualmente a grande novidade nas redes sociais, sendo utilizada por muitos usurios como canal de divulgao de notcias e obteno de informao (TWITTER, 2009). Por sua simplicidade de disseminao de informaes, foi utilizado na campanha de Barack Obama, primeiro poltico a utilizar os recursos da Web 2.0.
No Twitter, Obama chegou a ter mais de 160 mil seguidores, sendo o usurio mais acompanhado atravs do microblogging, sucesso do momento, que tem por base o envio de atualizaes a partir de respostas constantes simples pergunta: o que voc est fazendo? (PAIVA, 2009).

Com sua grande aceitao dos usurios atravs do Twitter, Barack Obama conseguiu conquistar o apoio dos eleitores americanos e a admirao da populao de outros pases. Em novembro de 2008, duas semanas de chuvas causaram enchentes nunca vistas em Santa Catarina. Para obter informaes sobre amigos e familiares que foram vtimas da tragdia, os internautas utilizaram as redes sociais, entre elas o Twitter, possibilitando a comunicao em tempo real entre os usurios. Tambm foram feitas mobilizaes que ajudaram a conseguir inmeras doaes para os desabrigados.

60

Depois destes dois exemplos de utilizao do Twitter, pode-se destacar entre seus pontos positivos a rpida disseminao de informaes sobre determinado assunto, seja em questo de publicidade como de cooperao e solidariedade. Dentre os aspectos negativos, existem usurios mal intencionados que se aproveitam da capacidade de espalhar mensagens rapidamente do Twitter para divulgarem informaes caluniosas. Isso pode gerar uma grande repercusso na mdia em relao credibilidade do servio.

5.1.4 YouTube

Como especificado em seu site oficial, o YouTube foi fundado em fevereiro de 2005, sendo lder na apresentao de vdeos on-line. tambm o principal destino dos internautas para assistir e compartilhar vdeos originais com todo o mundo por meio da web. O YouTube permite que as pessoas enviem e compartilhem facilmente videoclipes na Internet por meio de sites, celulares, blogs e e-mail (YOUTUBE, 2009). Qualquer pessoa pode assistir a um vdeo no YouTube. As pessoas podem ver relatos de eventos atuais em primeira mo, localizar vdeos sobre seus passatempos prediletos e assuntos de interesse, e at descobrir algumas prolas. Cada vez mais pessoas esto capturando momentos em vdeo, e o YouTube est cuidando de transform-las nos criadores da televiso do futuro. O YouTube foi uma das grandes novidades nesta era da Web 2.0. Antigamente havia poucos mtodos fceis para os usurios de computadores que queriam expor seus vdeos na internet. Com uma interface simples, o YouTube proporcionou que qualquer pessoa com acesso a internet tivesse a possibilidade de postar seus vdeos para milhes de pessoas na Web. Mas como todas as outras ferramentas sociais apresentadas, o YouTube tambm possui pontos negativos, como divulgao de vdeos com contedo pornogrfico, de cunho preconceituoso ou racista, cenas de violncia, entre outros.

61

5.1.5 Ning

O Ning uma plataforma online que permite a criao de redes sociais individualizadas. Este servio foi lanado em Outubro de 2005 por Marc Andreesen e Gina Bianchini (NING, 2009). Cada usurio pode criar sua prpria rede social e aderir a redes de usurios que partilhem os mesmos interesses. Ao contrrio das redes generalistas que visam comunicao e interao pessoal, o Ning permite o compartilhamento de interesses especficos. O seu ponto forte dar a oportunidade ao usurio de criar suas prprias experincias sociais para suas reas de interesse. Pode ser considerada uma forma de encontrar outras pessoas que tenham as mesmas paixes. Em suma, o Ning uma espcie de ferramenta para criar redes sociais. A idia foi bastante difundida, mas ainda enfrenta alguns problemas, como receio dos usurios em utiliz-lo e ausncia de algumas funcionalidades existentes em outras redes.

5.1.6 Outras redes sociais

Hoje em dia pode-se destacar inmeras redes sociais oferecidas na Web. E cada vez mais existe espao para novas surgirem, desde que deixem claros seus objetivos e onde contribuiro para a vida dos usurios. Pois este ir usar do seu tempo para se dedicar quela rede, procurando amigos, criando comunidades e confeccionando seu perfil. Dentre as redes sociais existentes, pode-se destacar o que vm chamando a ateno dos internautas: Via6 Focada em organizao de contedo para contatos profissionais; Ikwa Voltada para pessoas em busca de realizao profissional; descolando! Iniciativa brasileira, focada em alunos universitrios que desejam descobrir como cada professor, o que ajuda muito ao montar a grade de horrios do semestre; Essas redes recm citadas podem ser consideradas de grande importncia no desenvolvimento profissional de uma pessoa. O Ikwa ajuda a decidir qual carreira seguir, o

62

descolando! ajuda durante a graduao e o Via6 o ajuda a fazer contatos para se inserir no mercado de trabalho. Existem outras redes voltadas para diversos assuntos, como por exemplo, entretenimento. Algumas discutem sobre msica, livros, filmes, seriados, e todas elas com uma grande quantidade de adeptos. Com isso possvel perceber que, levando em considerao os reais interesses de cada pessoa, possvel fazer com que uma rede social ganhe popularidade no ambiente Web. Depois de apresentadas algumas redes sociais emergentes e os motivos pelo qual os usurios as utilizam com tanta freqncia, no item a seguir sero enumerados alguns dos atrativos das principais redes sociais da internet.

5.2 FATORES PREPONDERANTES NA DISSEMINAO DE REDES SOCIAIS

Como j foi visto neste captulo, existem diversos fatores que influenciam os usurios a utilizarem uma rede social, seja por curiosidade, por interesses, influncia de amigos, busca de informaes, entretenimento, entre outros. Com base nestes fatores, algumas redes sociais tm vantagens em relao a outras, pois isso depende do atrativo que esto oferecendo para os usurios. Por exemplo, uma rede social voltada para diverso muito mais procurada do que uma rede para negcios profissionais. No Quadro 8 so mostradas as principais atraes de algumas das redes sociais disponveis na Web.
Quadro 8: Atraes das Redes Sociais.

Nome da Rede Social Orkut Facebook YouTube MySpace Twitter Ning

Principais Atrativos Comunicao Online Comunicao Online Compartilhamento de Vdeos Comunicao Online Microblogging Criao de redes sociais personalizadas

63

Via6 Ikwa descolando! ebaH! Flickr Drimio Last.fm MeusParentes


Fonte: (elaborado pelo autor)

Contatos profissionais Orientao vocacional e profissional Avaliaes sobre professores universitrios Compartilhamento de arquivos acadmicos Compartilhamento de fotografias Relacionamento de Consumidores com suas Marcas preferidas Rede social voltada para msica Construo de rvores genealgicas

Com o estudo das principais redes sociais possvel perceber que a implementao deste novo mecanismo de marketing e colaborao possvel. Tendo em mente os fatores a serem levados em considerao na hora de criar e difundir uma rede virtual, aliados ao conhecimento da legislao ambiental vigente no pas, o prximo captulo apresenta os detalhes do desenvolvimento do prottipo.

64

6 PROTTIPO DE REDE SOCIAL PARA A CONSCIENTIZAO AMBIENTAL Com base nos temas elencados nos captulos anteriores, o objetivo desta seo descrever a elaborao do prottipo de rede social verde desenvolvido com o framework Ruby on Rails. Para isso, sero descritos os principais requisitos e funcionalidades necessrias para o desenvolvimento desta rede social, bem como os principais atrativos que faro pessoas e empresas se interessarem por ela. Na Engenharia de Software o levantamento dos requisitos de suma importncia. o que afirma Pressman (1995):
Pode-se afirmar que os requisitos de sistema so subdivididos em dois grupos: os requisitos funcionais e os no funcionais. Requisitos no funcionais informam como o sistema deve ser, ou seja, as qualidades do sistema. J os requisitos funcionais descrevem o que o ele ir fazer, expondo as funcionalidades que o sistema deve dispor (PRESSMAN, 1995).

Levando em considerao essa afirmao, a definio de requisitos funcionais e no funcionais apresentada a seguir.

6.1 REQUISITOS FUNCIONAIS

Requisitos funcionais descrevem as funcionalidades do sistema desejadas pelos usurios, ou seja, o que se espera que o software faa (PRESSMAN, 1995). Para a criao de uma rede social devem-se tomar vrios cuidados, que podem ser definidos como requisitos funcionais. Existem inmeros requisitos funcionais que foram aplicados nesse prottipo, os principais so citados abaixo: Possibilitar ao usurio a realizao do cadastro de uma nova conta pessoal de forma rpida e fcil; Enviar por e-mail para o usurio uma confirmao de cadastro com uma mensagem simples e concisa; Permitir que o usurio solicite um lembrete de senha via e-mail caso a esquea;

65

Possibilitar ao usurio a capacidade de personalizar seu perfil e/ou pgina inicial; Assegurar que o usurio encontre pessoas e empresas interessadas no tema preservao ambiental de forma rpida e fcil; Permitir a insero de tpicos, imagens e demais recursos multimdia mostrando as atitudes tomadas pr meio ambiente; Possibilitar que sejam efetuadas buscas por termos ou palavras chave determinadas pelo usurio; Conforme mencionado acima, alm destes requisitos funcionais apresentados, existem vrios outros que foram elencados para o desenvolvimento da rede social proposta. Depois desta explicao, no prximo item sero abordados os requisitos no funcionais.

6.2 REQUISITOS NO FUNCIONAIS

Os requisitos no funcionais tm como objetivo principal dar qualidade ao sistema. Qualidade essa que reflete diretamente na satisfao de todos os usurios. Como em qualquer outro projeto, o principal requisito no funcional necessrio para o desenvolvimento desta rede social a usabilidade. Para Cibys (2003), usabilidade define-se como um conjunto de atributos de software relacionado ao esforo necessrio para seu uso e para o julgamento individual de tal uso por determinado conjunto de usurios (CYBIS, 2003). Requisitos de usabilidade so importantes para definir limites para determinadas aes que o sistema ter, por exemplo, Um novo usurio dever ser capaz de se cadastrar na rede social em no mximo 15 minutos de orientao. Dessa maneira, os requisitos no funcionais que este projeto buscou atender foram: Confiabilidade os usurios devem ter garantia de que seus dados e informaes no sero perdidos devido a falhas de software; Desempenho ao solicitado para realizao de alguma ao, o sistema este deve responder imediatamente;

66

Robustez o sistema ter valores padro para as principais variveis, e se possvel sero utilizadas no lugar de dados invlidos ou inexistentes;

Utilizao dever dar suporte para um nmero elevado de usurios simultneos;

Segurana o sistema controla os usurios por nvel de privilgio. Privacidade dever ter restries quanto visualizao das informaes pessoais dos usurios.

No prximo item sero apresentados os fatores que influenciaro usurios e empresas a utilizarem a rede social proposta.

6.3 FATORES NECESSRIOS PARA O SUCESSO DA REDE

De acordo com o apresentado no Captulo 5, uma rede social deve atender alguns requisitos bsicos para obter sucesso. Em outras palavras, precisa oferecer ao usurio algo que o motive ou chame sua ateno. Ele precisa entender que o tempo que destina diariamente quela rede no em vo. Esta realidade no muito diferente para as empresas, visto que aderem a redes sociais por motivos semelhantes aos usurios comuns. Ao visualizarem algo que lhe trar benefcios, sejam eles financeiros ou de marketing, as empresam procuram dedicar o tempo de algum funcionrio para aquela atividade. Visto que a rede social desenvolvida possui temtica ambiental, ela j atende o principal requisito para atrair um grande nmero de usurios. Isso ocorre porque todas as pessoas e empresas conscientes prezam pela valorizao de seu hbitat natural. Alm disso, conforme apresentado no captulo 2, as leis de preservao ambiental so claras, e a fiscalizao das empresas em relao ao cumprimento destas leis cada vez maior. Isso obriga os gestores a acharem formas de mostrar que a empresa de fato trabalha em prol do meio ambiente. Partindo desta premissa, o prottipo de rede social delimita seu pblico em pessoas que lutam em conjunto pela preservao do meio ambiente, tanto na atualidade como para as futuras geraes. Este o perfil dos usurios cadastrados nesta rede. Pessoas esclarecidas,

67

conscientes e que se preocupam com o futuro do planeta. Tendo pessoas com esse perfil, ser possvel conquistar novos usurios para participarem desta rede social verde, fazendo a disseminao da mesma entre todas as classes da sociedade. Ao chegar neste nvel de adeso perante os usurios, usando para isso iniciativas de marketing como divulgao em blogs e demais sites renomados, o objetivo chamar a ateno da categoria empresarial. Dessa forma, as empresas podero mostrar suas iniciativas de forma transparente, assim como os usurios da rede fiscalizaro se as empresas trabalham corretamente quanto preservao ambiental.

6.4 DESENVOLVIMENTO DO PROJETO

Nesta seo explanado o processo de desenvolvimento da rede social. Basicamente so descritos fatores como requisitos tcnicos, dificuldades encontradas e ferramentas que foram utilizadas para auxiliar na realizao deste prottipo de Rede Social.

6.4.1 Ferramentas utilizadas

Para a realizao do projeto foram utilizadas algumas ferramentas para dar suporte e tornar mais simples a programao. Vale tambm destacar que o projeto todo foi realizado utilizando ferramentas livres, desde sistema operacional at a linguagem de programao. Em relao programao, o prottipo todo foi desenvolvido utilizando Ruby On Rails (ROR). Antes de iniciar a configurao do ROR foi realizado um levantamento de qual sistema operacional seria utilizado, levando em considerao as ferramentas que oferecia e a facilidade de instalao e utilizao. Como o Rails um framework aberto, a grande maioria das ferramentas de desenvolvimento mais utilizadas esto disponveis para sistemas UNIX. Dessa forma o sistema escolhido foi o Ubuntu 9.04. Com o sistema operacional definido pode-se dar inicio a instalao do ROR. A descrio desse processo est disponvel no Anexo A: Instalao do Ruby on Rails no Ubuntu. Na seqncia foi realizada a instalao do banco de dados MySQL, utilizado por ser aberto e ter uma excelente compatibilidade com ROR.

68

Como ferramenta gerenciadora de banco de dados foi instalado o EMMA, software livre desenvolvido em Python, e pode ser encontrado no site http://www.fastflo.de/projects/emma. Visando manter um histrico e controle da verso do projeto, foi realizada tambm a configurao de um servidor SVN (SubVersion), ou seja, um sistema de controle de verso. Este tem a finalidade de administrar diferentes verses no desenvolvimento de um projeto de software. O cliente SVN utilizado foi o RapidSVN, software livre que pode ser baixado no site http://rapidsvn.tigris.org. Para a edio e tratamento de imagens foi utilizado o software GIMP (GNU Image Manipulation Program), que um programa de cdigo aberto e pode ser baixado no site http://www.gimp.org. Por fim, o editor de textos utilizado para elaborao dos cdigos ROR foi o GEdit, que o editor padro do sistema operacional Ubuntu. Juntamente com alguns plugins que ajudaram a facilitar o desenvolvimento. Depois de tudo instalado e devidamente configurado pode-se iniciar a codificao da aplicao, a qual descrita no tpico a seguir.

6.4.2 Desenvolvimento da Rede Social

Aps os estudos realizados neste projeto, como linguagens de programao, tecnologias, redes sociais e o tema meio ambiente, foi iniciada a implementao da aplicao. Com base nos requisitos levantados, bem como todos os fatores considerados para o sucesso da rede, a mesma foi definida com as seguintes sees: 1. Cabealho padro em todas as pginas contendo atalhos para as principais funcionalidades da rede; 2. Rodap padro em todas as pginas com atalhos para contato e termos de utilizao; 3. Barra lateral esquerda com informaes sobre o usurio logado e menu de navegao completo; 4. Seo central com informaes teis para interao e utilizao da rede pelo usurio. Informaes estas que levam em considerao se o usurio novo ou se j est interagindo com outros usurios.

69

5. Barra lateral direita contendo os amigos e empresas seguidas pelo usurio logado. Tambm h um espao para publicidade de outros sites relacionados ao tema da rede. Sendo assim, o projeto bsico da interface (wireframe) apresentado na Figura 17.

Fonte: (elaborado pelo autor).


FIGURA 17: Wireframe do prottipo.

Com base nesse modelo, foi possvel iniciar a codificao do prottipo utilizando o framework Ruby on Rails. Primeiramente foi criada toda a estrutura da aplicao, que a base para todo o projeto. Na Figura 18 pode-se visualizar a estrutura de pastas criadas pelo Rails atravs do comando rails d mysql cigno. Onde d mysql indica o banco de dados que ser utilizado e cigno o nome do projeto. Cigno foi o nome escolhido para a rede por estar relacionado natureza, pois na linguagem italiana a palavra cigno significa cisne.

Fonte: (elaborado pelo autor).


FIGURA 18: Estrutura do projeto.

70

O prximo passo foi a configurao da conexo com o banco de dados. Para isso o arquivo database.yml que encontra-se na pasta config teve que ser editado, conforme exemplo apresentado na Figura 7. Para o armazenamento das informaes foi modelada uma base de dados. O Diagrama Entidade Relacionamento (DER) est disponvel no Anexo B: Diagrama Entidade Relacionamento. Em seguida foi realizado e seguido um cronograma das atividades necessrias para deixar a rede social funcional. O projeto foi divido por fases, conforme exibido no Quadro 9.
Quadro 9: Fases do projeto

Fase

Atividades realizadas Na primeira fase do projeto foi realizada a codificao do controle de usurios, onde se enquadram cadastro, ativao e autenticao. Ainda nesta etapa do projeto, foram realizados testes para validar tais funcionalidades, como cadastro e ativao do usurio cadastrado, efetuar login e logout no site, edio do perfil e requisio de nova senha. Quando se fala em redes sociais, a primeira coisa que vem cabea so as relaes de amizade. Esta segunda fase do projeto foi focada nisso, visando oferecer aos usurios logados uma pesquisa por outros usurios e a possibilidade de realizarem uma requisio de amizade. Tambm foram realizadas algumas validaes nesta etapa, verificando se os usurios j so amigos, se no o prprio usurio tentando se adicionar e se j no existe uma requisio de amizade. Na seqncia foram elencadas todas as funcionalidades como cadastro de aes, mensagens, eventos e funcionalidade, seguindo o padro MVC, tambm teve viso e um controlador gerados de acordo com as necessitam. que a rede teria, empresas. Cada um modelo, uma informaes que

A quarta fase do projeto tambm foi voltada para implementao de funcionalidades da rede, como um cadastro para manter dicas de preservao, outro para manter um cadastro de ONGs e uma opo para convidar amigos para participarem da rede social. Seguindo o mesmo padro das relaes de amizades, foram criadas as opes de adio de empresas, onde o usurio poder seguir as aes que esta realizou. Nesta mesma etapa do projeto foram realizadas as implementaes do envio e manuteno de arquivos multimdia, como fotos e vdeos. Assim, usurios e empresas podero manter em seu perfil lbuns de fotos e vdeos sobre suas aes. J com todos os formulrios cadastrais criados, na sexta fase do projeto

71

foram implementadas as opes de busca por nomes de usurios e empresas, facilitando a procura de informaes dentro da rede. Com todas as funcionalidades da rede codificadas, torna-se necessrio o desenvolvimento de um layout simples e agradvel para o usurio navegar. Nesta stima fase do projeto foi utilizada a linguagem de estilos CSS, dando forma e beleza ao site. Na oitava etapa do projeto, foi realizada a paginao em determinadas reas da rede. Dessa forma, setores com maior nmero de informao podem ser carregados mais rapidamente. Por fim, foram realizadas as configuraes do controle de permisses da rede, visando proteger as informaes desta contra usurios mal intencionados.

Fonte: (Elaborado pelo autor)

O Framework Rails disponibiliza inmeros plugins (complementos) que podem ser utilizados para ganhar produtividade durante o desenvolvimento. A lista dos principais plugins contidos neste projeto e sua descrio so apresentadas no Quadro 10.
Quadro 10: Principais plugins utilizados no projeto

Nome Authlogic JRails Paperclip Formtastic Auto_html Lockdown Will_Pagina te Ezgraphix

Funcionalidade Autenticao de usurios. Integrao de JQuery com Rails. Upload de arquivos. Criao de formulrios. Converso de links em fotos e vdeos. Controle de permisses de usurios. Paginao de registros. Criao de Grficos com JQuery.

Fonte: (Elaborado pelo autor)

Cada um desses plugins foi devidamente testado e configurado para funcionar corretamente no prottipo. Ao final, pode-se perceber que atendiam a necessidade, permitindo que a rede ficasse funcional. No Quadro 11, possvel visualizar a funo companie_treerank do controlador de empresas. Ela tem como funcionalidade buscar no banco de dados a soma dos pontos

72

recebidos pelas empresas no TreeRank, este que ser explicado no item 8.4.5. Alm disso, ela tambm ir instanciar um novo grfico utilizando o plugin Ezgraphix.
Quadro 11: Funo para gerar o grfico do Ranking de empresas.

def companie_treerank @companie_score = CompaniePostScore.find( :all, :select => '(SELECT substr(companies.name,1,15) FROM companies WHERE companies.id = companie_id) as name, companie_id as companie, (IFNULL(sum(score), 0)*3)+ (SELECT (IFNULL(sum(companie_videos.score), 0)*5) FROM companie_video_scores companie_videos WHERE companie_videos.companie_id = companie)+ (SELECT (IFNULL(sum(companie_photos.score), 0)*6) FROM companie_photo_scores companie_photos WHERE companie_photos.companie_id = companie) as score', :group => 'companie', :order => 'score DESC',:limit => 10) @data = Array.new @labels = Array.new for score in @companie_score @data << score.score @labels << score.name end @g = Ezgraphix::Graphic.new(:w => 750, :h => 500, :c_type => 'mscol3d') @g.data = {"Pontos no TreeRank de Empresas" => @data} @g.labels = @labels render :partial => 'home/companie_treerank' end Fonte: (Elaborado pelo autor) Dessa forma, na nossa Viso do controlador Empresas ser necessria somente uma linha de cdigo para exibir o grfico na tela, como pode ser visto no Quadro 12.
Quadro 12: Cdigo para exibir na tela o grfico do Ranking de empresas.

<%= render_ezgraphix @g %> Fonte: (Elaborado pelo autor)

73

Tambm interessante destacar a forma de funcionamento da paginao do prottipo. Em pginas que possuem vrios itens, como a pgina de aes do usurio, foi realizada a paginao dos mesmos, obtendo assim ganho de desempenho e esttica do site. Para esta tarefa foi utilizado o plugin Will_Paginate do Rails, que trabalha de forma simples porm eficaz. No Modelo do mtodo Post devem ser includas as linhas de cdigo do Quadro 13, dessa forma ele ir trazer somente 10 registros por pgina.
Quadro 13: Cdigo do Will_Paginate para o Modelo Post.

cattr_reader :per_page @@per_page = 10 Fonte: (Elaborado pelo autor) Feita a alterao no modelo tambm deve ser modificado o cdigo do Controlador, alterando o objeto @user_posts para que fique como o Quadro 14.
Quadro 14: Cdigo para o Controlador do mtodo Post receber os dados paginados.

@user_posts = Post.paginate(:all, :page => params[:page], :conditions => ['user_id = :user_id and d_e_l_e_t_ = 0', {:user_id => @user.id}], :order => 'created_at DESC') Fonte: (Elaborado pelo autor) Por fim, para que seja exibida a opo de troca de pginas ao usurio, deve ser inserido na Viso o cdigo apresentado no Quadro 15, aps isso o Will_Paginate ir se encarregar de montar os links para as outras pginas.
Quadro 15: Cdigo para exibir os links da paginao na Viso do mtodo Post.

<%= will_paginate @user_posts, :renderer => 'RemoteLinkRenderer', :remote => {:update => :home_middle, :loading => "$('#spinner').show()", :complete => "$('#spinner').hide()"}, :prev_label => 'Anterior', :next_label => 'Prximo' %> Fonte: (Elaborado pelo autor) Aps a concluso da primeira verso do prottipo, foram realizados testes de todas as funcionalidades em base local. Como houve tempo hbil, foi possvel registrar um domnio e colocar o site no ar em uma verso para utilizao, processo descrito a seguir.

74

6.4.3 Hospedagem do prottipo na Web

Partindo do que foi estudado em captulos anteriores, uma rede social necessita de seus usurios para ter algum sentido, pois so eles que trazem a informao e a tornam interessante. Dessa forma, para que fosse possvel realizar testes com o prottipo desenvolvido, foi locado um servidor Linux e efetuada a compra do domnio cigno.com.br para hospedagem do mesmo na internet. Quanto ao nome do prottipo, procurou-se encontrar algo fcil de ser lembrado pelos usurios e que tivesse algum significado relacionado ao tema da rede. A palavra Cigno italiana e quer dizer Cisne em portugus. Aps o prottipo estar devidamente hospedado no servidor WEB, foi possvel que os usurios interagissem na rede social. No tpico a seguir so apresentadas algumas telas do mesmo, bem como alguns nmeros de sua utilizao no perodo em que ficou disponvel.

6.4.4 Utilizao da Rede Social

Para mostrar de maneira clara as funcionalidades do prottipo, a seguir, todo o processo de navegao apresentado atravs de um exemplo prtico. Ao acessar o endereo do prottipo ( www.cigno.com.br ), o usurio ir encontrar a pgina inicial da rede social. Como pode ser visto na Figura 19, neste espao esto disponveis informaes sobre qual o objetivo da rede, dados estatsticos, temos de uso, poltica de privacidade, espao para efetuar login e opo de cadastro de novo usurio.

75

Fonte: (elaborado pelo autor).


FIGURA 19: Tela da pgina inicial do prottipo.

Conforme um padro adotado pela maioria das redes sociais, a pgina inicial permite que o usurio descubra para que serve a rede, possibilita um novo cadastro, bem como traz uma caixa de login na rede para usurios j cadastrados. Aps realizar o cadastro, o usurio informado que foi lhe enviado um email contendo um link de ativao de sua conta. Desta forma somente usurios com emails verdadeiros conseguiro utilizar a rede. Depois de ter ativado a conta atravs do email, o usurio ir receber uma confirmao de que j est apto a efetuar login. Com a conta ativada, o usurio acessa novamente a pgina inicial do prottipo e informa seu usurio e senha para logar-se. Se as informaes estiverem corretas ele ser direcionado para a pgina inicial do seu perfil, conforme tela apresentada na Figura 20.

76

Fonte: (elaborado pelo autor).


FIGURA 20: Tela da pgina inicial do usurio logado.

Partindo da premissa que a partir da pgina inicial do usurio logado que sero realizadas todas as operaes, a mesma detalhada conforme a numerao da Figura 20. Na seo 1 possvel visualizar os links de acesso rpido s principais funcionalidades da rede, o qual mantido em todas as outras pginas. Na seo 2 so apresentadas informaes sobre o usurio e opes de visualizao e edio do perfil. Na seo 3 est localizado o menu de navegao, e na seqncia, na seo 4, a opo de convite para amigos participarem da rede. Na seo 5 apresentado um ranking contendo os dez usurios mais votados na rede no momento. Este item ser melhor explanado no item 8.5.4. No centro da pgina inicial, na seo 6, so exibidas dicas de preservao ambiental aleatrias. Nas sees 7 e 8, so oferecidas opes de busca de amigos e empresas respectivamente. Caso seja a primeira vez que efetuou login, sero apresentadas algumas

77

opes a mais, como alterar foto, atualizar informaes do seu perfil e sugestes de amizades e empresas. Ao acessar o menu lateral direito, na seo 9, possvel visualizar as relaes de amizade do usurio. Logo abaixo, na seo 10, so exibidas as empresas que o usurio est seguindo. E por fim, na seo 11, so apresentadas as opes de colaborao. Na Figura 21 apresentada a tela da pgina de aes realizadas pelo usurio, que tambm oferece a possibilidade de cadastrar uma nova ao.

Fonte: (elaborado pelo autor).


FIGURA 21: Tela da pgina de aes realizadas pelo usurio logado.

A pgina de aes, como a maioria das funcionalidades do prottipo, so carregadas utilizando AJAX, que conforme vimos no Captulo 3, carrega somente a ao requisitada sem recarregar toda a pgina. Para possibilitar a interao entre os usurios foi implementada tambm a opo de troca de mensagens. Conforme visto na Figura 22, ao acessar o perfil de outro usurio possvel deixar uma mensagem privada para ele. J na Figura 23 apresentada a tela da pgina de mensagens do usurio logado.

78

Fonte: (elaborado pelo autor).


FIGURA 22: Tela da pgina do perfil do usurio visitado.

Alm da opo de envio de mensagem privada, a pgina do perfil do usurio visitado apresenta vrias informaes teis referentes ao seu perfil.

Fonte: (elaborado pelo autor).


FIGURA 23: Tela da pgina de mensagens do usurio logado.

79

Assim como o perfil do usurio visitado, tambm possvel visualizar o perfil das empresas cadastradas, como pode ser visto na Figura 24.

Fonte: (elaborado pelo autor).


FIGURA 24: Tela da pgina do perfil de empresa.

Conforme exibido na Figura 25, atravs do menu da pgina inicial tambm possvel visualizar as relaes de amizade do usurio logado.

Fonte: (elaborado pelo autor).


FIGURA 25: Tela da pgina de Amigos seguidos pelo usurio logado.

80

Do mesmo modo, como pode ser visto na Figura 26, atravs do menu principal o usurio tambm pode visualizar quais empresas ele est acompanhando.

Fonte: (elaborado pelo autor).


FIGURA 26: Tela da pgina de empresas seguidas pelo usurio logado.

O prottipo tambm oferece a seus usurios um local onde possam divulgar futuros eventos relacionados ao tema meio ambiente. Na Figura 27 apresentada tal funcionalidade.

Fonte: (elaborado pelo autor).


FIGURA 27: Tela da pgina de eventos com temtica ambiental.

81

Alm das funcionalidades apresentadas, o prottipo tambm possibilita o envio de arquivos multimdia, como imagens e vdeos. Na Figura 28 possvel visualizar a pgina de lbuns de fotos do usurio e na Figura 29 as fotos contidas no mesmo.

Fonte: (elaborado pelo autor).


FIGURA 28: Tela da pgina de lbuns de fotos do usurio logado.

Se o usurio logado for o proprietrio daquele lbum de fotos ser exibida uma opo para a criao de novo lbum. Do mesmo modo apresentada uma opo para envio de nova foto.

Fonte: (elaborado pelo autor).


FIGURA 29: Tela da pgina de fotos do lbum do usurio logado.

82

Seguindo a mesma lgica, na Figura 30 apresentada a pgina de vdeos. Ela oferece ao usurio logado a possibilidade de cadastro de novo vdeo. Nesta funcionalidade foi utilizado um plugin para converso do link do vdeo em imagem. Assim no h a necessidade do usurio fazer o upload do vdeo para a rede, ele somente informa o link de um vdeo existente.

Fonte: (elaborado pelo autor).


FIGURA 30: Tela da pgina de vdeos do usurio logado.

Para tornar a rede o mais atrativa possvel, foi elaborado um sistema pontuao onde os usurios podem avaliar aes de outros usurios. Esta funcionalidade abordada a seguir.

6.4.5 Sistema de pontuao pela utilizao da rede

Visando tornar a rede mais interativa e interessante para os usurios, bem como incentiv-los a cadastrarem novas aes, vdeos e imagens, foi criado um sistema de pontuao: o TreeRank. Ao acessar o perfil de algum amigo ou empresa, o usurio logado tem a possibilidade de avaliar suas aes em favor do meio ambiente. Os pontos ganhos so acumulados e atravs deles so gerados grficos em tempo real.

83

Na Figura 31 pode-se visualizar a tela principal do TreeRank. Ela contm uma breve descrio de como o sistema de pontuao funciona e links para que o usurio possa visualizar os cinco tipos de rankings disponveis.

Fonte: (elaborado pelo autor).


FIGURA 31: Tela da pgina de Rankings.

Ao escolher a opo TreeRank de Usurios carregado automaticamente um grfico em tempo real dos dez usurios mais bem posicionados. Esse grfico, que pode ser visto na Figura 32, leva em considerao os pontos obtidos com aes realizadas, imagens enviadas e vdeos cadastrados.

84

Fonte: (elaborado pelo autor).


FIGURA 32: Tela da pgina do TreeRank de usurios.

Da mesma forma pode ser visualizado o grfico com as empresas mais votadas na rede. Este tambm leva em considerao os pontos das aes realizadas, vdeos cadastrados e imagens enviadas pela empresa. O grfico pode ser visto na Figura 33.

Fonte: (elaborado pelo autor).


FIGURA 33: Tela da pgina do TreeRank de empresas.

85

Alm dos dois tipos de grficos apresentados, tambm esto disponveis rankings dos dez usurios com mais pontos em aes, imagens ou vdeos individualmente. Como a rede ficou disponvel para navegao, foi possvel coletar algumas informaes a respeito de sua utilizao. Essa anlise apresentada a seguir.

6.4.6 Anlise de Utilizao da Rede Social

Aps a hospedagem da rede social e a configurao do domnio cigno.com.br no servidor locado, foi disponibilizada a primeira verso do site na internet. A hospedagem ocorreu no dia 01/06/2010, e os nmeros apresentados a seguir foram coletados no dia 14/06/2010. Para a divulgao da rede social deste trabalho foram utilizadas as principais redes sociais atuais, o Orkut e o Twitter. Tambm foram enviados vrios emails de divulgao para contatos conhecidos e com interesse ambiental (coletados atravs de visitas a sites de instituies do ramo e organizaes no governamentais de cunho ambiental). Para criao dos relatrios estatsticos mostrados a seguir, foi utilizado o Urchin, que um sistema de processamento de relatrios de acesso e trfego nos sites disponibilizado pelo provedor que hospedou o prottipo. Ele oferece vrios tipos de relatrios e informaes teis para acompanhamento da utilizao do site. No grfico da Figura 34 pode ser visualizado o relatrio de sesses que a rede teve nas suas primeiras duas semanas. Vale lembrar que este contador s incrementado quando um usurio efetua login no site atravs de um endereo IP distinto.

Fonte: (elaborado pelo autor).


FIGURA 34: Relatrio Grfico de sesses do domnio cigno.com.br.

86

Pode-se perceber que a rede comeou com 140 acessos, e atingiu um pico de 145 acessos dirios, oscilando nos primeiros dias. Alm do relatrio de sesses tambm pode ser apresentado o relatrio de cliques, disponvel no grfico da Figura 35. Neste caso, conta-se como clique cada vez que o usurio faz uma nova requisio, como uma nova pgina HTML ou imagem por exemplo.

Fonte: (elaborado pelo autor).


FIGURA 35: Relatrio Grfico de cliques do domnio cigno.com.br.

Se compararmos o relatrio de cliques com o de sesses, conseguimos perceber que um no influencia diretamente no outro, pois h dias com maior nmero de acessos que tiveram menor utilizao em relao aos outros. Com base nos relatrios apresentados pode-se fazer uma projeo de crescimento da rede, bem como um planejamento de divulgao para conseguir novos usurios. Pois alm de relatrios de acessos, possvel visualizar as formas que os usurios utilizaram para chegar at o site e termos utilizados nos buscadores como Google e Yahoo. At a data da concluso deste trabalho, 14 dias aps a rede estar no ar, alguns nmeros merecem ser destacados. Estes so apresentados no Quadro 16. Foram 131 usurios cadastrados e mdia de 91 acessos nicos por dia. Quanto aos acessos s funcionalidades da rede, j foram cadastradas mais de 140 aes em favor do meio ambiente, 446 relaes de amizade, 6187 pontos em votos para o TreeRank e 118 itens multimdia entre fotos e vdeos.

87

Quadro 16: Tabela de utilizao do prottipo.

Semana 1 Total Mdia/Dia Usurios cadastrados Acessos nicos Aes realizadas Itens multimdia Relaes de amizade Pontos no TreeRank
Fonte: (Elaborado pelo autor)

Semana 2 Total Mdia/Dia 63 747 62 62 248 3828 9 106,71 8,85 8,85 35,42 546,85

68 530 79 56 198 2359

9,71 75,71 11,28 8 28,28 337

Com base nessa tabela, a Figura 36 apresenta uma mdia de acessos nas duas semanas que a rede ficou disponvel online.

Fonte: (elaborado pelo autor).


FIGURA 36: Resumo da mdia de acessos do prottipo.

Em relao repercusso da rede, tambm vale ressaltar que foi bem avaliada. Em blogs e outras redes sociais foram feitos vrios comentrios em favor da rede social Cigno. Alguns deles so apresentados nas Figuras 37, 38, 39 e 40.

Fonte: (elaborado pelo autor).


FIGURA 37: Comentrio realizado na rede social Twitter dia 05/06/2010.

88

Na primeira semana de divulgao da rede no Twitter, j foi possvel visualizar comentrios positivos por parte dos usurios.

Fonte: (elaborado pelo autor).


FIGURA 38: Comentrio realizado na rede social Twitter dia 10/06/2010.

Pessoas de diversas partes do pas, todos com o interesse de proteger nosso planeta, aderiram idia e esto ajudando na divulgao do Cigno.

Fonte: (elaborado pelo autor).


FIGURA 39: Comentrio realizado na rede social Twitter dia 15/06/2010.

Alm da repercusso na rede social Twitter, tambm houve matrias em blogs comentando sobre a idia e apoiando seus leitores a se cadastrarem.

Fonte: (elaborado pelo autor).


FIGURA 40: Post realizado pelo Blog3 falando sobre o Cigno.

89

Com base nos dados informados no Quadro 16, bem como os comentrios realizados por usurios na internet, pode-se afirmar que a repercusso inicial foi positiva. Resta apenas continuar a divulgao, procurando agora atingir as empresas que querem mostrar conscincia ambiental. Por fim, aps apresentar o processo de desenvolvimento, bem como a forma de utilizao e a repercusso inicial da rede, foi possvel perceber que a mesma teve grande receptividade. Alm disso, observando a aceitao dos usurios conclui-se que o contnuo aprimoramento da mesma se mostra de grande valia.

90

7 CONCLUSO Atravs deste trabalho, foi possvel realizar um estudo das principais tecnologias da Web 2.0, bem como suas principais caractersticas e funcionalidades. Tambm possibilitou visualizar melhor como funciona a legislao ambiental, e como est sendo aplicada na prtica. Alm do estudo sobre as redes sociais, que mostrou como so bastante difundidas e aceitas entre o pblico brasileiro. Quanto ao uso do framework Rails, este provou ser uma ferramenta gil e ao mesmo tempo completa. Proporcionou seu entendimento em de forma rpida e simples, fazendo o desenvolvimento da rede social ser possvel em um curto espao de tempo. Isso comprova que realmente esta tecnologia pode ser usada no processo de desenvolvimento rpido de aplicaes WEB. Vale destacar tambm a temtica do prottipo apresentado, pois o assunto meio ambiente pede reflexo. As pessoas sabem que precisam se conscientizar e melhorar suas atitudes, ento para tornar isso mais simples nada melhor que utilizar esta nova tendncia, as redes sociais. Alm de desmistificar a idia de que os avanos tecnolgicos degradam o meio ambiente. Quanto aos objetivos atingidos durante o projeto, pode-se citar o planejamento e desenvolvimento da rede, a sua hospedagem na Web, a divulgao e a repercusso que ela teve e acima de tudo o aprendizado. Enfim, o objetivo principal, que era desenvolver a rede social e a deixar funcional, bem como a repercusso inicial da rede entre os usurios, foi atingido.

7.1 TRABALHOS FUTUROS

Alm das funcionalidades apresentadas pelo prottipo, algumas sugestes podem ser dadas para aprimorar o trabalho e aumentar a usabilidade do mesmo. Dentre as quais pode-se destacar: disponibilizar uma verso da aplicao para dispositivos mveis;

91

desenvolver tcnica de recomendao de amizades e empresas na rede baseada em mecanismos de inteligncia artificial; enriquecer a interface do site com mais interatividade, como jogos e desafios com temtica ambiental; buscar parcerias com empresas para fortalecer a divulgao da rede; vincular a rede com sites maiores, como orkut e twitter. Dessa forma, realizando todos estes aperfeioamentos, a rede poder auxiliar consideravelmente os usurios a discutirem questes ambientais.

92

8 REFERNCIAS BABIN, Lee. Ajax com PHP. Rio de Janeiro : Alta Books, 2007. BIRNIE, Patricia W.; BOYLE, Alan E. International Law and the environment. Oxford : Claredon Press, 1992. BOUAS, Cibelle. Redes sociais atraem interesse de companhias. Disponvel em: http://www.fenacon.org.br/. Acesso em: 09 nov. 2009. CARVALHO, Edson Ferreira de. Meio Ambiente e Direitos Humanos. Curitiba: Juru, 2005. CARVALHO, Luiz Aro Arajo. GETNA: Gerador de Cdigo Ruby on Rails a partir de Banco de Dados. 2008. 110 f. Monografia (Bacharel em Cincias da Computao) Universidade Federal do Tocantins, Palmas, 2008. Disponvel em: http://www.redrails.com.br/2009/09/monografia-getna-gerador-ruby-on-rails-a-partir-debanco-de-dados/. Acesso em: 07 nov. 2009. CHAGAS, Manoela Doraci. Um prottipo de CRM na rea comercial, aplicando tcnicas de Data Mining. 2007. 98 f. Monografia (Bacharel em Sistemas de Informao) Universidade Comunitria da Regio de Chapec, Chapec, 2007. CONVERSE, Tim; PARK, Joyce. PHP4: a bblia. Traduo da 2. ed. Original de Edson Furmankieveicz. Rio de Janeiro: Elseiver, 2003. CRANE, Dave; PASCARELLO, Eric; JAMES Darren. Ajax em Ao. So Paulo : Pearson Prentice Hall, 2007. CROCKFORD, Douglas. JavaScript: The Good Parts. United States of America, 2008. CUNHA NETO, S. M. Rails Versus Struts: Um Comparativo de Frameworks. 2007. 57 f. Monografia (Bacharel em Sistemas de Informao) Universidade Federal do Estado do Rio de Janeiro, Rio de Janeiro, 2007. Disponvel em: http://www.mergulhao.info/assets/2007/5/2/monografia.pdf Acesso em: 15 nov. 2009. CYBIS, Walter de Abreu. Engenharia de Usabilidade: Uma abordagem Ergonmica. Labiutil: Florianpolis, 2003.

93

DOEDERLEIN, Osvaldo. Aprendendo Scripting e dinamismo na plataforma Java. Java Magazine, 2005. n. 32. EDUARDO, Carlos. O que Adobe Flex. Disponvel em: http://fmsguru.com.br/2009/09/15/o-que-e-adobe-flex/. Acesso em: 23 nov. 2009. FERRAZ, Ronaldo Melo. Rails para sua Diverso e Lucro. Free Software Fundation, Inc.: Boston, 2006. FACEBOOK. Site Oficial do Facebook. Disponvel em: http://www.facebook.com/. Acesso em: 08 nov. 2009. FLANAGAN, David. Java: o guia essencial. 3. ed. Campus: Rio de Janeiro, 2000. FORTES, Renata P. M.; JUNQUEIRA, Daniel C. Introduo ao Desenvolvimento de Aplicaes Web com Ruby on Rails. Disponvel em: www.icmc.usp.br/~renata/RoRcapitulo_webmedia07.pdf Acesso em: 21 nov. 2009. GUTMANS, Andi; BAKKEN, Stig Saether; RETHANS, Derick. PHP 5: programao poderosa. Traduo: Marcelo Soares e Andreza Gonalvez. Rio de Janeiro: Alta Books, 2005. HANSON, David. Ruby on Rails in Brazil. 2006. Disponvel em: http://www.rubyonrails.com.br/. Acesso em: 03 nov. 2009. HEITLINGER, Paulo. O Guia Prtico da XML. Porto Lisboa, 2001. JANDI JUNIOR, Peter. Introduo ao Java. Berkley: So Paulo, 2002. JNIOR, Francisco. JSP, a tecnologia Java na Internet. Erica: So Paulo, 2002. KURNIAWAN, Budi. Java para Web com Servlets, JSPs e EJB. Cincia Moderna: Rio de Janeiro, 2002. LLOYD, Douglas. Expresso Developers Guide. Disponvel em: www.jcorporate.com/expresso/doc/edg/edg.pdf Acesso em: 03 nov. 2009. MASSAGO, Sadao; SCHTZER, Waldeck. Programao Java. Disponvel em: http://www.dm.ufscar.br/~waldeck/curso/java/introd.html Acesso em: 07 nov. 2009.

94

MATSUMOTO, Yukihiro. Sobre o Ruby. Disponvel em: http://www.ruby-lang.org/pt/sobreo-ruby/. Acesso em: 17 nov. 2009. MILAR, dis. Direito do ambiente: doutrina, prtica, jurisprudncia, glossrio. So Paulo: Editora dos Tribunais, 2000. NING. Site Oficial do Ning. Disponvel em: http://www.ning.com/. Acesso em: 08 nov. 2009. OREILLY, Tim. Citaes sobre Ruby on Rails. Disponvel em: http://www.rubyonrails.pro.br/citacoes Acesso em: 04 nov. 2009. OLIVEIRA JR., Eustquio Rangel de. RUBY. So Paulo : Brasport, 2005. ORKUT. Site Oficial do Orkut. Disponvel em: http://www.orkut.com/. Acesso em: 08 nov. 2009. PAIVA, Moriael. Como Obama usar as redes sociais como presidente? Disponvel em: http://webinsider.uol.com.br/. Acesso em: 09 nov. 2009. PILGRIM, Mark. Mergulhando no Python. Rio de Janeiro : Alta Books, 2005. PRESSMAN, Roger S. Engenharia de Software. So Paulo: Makron Books, 1995. RECUERO, Raquel. Redes Sociais na Internet. Porto Alegre: Sulina, 2009. ROSSUM, Guido van. Histria do Python. Disponvel em: http://www.python.org/doc/essays/foreword.html Acesso em: 07 nov. 2009. SILVA, Jos Afonso da. Direito ambiental constitucional. 2. ed. So Paulo: Malheiros, 1997. SILVA, Maurcio Samy. Construindo Sites com CSS e (X)HTML. So Paulo : Novatec Editora, 2008. THOMAS, Dave. Programming Ruby. 2. ed. Dallas: 2004. ______, ______; HANSON, David. Agile Web Development with Rails. Dallas: 2005.

95

TWITTER. Site Oficial do Twitter. Disponvel em: http://www.twitter.com/. Acesso em: 08/11/2009 14:25. VENNERS, Bill. The Philosophy of Ruby. Disponvel em: http://www.artima.com/intv/ruby4.html. Acesso em: 17 nov. 2009. YOUTUBE. Site Oficial do Youtube. Disponvel em: http://www.youtube.com/. Acesso em: 08 nov. 2009.

96

9 ANEXO A: INSTALAO DO RUBY ON RAILS NO UBUNTU Primeiramente instala-se o Ruby, neste caso, o Ruby 1.8. A partir do terminal do Linux so digitados os seguintes comandos: sudo apt-get install build-essential sudo apt-get install ruby1.8 ruby1.8-dev rdoc1.8 ri1.8 irb1.8 Agora instalado o RubyGems, atualmente verso 1.3.5, que serve para a instalao de plugins e aplicaes relacionadas ao Ruby, entre eles o Rails: wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz tar xvzf rubygems-1.3.5.tgz cd rubygems-1.3.5/ sudo ruby1.8 setup.rb Em seguida so criados os links de acesso rpido para os pacotes do Ruby que foram instalados: sudo ln -s /usr/bin/ruby1.8 /usr/bin/ruby sudo ln -s /usr/bin/gem1.8 /usr/bin/gem sudo ln -s /usr/bin/ri1.8 /usr/bin/ri sudo ln -s /usr/bin/irb1.8 /usr/bin/irb sudo ln -s /usr/bin/rdoc1.8 /usr/bin/rdoc E a verificao se existe algum update para o RubyGems: sudo gem update system sudo gem sources -a http://gems.github.com sudo gem sources -a http://gemcutter.org Depois feita a instalao do Rails: sudo gem install rails sudo apt-get install libopenssl-ruby E por fim ser feita a instalao do plugin (gem) do MySQL: sudo gem install mysql

97

10 ANEXO B: DIAGRAMA ENTIDADE RELACIONAMENTO

Para melhor visualizao foram ocultados os atributos das tabelas.

98

11 ANEXO C: MODELO, VISO E CONTROLADOR Controlador do envio de convites: class ConvitesController < ApplicationController def create @convite = Convite.new(params[:convite]) respond_to do |format| if @ convite.save flash[:notice] = 'Convite enviado com sucesso' send_email_convidar_amigo format.html { redirect_to(root_path) } else flash[:warning] = 'Voc deve informar um email vlido' format.html { redirect_to(root_path) } end end end private #Envia email (convidar amigo) def send_email_convidar_amigo corpo = <<-CODE <b>Ol,</b><br /><br /> <b>#{@convite.user.name} est te convidando para participar do Cigno.<br /></b> <b>Acesse agora mesmo e faa seu cadastro!</b><br /><br /> <b>http://www.cigno.com.br</b><br /> CODE Email.deliver_padrao(:corpo => corpo, :assunto => "Convite para o Cigno", :para => @convite.email) end end Modelo do envio de convites: class Convite < ActiveRecord::Base belongs_to :user validates_presence_of :email, :message => 'Favor informar o email' validates_format_of :email, :with => /^[-a-z0-9_+\.]+\@([-a-z0-9]+\.)+[a-z0-9]{2,4}$/i validates_length_of :email, :maximum => 50, :message => 'O Email no pode ter mais que 50 caracteres' end

99

Viso do envio de convites: <div id='mti01'> <div id='lft'> <p class='rmt01'>Convidar Amigos</p> </div> </div> <% semantic_form_for(@new_convite) do |f| %> <%= f.input :email, :label => false, :input_html => { :class => 'nrm01' } %> <%= f.input :user_id, :as => :hidden, :value => current_user.id %> <%= f.commit_button 'Enviar', :button_html => {:class => 'h01'} %> <% end %>

Você também pode gostar