<?xml version="1.0" encoding="utf-8"?>
<!---->
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>urn:lj:blogs.ua.sapo.pt:atom1:driveme</id>
  <title>driveme</title>
  <subtitle>driveme</subtitle>
  <author>
    <name>driveme</name>
  </author>
  <link rel="alternate" type="text/html" href="http://driveme.blogs.ua.sapo.pt/"/>
  <link rel="self" type="text/xml" href="http://blogs.ua.sapo.pt/users/driveme/data/atom"/>
  <updated>2010-12-20T02:22:22Z</updated>
  <link rel="service.feed" type="application/x.atom+xml" href="http://blogs.ua.sapo.pt/users/driveme/data/atom" title="driveme"/>
  <entry>
    <id>urn:lj:blogs.ua.sapo.pt:atom1:driveme:2117</id>
    <author>
      <name>linda-velte</name>
    </author>
    <link rel="alternate" type="text/html" href="http://driveme.blogs.ua.sapo.pt/2117.html"/>
    <issued>2010-12-20T02:17:31</issued>
    <title>Scrapper</title>
    <published>2010-12-20T02:22:22Z</published>
    <updated>2010-12-20T02:22:22Z</updated>
    <content type="html">&lt;p&gt;&lt;b&gt;Horários&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;Para obter os horários foi feito web crawling, armazenando os dados numa base de dados (após parsing dos mesmos) e permitindo pesquisa sobre esta a partir de um Web service (SOAP).&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;b&gt;Crawling&lt;/b&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;Para fazer web crawling foi utilizada a ferramenta Scrapy. Este permite fazer web crawling e extracção de dados estruturados, que depois poderá ser usado para um vasto tipo de aplicações. Foi desenvolvido em Python.&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;Para começar é preciso criar um novo projecto scrapy usando o comando &amp;ldquo;scrapy startproject horarios&amp;rdquo;.&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;Isto cria os ficheiros e pastas necessários.&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt; &lt;/p&gt; &lt;ol&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;scrapy.cfg 	(ficheiro de configuração do projecto)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;horarios/ 	(módulo de python do projecto)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;horarios/items.py 	(define os items a construir)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;horarios/pipelines.py 	(ficheiro de pipelines do projecto)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;horarios/settings.py 	(ficheiro de propriedades do projecto)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;horarios/spiders/ 	(directório no qual são colocados os &amp;ldquo;spiders&amp;rdquo; criados)&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p style="margin-bottom: 0in;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;Os Items são &amp;ldquo;containers&amp;rdquo; que irão guardar a informação obtida. Os itens são definidos em item.py.&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;A classe que vai percorrer as páginas e extrair a informação é chamada spider. É definida inicialmente uma lista de hiperligações a pesquisar, das quais vão ser extraídos os itens.&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;Um spider tem que ter obrigatoriamente três atributos:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;name (identifica o spider)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;start_url (onde é iniciado o 	processo de craling)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;Método parse que irá ser chamado 	com o objecto Response obtido de cada URL.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p style="margin-bottom: 0in;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;O spider é o que vai fazer crawling às páginas da MoveAveiro chama-se horario_spider.py.&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;Este ficheiro trata de ler o conteúdo das páginas, fazer o parsing deste e guardar os dados na base de dados.&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;Para iniciar o processo de crawling usa-se o comando: scrapy crawl hor.org, sendo hor.org o nome do spider.&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt; &lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;b&gt;Parsing&lt;/b&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;Neste exemplo são seleccionadas todas as colunas pertencentes à classe &amp;ldquo;excel&amp;rdquo; e é extraído o seu conteúdo/texto.&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;b&gt;Base de Dados&lt;/b&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;Para a base de dados foi usado o SQLite. SQLite é uma biblioteca open-source de software que permite construir uma base de dados SQL que não necessita de servidor ou configurações complicadas.&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt; &lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;b&gt;Actualização da Base de Dados&lt;/b&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;  &lt;p style="margin-bottom: 0in;"&gt;Para evitar a leitura constante da página, é agendado o crawling para as 17h de cada dia. Para isso é usado o ficheiro crontab do linux:&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;00 17 * * *     linda   sh /home/linda/ua/es/horarios/s.sh&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;O ficheiro s.sh inicia o processo de crawling. O spider obtém o hash da página e guarda numa base de dados só com uma tabela para esse fim. Cada vez que é executado compara o novo hash com o guardado anteriormente, extraindo apenas a nova informação se o hash for diferente. Desta forma é apenas actualizada a base de dados dos horários se a página tiver sido alterada.&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;b&gt;&lt;br type="_moz" /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;b&gt;Web Service SOAP&lt;/b&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;  &lt;p style="margin-bottom: 0in;"&gt;Para a pesquisa na base de dados foi implementado um web service SOAP, utilizando a biblioteca do python soaplib. Este Web service obtém a hora actual e retorna a hora do próximo autocarro para a paragem pretendida.&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:blogs.ua.sapo.pt:atom1:driveme:1952</id>
    <author>
      <name>jmsmelo</name>
    </author>
    <link rel="alternate" type="text/html" href="http://driveme.blogs.ua.sapo.pt/1952.html"/>
    <issued>2010-11-28T01:44:28</issued>
    <title>Geo Localização - Concluído</title>
    <published>2010-11-28T02:43:13Z</published>
    <updated>2010-11-28T03:04:04Z</updated>
    <category term="geolocalização android rest json xml mys"/>
    <content type="html">&lt;p style="text-align: justify; "&gt; A versão final do que será o serviço de localização geográfica encontra-se disponível hoje. Como já foi esclarecido no post anterior relacionado com este tema, o cliente portador do terminal Android desloca-se pelas ruas, e quando a distância entre a sua posição actual e a posição anterior for maior que 100 metros, a sua actualização é actualizada no servidor.&lt;/p&gt;&lt;p style="text-align: justify; "&gt;Está a ser utilizado o protocolo XMPP para o envio da mensagem do terminal para o servidor. Esta mensagem consiste num campo IMEI (número de identificação único do terminal) e de dois campos, latitude e longitude. Optou-se pela utilização do serviço Openfire como servidor, pois facilita consideravelmente a sua configuração e possui uma interface web bastante intuitiva para a sua manipulação.&lt;/p&gt;&lt;p style="text-align: justify; "&gt;Sempre que o servidor recebe uma nova mensagem de um terminal, são validados os campos desta. É efectuada uma pesquisa na base de dados para determinar se o IMEI já se encontra presente. Caso afirmativo, a posição é refrescada; caso contrário, é criada uma nova entrada com o novo IMEI e as respectivas coordenadas.&lt;/p&gt;&lt;p style="text-align: justify; "&gt;A informação da localização de um determinado utilizador pode ser adquirida utilizando o RESTful web service criado para esse efeito. Para adquirir os dados me formato JSON, basta fazer um GET para&lt;/p&gt;&lt;p style="text-align: justify; "&gt;&lt;a href="http://localhost:8080/DriveMeGeoServerWeb/rest/restapi/imei=000000000000000&amp;amp;report=xml"&gt;http://localhost:8080/DriveMeGeoServerWe&lt;wbr /&gt;b/rest/restapi&lt;/a&gt;, onde localhost:8080 é o hostname do servidor. Por exemplo, para o IMEI 000000000000000, um acesso a &lt;a href="http://localhost:8080/DriveMeGeoServerWeb/rest/restapi/imei=000000000000000"&gt;http://localhost:8080/DriveMeGeoServerWe&lt;wbr /&gt;b/rest/restapi/imei=000000000000000&lt;/a&gt; resulta por defeito num objecto JSON com os respectivos dados. Caso se pretenda os formatos em formato XML, basta para isso acresentar &lt;i&gt;&amp;amp;report=xml.&lt;/i&gt;&lt;/p&gt;&lt;p style="text-align: justify; "&gt;Um possível futuro passo consiste em adicionar segurança a este tipo de pedidos, visto que desta forma basta o conhecimento do IMEI para a obtenção da localização.&lt;/p&gt;&lt;p style="text-align: justify; "&gt;&lt;a target="_blank" href="http://fotos.ua.sapo.pt/ol1seHe6HJj1qUJcot7C"&gt;&lt;img border="0" align="middle" style="border-color:black;" alt="" src="http://fotos.ua.sapo.pt/ol1seHe6HJj1qUJcot7C/340x255" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="text-align: justify; "&gt;Terminal adquire nova posição.&lt;/p&gt;&lt;p style="text-align: justify; "&gt; &lt;/p&gt;&lt;p style="text-align: justify; "&gt;&lt;a target="_blank" href="http://fotos.ua.sapo.pt:80/voLcHfPAtfBcpC9aiLv5"&gt;&lt;img width="320" height="38" border="0" style="border-color:black;" alt="" src="http://fotos.ua.sapo.pt:80/voLcHfPAtfBcpC9aiLv5/s320x240" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="text-align: justify; "&gt;Servidor actualiza a posição na base de dados MySQL.&lt;/p&gt;&lt;p style="text-align: justify; "&gt; &lt;/p&gt;&lt;p style="text-align: justify; "&gt;&lt;a target="_blank" href="http://fotos.ua.sapo.pt:80/wfUWry6zcVFNhKkKpifz"&gt;&lt;img width="450" height="43" border="0" style="border-color:black;" alt="" src="http://fotos.ua.sapo.pt/wfUWry6zcVFNhKkKpifz/450x43" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="text-align: justify; "&gt;Utilizando o web service para adquirir o objecto JSON.&lt;/p&gt;&lt;p style="text-align: justify; "&gt; &lt;/p&gt;&lt;p style="text-align: justify; "&gt;&lt;a target="_blank" href="http://fotos.ua.sapo.pt:80/8KSNBTEt4VslRf7PAbz1"&gt;&lt;img width="520" height="33" border="0" style="border-color:black;" alt="" src="http://fotos.ua.sapo.pt/8KSNBTEt4VslRf7PAbz1/520x33" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="text-align: justify; "&gt;Utilizando o web service para adquirir a localização em formato XML.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:blogs.ua.sapo.pt:atom1:driveme:1767</id>
    <author>
      <name>antonio-marcos</name>
    </author>
    <link rel="alternate" type="text/html" href="http://driveme.blogs.ua.sapo.pt/1767.html"/>
    <issued>2010-11-01T20:41:40</issued>
    <title>OpenIMS &amp;lt;-&amp;gt; Sailfin</title>
    <published>2010-11-01T20:55:03Z</published>
    <updated>2010-11-01T20:56:32Z</updated>
    <category term="sailfin media gateway open ims"/>
    <content type="html">&lt;p&gt;Neste momento já se conseguiu colocar o OpenIMS a redireccionar as mensagens SIP INVITE para o Sailfin, sendo assim possivel desviar a chamada para a Media Gateway.&lt;/p&gt;&lt;p&gt;&lt;a target="_blank" href="http://fotos.ua.sapo.pt:80/ZJpVuZuhVCBoNymWPocE"&gt;&lt;img border="0" alt="" style="border-color: black;" src="http://fotos.ua.sapo.pt:80/ZJpVuZuhVCBoNymWPocE/s320x240" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&amp;quot;Next steps:&amp;quot;&lt;/i&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;Redireccionar&lt;/i&gt; as chamadas para a Media Gateway (através de um SIP Servlet).&lt;/li&gt;&lt;li&gt;Fazer com que a Alice faça uma chamada e ouça uma maravilhosa melodia : )&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;António Pinho&lt;/p&gt;&lt;p&gt;Carlos Guimarães&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:blogs.ua.sapo.pt:atom1:driveme:1332</id>
    <author>
      <name>jmsmelo</name>
    </author>
    <link rel="alternate" type="text/html" href="http://driveme.blogs.ua.sapo.pt/1332.html"/>
    <issued>2010-10-21T16:58:55</issued>
    <title>Geo Localização - Cliente XMPP</title>
    <published>2010-10-21T15:58:58Z</published>
    <updated>2010-10-21T16:02:33Z</updated>
    <category term="gps android 2.2 smack xmpp"/>
    <content type="html">&lt;p&gt;Um dos requisitos para o sistema do DriveMe corresponde ao conhecimento da posição geográfica do utilizador num dado momento. Só assim será possível agregar a informação que realmente interessa, no que respeita à filtração de horários.&lt;/p&gt;&lt;p&gt;Foi escolhido o sistema operativo Android 2.2 para desenvolver esta aplicação visto ser OpenSource e facilitar o acesso ao hardware do dispositivo, neste caso o GPS. Para tal recorreu-se ao emulador disponível em &lt;a href="http://developer.android.com/sdk/index.html"&gt;http://developer.android.com/sdk/index.h&lt;wbr /&gt;tml&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Para a implementação optou-se pelo uso do protocolo XMPP para o envio das coordenadas, assim como do IMEI que permite associar ao dispositivo. A biblioteca utilizada foi a Smack. Numa primeira fase tentou-se sem sucesso o uso da biblioteca em &lt;a href="http://www.igniterealtime.org/projects/smack/"&gt;http://www.igniterealtime.org/projects/s&lt;wbr /&gt;mack/&lt;/a&gt;, mas pelos vistos é incompatível com o SO. Felizmente existe a biblioteca alterada ASmack (&lt;a href="http://code.google.com/p/asmack/"&gt;http://code.google.com/p/asmack/&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;Assim sendo, uma ligação ao &amp;quot;talk.google.com&amp;quot; é realizada com um id definido (neste caso uma conta GMail activa). São adquiridas as coordenadas e o IMEI, e colocadas numa string XML. Esta string é enviada posteriormente para o endereço destino.&lt;/p&gt;&lt;p&gt;Na imagem seguinte o emulador adquire a nova posição, e a mensagem é enviada logo de seguida para o chat do GMail.&lt;/p&gt;&lt;p style="text-align: center; "&gt;&lt;a target="_blank" href="http://fotos.ua.sapo.pt:80/mmHQAhUqBO6yu17ZHdOk"&gt;&lt;img border="0" align="middle" style="border-color:black;" alt="" src="http://fotos.ua.sapo.pt:80/mmHQAhUqBO6yu17ZHdOk/s320x240" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:blogs.ua.sapo.pt:atom1:driveme:1084</id>
    <author>
      <name>antonio-marcos</name>
    </author>
    <link rel="alternate" type="text/html" href="http://driveme.blogs.ua.sapo.pt/1084.html"/>
    <issued>2010-10-14T19:26:56</issued>
    <title>Estou? Hey Bob é a Alice!</title>
    <published>2010-10-14T18:27:02Z</published>
    <updated>2010-10-14T18:36:04Z</updated>
    <category term="open-ims"/>
    <category term="sip"/>
    <content type="html">&lt;p&gt;após algum esforÁo foi possÌvel finalmente efectuar uma chamada entre 2 clientes SIP IMS, com o open-ims core a correr.&lt;br /&gt;Foram utilizados 2 computadores ( um deles tinha uma máquina virtual a correr o open-ims ) e cada um deles tinha um cliente Sip IMS instalado ( MONSTER e Mercuro Bronze).&lt;br /&gt;No final a alice e o bob conseguiram falar um com o outro!&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;a target="_blank" href="http://fotos.ua.sapo.pt:80/UKzZTa4Rltv5kdzZfmc3"&gt;&lt;img border="0" alt="" style="border-color: black;" src="http://fotos.ua.sapo.pt:80/UKzZTa4Rltv5kdzZfmc3/s320x240" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt;Arquitectura&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;a target="_blank" href="http://fotos.ua.sapo.pt:80/Vn8QUVlTtlwzAWy5eOh6"&gt;&lt;img border="0" style="border-color: black;" alt="HoSS a correr" src="http://fotos.ua.sapo.pt:80/Vn8QUVlTtlwzAWy5eOh6/s320x240" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt;FHoSS a correr&lt;/p&gt;&lt;p style="text-align: center;"&gt; &lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;a target="_blank" href="http://fotos.ua.sapo.pt:80/p1YJ5EstTF1wZmNvBSQO"&gt;&lt;img border="0" alt="" style="border-color: black;" src="http://fotos.ua.sapo.pt:80/p1YJ5EstTF1wZmNvBSQO/s320x240" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt;Portal WEB de configuração do FHoSS&lt;/p&gt;&lt;p style="text-align: center;"&gt; &lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;a target="_blank" href="http://fotos.ua.sapo.pt:80/JksiKu2Bdv0K790SeHkZ"&gt;&lt;img border="0" alt="" style="border-color: black;" src="http://fotos.ua.sapo.pt:80/JksiKu2Bdv0K790SeHkZ/s320x240" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt;ICSCF a correr&lt;/p&gt;&lt;p style="text-align: center;"&gt; &lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;a target="_blank" href="http://fotos.ua.sapo.pt:80/jeRZoJBevli4LyJ1zDKN"&gt;&lt;img border="0" alt="" style="border-color: black;" src="http://fotos.ua.sapo.pt:80/jeRZoJBevli4LyJ1zDKN/s320x240" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt;PCSCF a correr&lt;/p&gt;&lt;p style="text-align: center;"&gt; &lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;a target="_blank" href="http://fotos.ua.sapo.pt:80/qgsN5TBoA7cusywlFt1S"&gt;&lt;img border="0" alt="" style="border-color: black;" src="http://fotos.ua.sapo.pt:80/qgsN5TBoA7cusywlFt1S/s320x240" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt;SCSCF a correr&lt;/p&gt;&lt;p style="text-align: center;"&gt; &lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;a target="_blank" href="http://fotos.ua.sapo.pt:80/pFKPbgBA8Oa5CsCmo7R5"&gt;&lt;img border="0" alt="" style="border-color: black;" src="http://fotos.ua.sapo.pt:80/pFKPbgBA8Oa5CsCmo7R5/s320x240" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt;Mercuro com a chamada já estabelecida&lt;/p&gt;&lt;p style="text-align: center;"&gt; &lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;a target="_blank" href="http://fotos.ua.sapo.pt:80/fZgzRyYzmmYOlt4ORzBI"&gt;&lt;img border="0" alt="" style="border-color: black;" src="http://fotos.ua.sapo.pt:80/fZgzRyYzmmYOlt4ORzBI/s320x240" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt;MONSTER a receber o pedido de chamada&lt;/p&gt;&lt;p style="text-align: center;"&gt; &lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;a target="_blank" href="http://fotos.ua.sapo.pt:80/mDQ162zmBa8kuw18vQ9c"&gt;&lt;img border="0" alt="" style="border-color: black;" src="http://fotos.ua.sapo.pt:80/mDQ162zmBa8kuw18vQ9c/s320x240" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt;MONSTER com a chamada estabelecida&lt;/p&gt;&lt;p style="text-align: left;"&gt;&lt;br /&gt;António Pinho&lt;/p&gt;&lt;p style="text-align: left;"&gt;Carlos Guimarães&lt;br /&gt; &lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:blogs.ua.sapo.pt:atom1:driveme:946</id>
    <author>
      <name>jmsmelo</name>
    </author>
    <link rel="alternate" type="text/html" href="http://driveme.blogs.ua.sapo.pt/946.html"/>
    <issued>2010-10-04T12:40:16</issued>
    <title>Equipa e atribuição de tarefas</title>
    <published>2010-10-04T11:41:16Z</published>
    <updated>2010-10-04T11:44:04Z</updated>
    <content type="html">&lt;p style="text-align: justify; "&gt;&lt;span style="font-size: small; "&gt;&lt;span style="font-family: Verdana; "&gt;Para a elaboração deste projecto, foi constituída a seguinte equipa:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; "&gt;&lt;span style="font-size: small; "&gt;&lt;span style="font-family: Verdana; "&gt;&lt;span class="Apple-style-span" style="color: rgb(102, 102, 102); line-height: 25px; "&gt;Serviço de chamadas - Carlos Guimarães e António Pinho; &lt;br /&gt;Geo-localização - José Melo; &lt;br /&gt;Serviços SMS - Diogo Teles; &lt;br /&gt;Consulta dos horários dos autocarros (Scrapper) - Linda Velte.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:blogs.ua.sapo.pt:atom1:driveme:680</id>
    <author>
      <name>jmsmelo</name>
    </author>
    <link rel="alternate" type="text/html" href="http://driveme.blogs.ua.sapo.pt/680.html"/>
    <issued>2010-10-04T12:38:57</issued>
    <title>Arquitectura do Sistema</title>
    <published>2010-10-04T11:39:49Z</published>
    <updated>2010-10-04T11:39:49Z</updated>
    <content type="html">&lt;p&gt; &lt;img border="0" style="border-color:black;" alt="" src="http://img689.imageshack.us/img689/1199/45860233.png" /&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:blogs.ua.sapo.pt:atom1:driveme:315</id>
    <author>
      <name>jmsmelo</name>
    </author>
    <link rel="alternate" type="text/html" href="http://driveme.blogs.ua.sapo.pt/315.html"/>
    <issued>2010-10-04T12:36:19</issued>
    <title>Hello World</title>
    <published>2010-10-04T11:38:45Z</published>
    <updated>2010-10-04T11:43:49Z</updated>
    <content type="html">&lt;p style="text-align: justify; "&gt;&lt;span style="font-size: small; "&gt;&lt;span style="font-family: Verdana; "&gt; &lt;span class="Apple-style-span" style="color: rgb(102, 102, 102); line-height: 22px; "&gt;&amp;ldquo;DriveMe&amp;rdquo; um projecto a ser desenvolvido na cadeira de &amp;quot;Engenharia de Serviços&amp;quot;. Este projecto tem como objectivo facilitar o acesso a transportes públicos por pessoas invisuais. Para apresentar este serviço e a sua arquitectura foi feita uma pequena apresentação, onde são apresentados os objectivos, a arquitectura e os serviços da solução encontrada:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; "&gt; &lt;/p&gt; &lt;p&gt;&lt;img style="visibility:hidden;width:0px;height:0px;" border="0" width="0" height="0" alt="" src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bT*xJmx*PTEyODYxOTIyNzMwODYmcHQ9MTI4NjE5MjI3NTQzNCZwPTEwMTkxJmQ9c3NfZW1iZWQmZz*yJm89NzkyZmM4NTFhM2E4/NGE2MmE1YWMwMmMwOTFhMjNkMTQmb2Y9MA==.gif" /&gt;&lt;/p&gt;&lt;div style="width:425px" id="__ss_5298373"&gt;&lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a title="DriveMe" href="http://www.slideshare.net/blightcutter/driveme"&gt;DriveMe&lt;/a&gt;&lt;/strong&gt;&lt;object id="__sse5298373" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=engservios-100927120248-phpapp02&amp;amp;stripped_title=driveme&amp;amp;userName=blightcutter" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;embed name="__sse5298373" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=engservios-100927120248-phpapp02&amp;amp;stripped_title=driveme&amp;amp;userName=blightcutter" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="padding:5px 0 12px"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/blightcutter"&gt;Diogo&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;</content>
  </entry>
</feed>
