tag:blogger.com,1999:blog-360953442024-03-14T11:15:11.764-03:00Mobidéia: Idéias & MobilidadeRepositório de idéias, projetos e alguns "delírios" durante essa vida pessoal,acadêmica e profissional de Marcel Caraciolomarcelcaraciolohttp://www.blogger.com/profile/03000508520057818811noreply@blogger.comBlogger820125tag:blogger.com,1999:blog-36095344.post-78409935940508966272012-06-19T13:51:00.001-03:002012-06-19T13:51:34.148-03:00Slides das Palestra Novas tendências para a Educação a Distância<div style="text-align: justify;">
Olá pessoal,</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Semana passada tive a oportunidade de apresentar 2 palestras a convite do CITI (Empresa Júnior do Centro de Informática) e do PET (Programa Educação para Todos) no Centro de Informática da UFPE. </div>
<br />
<div style="text-align: justify;">
<span style="background-color: white;">Ambas palestras focaram sobre educação à distância e como está sendo reconstruída a educação atualmente por meio da tecnologia e novas tendências. Esta é uma das áreas que trabalho hoje em conjunto com a empresa focada na área de ensino <a href="http://www.atepassar.com/">Atépassar</a>, e também como co-fundador da startup <a href="http://www.pycursos.com/">PyCursos</a> (ensinando Python à distância) e a nova recém-criada <a href="http://draft.blogger.com/www.pingmind.com">PingMind</a> que focará no ensino de vários formatos à distância.</span></div>
<br />
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Deixo os disponível os slides apresentados durante as minhas palestras. Quero agradecer aos organizadores pela oportunidade e espaço.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Abaixo link do <a href="http://www.slideshare.net/marcelcaraciolo/novas-tendencias-para-a-educacao-a-distancia-como-reinventar-a-educacao">slides</a></div>
<br />
<center><div id="__ss_13381833" style="width: 425px;">
<strong style="display: block; margin: 12px 0 4px;"><a href="http://www.slideshare.net/marcelcaraciolo/novas-tendencias-para-a-educacao-a-distancia-como-reinventar-a-educacao" title="Novas Tendências para a Educação a Distância: Como reinventar a educação ?">Novas Tendências para a Educação a Distância: Como reinventar a educação ?</a></strong><object height="355" id="__sse13381833" width="425"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=aptpeteducacao-120619113104-phpapp01&stripped_title=novas-tendencias-para-a-educacao-a-distancia-como-reinventar-a-educacao&userName=marcelcaraciolo" />
<param name="allowFullScreen" value="true"/>
<param name="allowScriptAccess" value="always"/>
<param name="wmode" value="transparent"/>
<embed name="__sse13381833" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=aptpeteducacao-120619113104-phpapp01&stripped_title=novas-tendencias-para-a-educacao-a-distancia-como-reinventar-a-educacao&userName=marcelcaraciolo" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" width="425" height="355"></embed></object><br />
<div style="padding: 5px 0 12px;">
View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/marcelcaraciolo">Marcel Caraciolo</a>.</div>
</div>
</center>
<br />
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Atenciosamente,<br />
<br />
Marcel</div>marcelcaraciolohttp://www.blogger.com/profile/03000508520057818811noreply@blogger.com0tag:blogger.com,1999:blog-36095344.post-40205320541122214782012-03-23T03:09:00.001-03:002012-03-23T03:13:33.639-03:00Autenticação com Django + Foursquare + OAuth com PyFoursquare<br />
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.625em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;">
Há algum tempo por fins de experimentos no meu mestrado, eu desenvolvi um cliente para consumir a API do Foursquare em Python. O nome do projeto é <b>PyFoursquare</b> e está hospedado como projeto open-source no <a href="https://github.com/marcelcaraciolo/foursquare">Github</a>.</div>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.625em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;">
Recentemente um amigo me perguntou se era possível fazer o processo de autenticação/login via web em vez de ser realizado via console. Ainda não era! Mas então aceitei o desafio e após 2 horas construi uma aplicação web bem simples usando python + django + foursquare + pyfoursquare :D</div>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.625em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;">
Para aqueles que procuram algum guia ou exemplo este pode ser um excelente ponto de partida. </div>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.625em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;">
Para usar é muito simples:</div>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.625em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;">
<a href="https://foursquare.com/oauth/">Crie uma aplicação no Foursquare </a> e obtenha seu Client ID e seu Client Secret. É importante que a url de callback seja agora a url local da sua máquina de desenvolvimento ( no meu caso como uso django a url padrão é o http://localhost:8000/callback )</div>
<div class="separator" style="clear: both; text-align: center;">
<a class="cboxElement" href="http://martinjc.com/wp-content/uploads/2011/09/Foursquare-Register.jpg" rel="lightbox[416]" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-size: 15px; font-style: inherit; margin-left: 1em; margin-right: 1em; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;" title="Foursquare - Register an application"><img alt="Form to register an application" class="size-medium wp-image-418" height="232" src="http://martinjc.com/wp-content/uploads/2011/09/Foursquare-Register-300x174.jpg" style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(238, 238, 238); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(238, 238, 238); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(238, 238, 238); border-top-style: solid; border-top-width: 1px; display: block; height: auto; margin-bottom: 0px; margin-left: auto; margin-right: auto; margin-top: 0px; max-width: 98%; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: center;" title="Foursquare - Register an application" width="400" /></a><span style="background-color: white; color: #666666; font-family: Georgia, serif; font-size: 12px; font-style: inherit; line-height: 24px;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="background-color: white; color: #666666; font-size: 12px; font-style: inherit;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="background-color: white; color: #666666; font-size: 12px; font-style: inherit;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="color: #666666;"><span style="font-size: 12px;"><br /></span></span></div>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.625em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;">
Uma observação importante é que o formulário de validação não permite usar o caractere ':' na sua url de callback. Mas uma vez que sua app esteja registrada, você pode editar a url e adicionar o :8000, visto que o formulário não valida a atualização. A sua url irá ficar como algo abaixo:</div>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.625em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;">
<a class="cboxElement" href="http://martinjc.com/wp-content/uploads/2011/09/CapturFiles.jpg" rel="lightbox[416]" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-size: 15px; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;" title="Registered consumer with correct callback url"><img alt="" class="alignnone size-medium wp-image-419" height="51" src="http://martinjc.com/wp-content/uploads/2011/09/CapturFiles-300x51.jpg" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; height: auto; margin-top: 0.4em; max-width: 97.5%; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px;" title="Registered consumer with correct callback url" width="300" /></a></div>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.625em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">
<span style="font-size: 15px;">Agora basta acessar os exemplos disponíveis na pasta examples/django. Ele já fornece toda a app pronta em django com algumas views, algumas páginas simples html , uma para login e uma para quando estiver logado.</span></div>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.625em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">
<span style="font-size: 15px;">O que você precisa fazer é, primeiramente rodar o comando abaixo:</span></div>
<pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 13px; line-height: 1.5; margin-bottom: 1.625em; outline-color: initial; outline-style: initial; outline-width: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 0.75em; padding-left: 1.625em; padding-right: 1.625em; padding-top: 0.75em; vertical-align: baseline;">python manage.py syncdb</pre>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.625em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">
Feito isso ele criará algumas tabelas para armazenar as sessões das requisições da sua app web. Isto será armazenado em um mini-banco de dados local que Python suporta nativamente em Sqlite3 :D</div>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.625em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">
Agora abra o settings.py e adicione no final do arquivo os campos:</div>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;">
<span style="font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;"><span style="line-height: 17px;"><br /></span></span></div>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">
<div class="syntaxhighlighter python" id="highlighter_279258" style="background-color: white !important; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 1em !important; font-style: inherit; margin-bottom: 1em !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 1em !important; outline-color: initial; outline-style: initial; outline-width: 0px; overflow-x: auto !important; overflow-y: hidden !important; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; position: relative !important; vertical-align: baseline; width: 584px;">
<table border="0" cellpadding="0" cellspacing="0" style="-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-color: initial; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-style: initial; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: 584px;"><tbody style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-color: initial; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-style: initial; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-color: initial; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-style: initial; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="gutter" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-color: initial; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-style: initial; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><div class="line number1 index0 alt2" style="background-attachment: initial !important; background-clip: initial !important; background-color: white !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-color: initial; border-image: initial !important; border-left-width: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-right-width: 3px !important; border-style: initial !important; border-style: initial; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 1em !important; padding-right: 0.5em !important; padding-top: 0px !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;">
1</div>
<div class="line number2 index1 alt1" style="background-attachment: initial !important; background-clip: initial !important; background-color: white !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-color: initial; border-image: initial !important; border-left-width: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-right-width: 3px !important; border-style: initial !important; border-style: initial; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 1em !important; padding-right: 0.5em !important; padding-top: 0px !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;">
2</div>
<div class="line number3 index2 alt2" style="background-attachment: initial !important; background-clip: initial !important; background-color: white !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-color: initial; border-image: initial !important; border-left-width: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-right-width: 3px !important; border-style: initial !important; border-style: initial; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 1em !important; padding-right: 0.5em !important; padding-top: 0px !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;">
3</div>
<div class="line number4 index3 alt1" style="background-attachment: initial !important; background-clip: initial !important; background-color: white !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-color: initial; border-image: initial !important; border-left-width: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-right-width: 3px !important; border-style: initial !important; border-style: initial; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 1em !important; padding-right: 0.5em !important; padding-top: 0px !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;">
4</div>
<div class="line number5 index4 alt2" style="background-attachment: initial !important; background-clip: initial !important; background-color: white !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-color: initial; border-image: initial !important; border-left-width: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-right-width: 3px !important; border-style: initial !important; border-style: initial; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 1em !important; padding-right: 0.5em !important; padding-top: 0px !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;">
5</div>
<div class="line number6 index5 alt1" style="background-attachment: initial !important; background-clip: initial !important; background-color: white !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-color: initial; border-image: initial !important; border-left-width: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-right-width: 3px !important; border-style: initial !important; border-style: initial; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 1em !important; padding-right: 0.5em !important; padding-top: 0px !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;">
6</div>
</td><td class="code" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-color: initial; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-style: initial; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: 551px;"><div class="container" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-color: initial; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-style: initial; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: relative !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<div class="line number1 index0 alt2" style="background-attachment: initial !important; background-clip: initial !important; background-color: white !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-color: initial; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-style: initial; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 1em !important; padding-right: 1em !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;">
<code class="python plain" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-color: initial; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-style: initial; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">FOURSQUARE_CLIENT_ID </code><code class="python keyword" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-color: initial; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-style: initial; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">=</code> <code class="python string" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-color: initial; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-style: initial; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: blue !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">'YOUR_CLIENT_ID'</code></div>
<div class="line number2 index1 alt1" style="background-attachment: initial !important; background-clip: initial !important; background-color: white !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-color: initial; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-style: initial; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 1em !important; padding-right: 1em !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;">
<code class="python plain" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-color: initial; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-style: initial; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">FOURSQUARE_CLIENT_SECRET </code><code class="python keyword" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-color: initial; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-style: initial; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">=</code> <code class="python string" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-color: initial; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-style: initial; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: blue !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">'YOUR_CLIENT_SECRET'</code></div>
<div class="line number2 index1 alt1" style="background-attachment: initial !important; background-clip: initial !important; background-color: white !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-color: initial; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-style: initial; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 1em !important; padding-right: 1em !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;">
FOURSQUARE_CALLBACK = <span style="background-color: initial; color: blue; font-size: 1em; font-style: inherit; line-height: 1.1em;">'</span><a href="http://127.0.0.1:8000/foursq_auth/callback" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-color: initial; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-style: initial; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: blue !important; direction: ltr !important; float: none !important; font-size: 1em !important; font-style: inherit; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; text-decoration: none; top: auto !important; vertical-align: baseline !important; width: auto !important;">http://127.0.0.1:8000/callback</a><span style="background-color: initial; color: blue; font-size: 1em; font-style: inherit; line-height: 1.1em;">'</span></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.625em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">
<span style="font-size: 15px;">Se você abrir o arquivo djfoursquare/views.py , você verá toda a lógica relacionada ao processo de autenticação utilizando já a api do PyFoursquare com OAuth2 .</span></div>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.625em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">
<span style="font-size: 15px;">Vamos agora rodar o servidor web com:</span></div>
<pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 13px; line-height: 1.5; margin-bottom: 1.625em; outline-color: initial; outline-style: initial; outline-width: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 0.75em; padding-left: 1.625em; padding-right: 1.625em; padding-top: 0.75em; vertical-align: baseline;">python manage.py runserver</pre>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.625em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">
Abra seu browser na página http://localhost:8000</div>
<div class="wp-caption alignnone" id="attachment_420" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 24px; margin-bottom: 1.625em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em; max-width: 96%; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 9px; padding-left: 9px; padding-right: 9px; padding-top: 9px; vertical-align: baseline; width: 310px;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_7-YpRDpEILLPDQOUmpOSU-TXo6Sfh326cT2Ps2EA8OkafunCGKYTtYH168UualTCDLuAmmHAsfzv2jaTZTnclPulh032blIQ0xMERLUXLp37MI4qxX8JhTw1zOjd043CD6S1/s1600/Screen+shot+2012-03-23+at+2.37.48+AM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="108" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_7-YpRDpEILLPDQOUmpOSU-TXo6Sfh326cT2Ps2EA8OkafunCGKYTtYH168UualTCDLuAmmHAsfzv2jaTZTnclPulh032blIQ0xMERLUXLp37MI4qxX8JhTw1zOjd043CD6S1/s320/Screen+shot+2012-03-23+at+2.37.48+AM.png" width="320" /></a></div>
<span style="color: #666666; font-family: Georgia, serif;"><span style="font-size: 12px;"><br /></span></span></div>
<div class="wp-caption alignnone" id="attachment_427" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.625em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em; max-width: 96%; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 9px; padding-left: 9px; padding-right: 9px; padding-top: 9px; vertical-align: baseline; width: 310px;">
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a class="cboxElement" href="http://martinjc.com/wp-content/uploads/2011/09/foursquare-approval1.jpg" rel="lightbox[416]" style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-size: 15px; font-style: inherit; margin-left: 1em; margin-right: 1em; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;" title="Foursquare Approval"><img alt="" class="size-medium wp-image-427" height="185" src="http://martinjc.com/wp-content/uploads/2011/09/foursquare-approval1-300x185.jpg" style="border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(238, 238, 238); border-left-width: 1px; border-right-color: rgb(238, 238, 238); border-right-width: 1px; border-style: initial; border-top-color: rgb(238, 238, 238); border-top-style: solid; border-top-width: 1px; display: block; height: auto; margin-bottom: 0px; margin-left: auto; margin-right: auto; margin-top: 0px; max-width: 98%; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px;" title="Foursquare Approval" width="300" /></a></div>
</div>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.625em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0lMVYUgBISmA0YtbyGUIwpvTk2pvUojkADwWxsLjhe1SsfPcWWrAjScN5LYGEiFnWH0w3Ad1VDJvANbbrJzg-H82U8bn6E7S1ThT9DM2S6DXbYUlOb0ENinPydMhcDHz6rshr/s1600/Screen+shot+2012-03-23+at+2.37.56+AM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="119" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0lMVYUgBISmA0YtbyGUIwpvTk2pvUojkADwWxsLjhe1SsfPcWWrAjScN5LYGEiFnWH0w3Ad1VDJvANbbrJzg-H82U8bn6E7S1ThT9DM2S6DXbYUlOb0ENinPydMhcDHz6rshr/s320/Screen+shot+2012-03-23+at+2.37.56+AM.png" width="320" /></a></div>
<div style="text-align: justify;">
<span style="font-size: 15px;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: 15px;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: 15px;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: 15px;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: 15px;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: 15px;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: 15px;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: 15px;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: 15px;">E é isto pessoal, uma simples app web com uma simples autenticação OAuth com Foursquare usando a biblioteca PyFoursquare. O código está completo no <a href="https://github.com/marcelcaraciolo/foursquare">github</a> se quiser dar uma olhada mais profunda!</span></div>
</div>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.625em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">
Até a próxima,</div>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.625em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">
Marcel Caraciolo</div>marcelcaraciolohttp://www.blogger.com/profile/03000508520057818811noreply@blogger.com0tag:blogger.com,1999:blog-36095344.post-16745756980912911792012-01-28T18:17:00.000-03:002012-01-28T18:17:13.742-03:00Slides das minhas palestras no XVIII Encontro do PUG-PEOlá pessoal,<br />
<br />
Estou disponibilizando minhas apresentações realizadas durante o XVIII Encontro do Grupo de Usuários de Python de Pernambuco.<br />
<br />
Uma lighting talk sobre a plataforma PyCursos, que é uma plataforma de ensino à distância para cursos e treinamentos em Python e suas aplicações.<br />
<br />
<a href="http://www.slideshare.net/marcelcaraciolo/pycursos-cursos-treinamento-com-python">Slides</a>
<br />
<br />
<br />
<br />
<center><div id="__ss_11312947" style="width: 425px;">
<strong style="display: block; margin: 12px 0 4px;"><a href="http://www.slideshare.net/marcelcaraciolo/pycursos-cursos-treinamento-com-python" target="_blank" title="PyCursos: Cursos & Treinamento com Python">PyCursos: Cursos & Treinamento com Python</a></strong> <iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/11312947" width="425"></iframe> <br />
<div style="padding: 5px 0 12px;">
View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/marcelcaraciolo" target="_blank">Marcel Caraciolo</a> <br />
<br />
<br /></div>
</div>
</center><br />
<div style="text-align: justify;">
A outra palestra foi sobre PyFoursquare, que é uma biblioteca em Python para acesso à API da rede social de localização móvel Foursquare. Apresentei as principais características da biblioteca em desenvolvimento e futuros release. Projeto open-source sobre licença MIT.</div>
<div style="text-align: justify;">
<br /></div>
<div>
<a href="PyFoursquare:%20Python%20Library%20for%20Foursquare">Slides</a></div>
<div>
<br /></div>
<div>
<br /></div>
<br />
<br />
<center><div id="__ss_11313022" style="width: 425px;">
<strong style="display: block; margin: 12px 0 4px;"><a href="http://www.slideshare.net/marcelcaraciolo/pyfoursquare-python-library-for-foursquare-11313022" target="_blank" title="PyFoursquare: Python Library for Foursquare">PyFoursquare: Python Library for Foursquare</a></strong> <iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/11313022" width="425"></iframe> <br />
<div style="padding: 5px 0 12px;">
View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/marcelcaraciolo" target="_blank">Marcel Caraciolo</a> </div>
</div>
</center><div>
<br /></div>
Atenciosamente,<br />
<div>
<br /></div>
<div>
Marcel Caraciolo</div>marcelcaraciolohttp://www.blogger.com/profile/03000508520057818811noreply@blogger.com0tag:blogger.com,1999:blog-36095344.post-87796165774218413282011-12-07T19:29:00.001-03:002011-12-07T19:40:16.488-03:00Curso de Computação Científica com Python - PyCursos online!Olá pessoal,<br />
<br />
<div style="text-align: justify;">
Estou anunciando o lançamento do site <b>PyCursos</b>. O <b>PyCursos</b> será uma plataforma de cursos e treinamentos na área de computação que usa linguagem de programação Python. O primeiro curso já está sendo anunciado que é o curso de<b> computação científica com Python</b>, o qual serei instrutor.</div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJqbg2rjDqyaE-tzbtiYzu3PJ0tJJD5bb2_mHYUUTQ4taii6mnbjk6KhdIuD1mgN5M4l7bLIJRfYiWsAaaqPU9TxJm7uvr8Hb5yX0urY3FvNpZPcNnhiq5Y0qkFD_j9VYFvHyh/s1600/Screen+shot+2011-12-07+at+7.36.52+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="141" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJqbg2rjDqyaE-tzbtiYzu3PJ0tJJD5bb2_mHYUUTQ4taii6mnbjk6KhdIuD1mgN5M4l7bLIJRfYiWsAaaqPU9TxJm7uvr8Hb5yX0urY3FvNpZPcNnhiq5Y0qkFD_j9VYFvHyh/s400/Screen+shot+2011-12-07+at+7.36.52+PM.png" width="400" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
O objetivo do curso é poder ensinar computação científica, especificamente como resolver problemas científicos do seu dia-a-dia por meio das ferramentas que Python dispõe gratuitamente: <b>Scipy, Numpy e Matplotlib.</b></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Com estas ferramentas, o aluno irá aprender como transcrever seus problemas em um código simples e legível e utilizar de ferramentas auxiliares para plotagem de resultados, relatórios, otimização de problemas matemáticas, manipulação de matrizes, algebra linear e muito mais.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
O pré-requisito para o curso é apenas o aluno ter boa vontade e já ter alguma experiência com programação. O curso será inicializado em janeiro na modalidade on-line, onde alunos poderão se inscrever e acompanhar por meio de video-aulas e exercícios regulares todo o curso de computação científica. Temos também a opção de treinamento físico, onde o aluno comparece à uma sala de aula com outros alunos e acompanha as minhas aulas como instrutor. Em ambos os casos os alunos ganharão um certificado no final do curso por completar toda a carga horária.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Para mais informações acesse o site : <a href="http://www.pycursos.com/">http://www.pycursos.com</a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Quem quiser saber mais sobre computação científica com Python, chequem os <a href="http://www.slideshare.net/marcelcaraciolo/computao-cientfica-com-python-numpy-e-scipy">slides</a> de uma palestra que ministrei em algumas instituições daqui de Recife-Pernambuco.<br />
<br /></div>
<br />
<center><div id="__ss_9123741" style="width: 425px;">
<strong style="display: block; margin: 12px 0 4px;"><a href="http://www.slideshare.net/marcelcaraciolo/computao-cientfica-com-python-numpy-e-scipy" target="_blank" title="Computação Científica com Python, Numpy e Scipy">Computação Científica com Python, Numpy e Scipy</a></strong> <iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/9123741" width="425"></iframe> <br />
<div style="padding: 5px 0 12px;">
View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/marcelcaraciolo" target="_blank">Marcel Caraciolo</a> </div>
</div>
</center>
<br />
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br />
Atenciosamente,</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Marcel Caraciolo</div>
<div style="text-align: justify;">
<br /></div>marcelcaraciolohttp://www.blogger.com/profile/03000508520057818811noreply@blogger.com0tag:blogger.com,1999:blog-36095344.post-86717639968762771812011-11-23T03:46:00.001-03:002011-11-23T03:53:12.121-03:00Convite Para Palestra sobre Sistemas de Recomendação no I Eslape em Caruaru, Pernambuco<div style="text-align: justify;">
Olá pessoal,</div>
<br />
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Estarei nesta sexta-feira apresentando no<a href="http://www.eslape.org/"> I Encontro de Software Livre do Agreste de Pernambuco</a> (ESLAPE) sobre sistemas de recomendações usando o framework open-source que venho trabalhando chamado <a href="http://muricoca.github.com/crab">Crab</a>.</div>
<br />
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Para os interessados , o evento será realizado em Caruaru Pernambuco e a <b>minha palestra marcada na sexta-feira (26 de novembro de 2011 a partir das 13:00 na Sala Juarez Santiago)</b>. Conto com a presença de todos interessados em aprender aprendizagem de máquina, inteligência artificial, mineração de dados e sistemas de recomendação com a linguagem de programação Python!</div>
<div style="text-align: justify;">
<br /></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.eslape.org/sites/all/themes/freethemes4you_travel_07/images/cabecalho_01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="99" src="http://www.eslape.org/sites/all/themes/freethemes4you_travel_07/images/cabecalho_01.png" width="640" /></a></div>
<br />
<br />
<br />
<h2 class="art-postheader" style="background-color: #dcdcce; color: #444431; font-family: 'Century Gothic', Arial, Helvetica, sans-serif; font-size: 24px; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
Local do evento</h2>
<div class="art-postcontent" style="background-color: #dcdcce; color: #444431; font-family: 'Century Gothic', Arial, Helvetica, sans-serif; font-size: 13px; text-align: left;">
<div class="art-article">
<div style="margin-bottom: 12px; margin-top: 12px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="font-size: small;"><strong>Localização da Faculdade de Filosofia, Ciências e Letras de Caruaru (FAFICA)</strong></span>Rua Azevedo Coutinho, S/N, Petrópolis<br />Caruaru - Pernambuco - Brasil<br />CEP: 55.030-902<br />Telefone: (81) 2103-3900<br /><a href="http://www.fafica.com/" style="color: #656549; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank" title="FAFICA">http://www.fafica.com</a></div>
</div>
</div>marcelcaraciolohttp://www.blogger.com/profile/03000508520057818811noreply@blogger.com0tag:blogger.com,1999:blog-36095344.post-88001308816208592312011-10-21T23:31:00.000-03:002011-10-21T23:31:11.689-03:00Slides da Palestra sobre Recomendações de Conteúdo em Redes Sociais EducativasOlá pessoal,<br />
<br />
<div style="text-align: justify;">
Hoje tive a oportunidade de ministrar uma palestra ( a convite do meu colega Péricles Miranda) no<a href="http://dsc.upe.br/~sec/"> X Seminário de Engenharia da Computação </a>(SEC) na Escola Politécnica de Pernambuco (POLI), minha antiga universidade o qual me graduei. Foi um bom bate-papo com os estudantes presentes sobre sistemas de recomendação, área de minha pesquisa que realizei no meu mestrado e pretendo continuar meus estudos.</div>
<br />
Deixo os <a href="http://www.slideshare.net/marcelcaraciolo/recomendao-de-contedo-para-redes-sociais-educativas">slides</a> disponíveis da palestra:<br />
<br />
<center><div id="__ss_9820572" style="width: 425px;">
<strong style="display: block; margin: 12px 0 4px;"><a href="http://www.slideshare.net/marcelcaraciolo/recomendao-de-contedo-para-redes-sociais-educativas" target="_blank" title="Recomendação de Conteúdo para Redes Sociais Educativas">Recomendação de Conteúdo para Redes Sociais Educativas</a></strong> <iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/9820572" width="425"></iframe> <br />
<div style="padding: 5px 0 12px;">
View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/marcelcaraciolo" target="_blank">Marcel Caraciolo</a> </div>
</div>
</center>
<br />
<br />
<div style="text-align: justify;">
O trabalho foca na construção de sistemas de recomendação para redes sociais educativas. O fruto deste trabalho foi contemplado na rede social para concurseiros <a href="http://atepassar.com/">Atépassar</a>, considerado hoje como a maior rede social brasileira para estudantes de concursos públicos. Recomendo a visita!</div>
<div style="text-align: justify;">
<br /></div>
<br />
Atenciosamente,<br />
<br />
Marcel Caraciolomarcelcaraciolohttp://www.blogger.com/profile/03000508520057818811noreply@blogger.com0tag:blogger.com,1999:blog-36095344.post-41830342299200884162011-10-04T23:56:00.002-03:002011-10-04T23:56:30.233-03:00Workshop de Python em Sergipe na UFS!<span class="Apple-style-span" style="background-color: white; color: #424037; font-family: Arial, Helvetica, sans-serif; font-size: 10px;"></span><br />
<header style="display: block; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 5px; width: 655px;"><h1 class="post-title" id="" style="float: left; font-size: 22px; letter-spacing: -1px; line-height: 1em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 12px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; width: 500px;">
<a href="http://pythonsergipe.posterous.com/pages/workshop" style="color: #444444; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"><br class="Apple-interchange-newline" />Workshop</a> de Python em Sergipe - Compareçam!</h1>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div class="editbox" style="height: 16px; left: 155px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; position: absolute; top: 0px; visibility: visible;">
</div>
</header><div class="body" style="display: inline; float: right; font-size: 1.2em; line-height: 1.8em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; width: 500px;">
<div class="inner" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<div style="margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</div>
<div class="posterousGalleryMainDiv p_embed p_image_embed" data-posterous-file-list="%5B%7B%22large%22%3A%22http%3A%2F%2Fposterous.com%2Fgetfile%2Ffiles.posterous.com%2Ftemp-2011-09-20%2FunAAgcogxbIkIxtEmJBBeJJcoccacBcujabcGDeGvJGCqvIuldrACzreoqyD%2Fbanner-workshop-python_0.png%22%2C%22originalWidth%22%3A%22468%22%2C%22largeWidth%22%3A%22468%22%2C%22thumb%22%3A%22http%3A%2F%2Fposterous.com%2Fgetfile%2Ffiles.posterous.com%2Ftemp-2011-09-20%2FunAAgcogxbIkIxtEmJBBeJJcoccacBcujabcGDeGvJGCqvIuldrACzreoqyD%2Fbanner-workshop-python_0.png.thumb.png%22%2C%22originalHeight%22%3A%22240%22%2C%22largeHeight%22%3A%22240%22%2C%22thumbWidth%22%3A%2236%22%2C%22height%22%3A%22240%22%2C%22main%22%3A%22http%3A%2F%2Fposterous.com%2Fgetfile%2Ffiles.posterous.com%2Ftemp-2011-09-20%2FunAAgcogxbIkIxtEmJBBeJJcoccacBcujabcGDeGvJGCqvIuldrACzreoqyD%2Fbanner-workshop-python_0.png.scaled500.png%22%2C%22thumbHeight%22%3A%2236%22%2C%22originalSize%22%3A%2247%22%2C%22original%22%3A%22http%3A%2F%2Fposterous.com%2Fgetfile%2Ffiles.posterous.com%2Ftemp-2011-09-20%2FunAAgcogxbIkIxtEmJBBeJJcoccacBcujabcGDeGvJGCqvIuldrACzreoqyD%2Fbanner-workshop-python_0.png%22%2C%22width%22%3A%22468%22%7D%5D" data-posterous-image-gallery-initialized="true" data-posterous-image-gallery="true" data-posterous-options="%7B%22zipFile%22%3Anull%2C%22zipFileSize%22%3Anull%2C%22external_url%22%3Anull%2C%22showDownload%22%3Atrue%2C%22url_slug%22%3Anull%7D" style="margin-bottom: 15px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<img alt="Banner-workshop-python_0" height="240" src="http://posterous.com/getfile/files.posterous.com/temp-2011-09-20/unAAgcogxbIkIxtEmJBBeJJcoccacBcujabcGDeGvJGCqvIuldrACzreoqyD/banner-workshop-python_0.png.scaled500.png" style="border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" width="468" /></div>
<div style="margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</div>
<div style="margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<strong style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="color: navy; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Este workshop é parte da edição 2011 da Semana de Computação da Universidade Federal de Sergipe. Informações detalhadas sobre inscrições podem ser encontradas no <a href="http://www.secompufs.com/" style="color: #bc7134; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;">site do evento</a>.</span></strong></div>
<div style="margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
Para quem não conhece ou deseja aprofundar seus conhecimentos na linguagem Python, esta é uma excelente oportunidade para conhecer essa plataforma, considerada a que teve o <a href="http://www.infoq.com/news/2011/01/python-tiobe-award" style="color: #bc7134; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;">maior crescimento no ano de 2010 de acordo com o site TIOBE</a>, referência em análises de projetos de programação. </div>
<div style="margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
Para quem está começando a programar, é uma excelente linguagem introdutória para ensino de lógica de programação, pois foca na resolução dos problemas com uma sintaxe simples, multi-plataforma e multi-paradigma (orientado a objetos, imperativo, funcional etc.). Bastante poderosa, é uma plataforma de propósito geral, utilizada em soluções para web, sistemas embarcados e mobile. Python é extensivamente utilizada em projetos de grandes empresas de destaque nacional e mundial tais como Nasa, Google, Globo.com, Serpro, entre outras. </div>
<div style="margin-bottom: 18px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<b><br /></b></div>
</div>
</div>
marcelcaraciolohttp://www.blogger.com/profile/03000508520057818811noreply@blogger.com0tag:blogger.com,1999:blog-36095344.post-5340514876191259152011-10-03T13:22:00.001-03:002011-10-03T13:22:11.931-03:00Slides disponíveis sobre Crab e Comunidades Open-Source na VII PythonBrasil<div style="text-align: justify;">
Olá pessoal,</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Estou disponibilizando os slides das palestras que ministrei durante a <a href="http://www.pythonbrasil.org.br/">VII edição da PythonBrasil</a>, o encontro brasileiro dos desenvolvedores de Python.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
O evento foi de alto nível com ótimas palestras ministradas. Nesta edição tive a oportunidade de palestrar sobre comunidades open-source: uma experiência com o <a href="http://pug.pe/">PUG-PE </a>(o grupo de usuários de Python de Pernambuco) e sobre o <a href="http://muricoca.github.com/crab">Crab</a>, um framework para construção de sistemas de recomendação em Python.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Também tive a oportunidade de ministrar 2 lighting talks: <a href="http://packages.python.org/joblib/">JobLib</a> - um toolkit para pipelining com aplicações científicas em Python e sobre o <a href="http://ipython.org/">Ipython</a>.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Abaixo deixo os slides disponíveis para download:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Slides sobre <a href="http://www.slideshare.net/marcelcaraciolo/construindo-comunidades-opensource-bem-sucedidas-experincias-do-pugpe">Comunidades Open-Source</a>:<br />
<br /></div>
<br />
<center><div id="__ss_9480568" style="width: 425px;">
<strong style="display: block; margin: 12px 0 4px;"><a href="http://www.slideshare.net/marcelcaraciolo/construindo-comunidades-opensource-bem-sucedidas-experincias-do-pugpe" target="_blank" title="Construindo Comunidades Open-Source Bem Sucedidas: Experiências do PUG-PE">Construindo Comunidades Open-Source Bem Sucedidas: Experiências do PUG-PE</a></strong> <iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/9480568" width="425"></iframe> <br />
<div style="padding: 5px 0 12px;">
View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/marcelcaraciolo" target="_blank">Marcel Caraciolo</a> </div>
</div>
</center>
<br />
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Slides sobre o <a href="http://www.slideshare.net/marcelcaraciolo/crab-a-python-framework-for-building-recommender-systems">Crab</a>:</div>
<div style="text-align: justify;">
<br /></div>
<br />
<br />
<center>
<div id="__ss_9509238" style="width: 425px;">
<strong style="display: block; margin: 12px 0 4px;"><a href="http://www.slideshare.net/marcelcaraciolo/crab-a-python-framework-for-building-recommender-systems" target="_blank" title="Crab: A Python Framework for Building Recommender Systems ">Crab: A Python Framework for Building Recommender Systems </a></strong> <iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/9509238" width="425"></iframe> <br />
<div style="padding: 5px 0 12px;">
View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/marcelcaraciolo" target="_blank">Marcel Caraciolo</a> </div>
</div>
</center>
<br />
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Para mais informações sobre o Crab deixo à disposição na <a href="http://muricoca.github.com/crab">página oficial do projeto</a> e no <a href="http://aimotion.blogspot.com/2011/10/slides-from-keynotes-at-vii.html">post</a> no meu outro blog A.I. Motion.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Atenciosamente,</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Marcel Caraciolo</div>
marcelcaraciolohttp://www.blogger.com/profile/03000508520057818811noreply@blogger.com0tag:blogger.com,1999:blog-36095344.post-73431600576358523412011-09-20T00:59:00.000-03:002011-09-20T00:59:26.702-03:00Futuro dos Sistemas de Recomendação: Contexto e Mobilidade<div style="text-align: justify;">
Olá pessoal,</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Hoje vim falar um pouco sobre sistemas de recomendação, especificamente tratando sobre o futuro dos sistemas de recomendação. Li 2 posts que me chamaram muita atenção:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
O primeiro se trata de uma startup americana, a<a href="http://www.immersivelabs.com/"> Immersive Labs</a> que <a href="http://techcrunch.com/2011/09/19/inspired-by-minority-report-immersive-labs-raises-810k-for-digital-display-recognition/">recebeu uma rodada de investimentos</a> em uma solução que eles estão desenvolvendo digna de <a href="http://pt.wikipedia.org/wiki/Minority_Report_(filme)">Minority Report</a> (o filme). Para quem não se lembra do filme ou quem não assistiu, este foi consagrado pela mídia por apresentar novas formas de interação homem-computador por meio de reconhecimento de faces, gestos e manipulação via 3D. </div>
<div style="text-align: justify;">
<br /></div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://technoticles.com/wp-content/uploads/MinorityReportInterface.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="165" src="http://technoticles.com/wp-content/uploads/MinorityReportInterface.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Clássica cena do Filme Minority Report </td></tr>
</tbody></table>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Pois estamos mais perto disso, esta empresa está construindo um sistema que utiliza de câmeras e tecnologia de reconhecimento de faces para detectar e extrair as características de uma pessoa como idade, sexo, distância e até o tempo gasto na frente de um anúncio e assim poder determinar qual melhor propaganda a ser exibida naquele local. Simplesmente, o sistema é capaz de recomendar a melhor propaganda de acordo com as características do público presente na frente do anúncio físico.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Dêem uma olhada no que o projeto é capaz no <a href="http://vimeo.com/28206798">vídeo abaixo</a>, ele utiliza algoritmos de aprendizagem de máquina para descobrir quem é o público que assistiu aquele anúncio e trazer relatórios completos sobre o perfil do público-alvo que assistiu a sua propaganda. </div>
<br />
<br />
<br />
<center> <iframe allowfullscreen="" frameborder="0" height="225" src="http://player.vimeo.com/video/28206798?title=0&byline=0&portrait=0" webkitallowfullscreen="" width="400"></iframe></center><center><a href="http://vimeo.com/28206798">Immersive Labs - Adaptive Advertising Demo</a> from <a href="http://vimeo.com/immersive">Immersive Labs</a> on <a href="http://vimeo.com/">Vimeo</a>.</center>
<br />
<br />
<br />
<div style="text-align: justify;">
O segundo post comenta sobre o lançamento de um assistente virtual móvel chamado <a href="http://www.alfredmobile.com/">Alfred</a>. desenvolvida pela empresa <a href="http://www.thecleversense.com/">CleverSense</a>, que recomenda locais de acordo com as informações providas pelo usuário via contexto (local, hora e intenções) e com os dados extraídos por meio de redes sociais como Twitter, Facebook, etc. Este projeto segue uma linha de sistemas de recomendação móveis por contexto, o qual inclusive já comentei sobre o <a href="http://siri.com/">Siri</a> (recomendação de lugares) em um outro <a href="http://www.mobideia.com/2010/07/sistems-de-localizacao-movel-x-silos-de.html">post</a>.</div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://fastcache.gawkerassets.com/assets/images/4/2011/07/alfredapp718.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="225" src="http://fastcache.gawkerassets.com/assets/images/4/2011/07/alfredapp718.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Alfred: O seu assistente móvel para recomendação dos seus lugares favoritos</td></tr>
</tbody></table>
<br />
<div style="text-align: justify;">
O mais legal é que o sistema permite que você ensine a ele com o tempo, de acordo com as sugestões que ele vai te oferecendo. Assim como também pode te entregar informações detalhadas sobre o local, como promoções, reviews, fotos e até recomendações por similaridade (quem gostou desse também gostou de...). É um assistente que está à sua disposição 24 horas para te ajudar a descobrir um local para comer a qualquer momento. Ele foi desenvolvido para o Iphone e já se encontra disponível no Apple Store. Abaixo um <a href="http://www.youtube.com/watch?v=skBxK9HIE-k&feature=player_embedded">vídeo</a> de demonstração:</div>
<div style="text-align: justify;">
<br /></div>
<br />
<br />
<br />
<center><iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/skBxK9HIE-k" width="560"></iframe></center>
<br />
<br />
<br />
<div style="text-align: justify;">
Está claro a tendência por uma nova geração de sistemas de recomendação. Cada vez mais o contexto está sendo levado em conta para personalização na entrega de conteúdo. Sistemas de realidade aumentada para descoberta de perfis de usuário a sistemas móveis que utilizam as informações ao redor do usuário para entrega de um melhor produto ou serviço naquele momento. Estamos falando dos sistemas de recomendação ampliados e aumentados (RAA), uma gama de serviços em que a recomendação cada vez extrai informações do usuário de forma <a href="http://pt.wikipedia.org/wiki/Serendipidade">serendipitia</a>. Para quem não conhece o serendipismo é um termo cada vez mais presente nas tecnologias mais recentes no mercado. Este termo se refere à descobertas afortunadas inusitadas por acaso. Você interage com o facebook e com o twitter, e o assistente descobre que você está interessado em comer churrasco hoje, ele analisa e te recomenda um restaurante mais próximo a você com desconto a 2. Ou imagine você na frente de um anúncio de cinema, e ele por trás te analisa e já descobre seu perfil, idade , gênero e já inclusive pode no futuro te recomendar um filme ou até te dar desconto no ingresso.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
São muitas possibilidades, sejam bem vindos à nova geração dos recomendadores ubíquos, os ampliados e aumentados.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Atenciosamente,</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Marcel Caraciolo</div>
marcelcaraciolohttp://www.blogger.com/profile/03000508520057818811noreply@blogger.com0tag:blogger.com,1999:blog-36095344.post-72468845487812419222011-09-07T17:48:00.001-03:002011-09-07T17:48:37.279-03:00Convite para o III Encontro Livre: Palestras e Workshops sobre Python e Comunidades Open-SourceOlá pessoal,<br />
<br />
Amanhã teremos um <b>workshop sobre Python </b>em parceria com o PUG-PE (Grupo de Usuários de Python de Pernambuco) durante o <b><a href="http://encontrolivre.org/2011/">III Encontro de Software Livre</a> </b>que será realizado no Recife Antigo durante Quinta-feira , Sexta-Feira e Sábado.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://encontrolivre.org/2011/wp-content/themes/el2011/download/wallpapers/wallpaper-vermelho-thumb.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" src="http://encontrolivre.org/2011/wp-content/themes/el2011/download/wallpapers/wallpaper-vermelho-thumb.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">III Encontro de Software Livre</td></tr>
</tbody></table>
<br />
<br />
O workhop terá início amanhã, onde ministrarei<b> Introdução ao Python.</b> O workshop será na Torre Malakkof, o preço é R$ 10,00 e todos participantes devem levar o seu notebook para acompanhar o mini-curso. Mais informações visitar<a href="http://encontrolivre.org/2011/programacao/"> a grade da programação</a>.<br />
<br />
Teremos também workshops sobre Linux e também sobre Django e Python com Interfaces Gráficas durante estes três dias!!!<br />
<br />
Para finalizar gostaria de convidar a todos para uma palestra que ministrarei sobre <b>Comunidades Open-Source Bem Sucedidas - Experiência do PUG-PE</b> que acontecerá no sábado a partir das 17 hrs na Torre Malakkof no Recife Antigo.<br />
<br />
Segue a ementa:<br />
<br />
<blockquote>
<span class="Apple-style-span" style="background-color: white; color: #333333; font-family: ColaborateLightRegular, Verdana, Tahoma, sans-serif, Sans; font-size: 16px; line-height: 20px;">Comunidades virtuais interligando pessoas ao redor do mundo são extremamente comuns no mundo do software livre. Entretanto, tão ou até mais forte que as comunidades virtuais, são as comunidades reais que existem na sua cidade. Nesta palestra serão abordados o crescimento do Grupo de Usuários de Python de Pernambuco. Além de incentivar a participação das pessoas, o objetivo desta palestra é inspirar e servir como guia para quem quiser começar uma comunidade de sucesso em sua cidade.</span></blockquote>
<br />O evento está de excelente nível, convido a todos presentes!<br /><br />
<br />Atenciosamente,<br />
<br />
Marcel Caraciolomarcelcaraciolohttp://www.blogger.com/profile/03000508520057818811noreply@blogger.com0tag:blogger.com,1999:blog-36095344.post-28083647289464163782011-07-26T01:42:00.001-03:002011-07-26T01:42:54.860-03:00Rede Social das Coisas: A sua casa Inteligente na Rede!<div style="text-align: justify;">
Pessoal,</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Hoje ao visitar meus feeds encontrei esse post bem legal no blog <a href="http://www.mobilidadetudo.com/2011/07/casa-mais-que-inteligente-sensacional.html">Mobilidade é Tudo</a> pelo colega Ricardo Ogliari sobre o futuro das redes sociais em casas inteligentes. O cenário é meio surreal, mas imagina a sua residência toda como um agente em uma rede social em que ela se comunica com o dono, podendo este ordernar e interagir com os diversos componentes da sua casa.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
A casa inteligente será capaz de ter agentes autônomos, onde cada componente da casa, seja uma mesa, cadeira, sofá , geladeira, microondas, etc se conversam entre si e realizam as suas funções de acordo com o contexto ao redor e as informações passadas pelos proprietários da casa.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Não conseguiu visualizar ainda ? Veja este<a href="http://www.youtube.com/watch?v=i5AuzQXBsG4&feature=player_embedded"> vídeo feito pela Ericsson</a> com a rede social das "coisas" em ação:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<div style="text-align: center;">
<br /></div>
</div>
<div style="text-align: center;">
<br /></div>
<br />
<center style="text-align: center;"><iframe allowfullscreen="" frameborder="0" height="349" src="http://www.youtube.com/embed/i5AuzQXBsG4" width="560"></iframe></center><br />
<div style="text-align: center;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Imagina agora a sua casa podendo analisar seus dados na web, interagir com você e ainda te preparar um banho quente, pedir um almoço e baixar seu filme favorito só porque vc veio extressado para casa hoje.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
É de fato, impressionante e futurista! Espero poder estar usufruindo isso em breve!</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Atenciosamente,</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Marcel Caraciolo</div>
marcelcaraciolohttp://www.blogger.com/profile/03000508520057818811noreply@blogger.com1tag:blogger.com,1999:blog-36095344.post-17576236065355352682011-07-23T01:58:00.001-03:002011-07-23T01:58:41.215-03:00Mais uma turma de Python formada na Jornada de Cursos do CITI/CIN/UFPE 2011.1 :D<br />
Olá pessoal,<br />
<br />
Finalizamos mais um <a href="http://www.citi.org.br/jornada/curso.php?id=55&idI=56">curso de Python</a> pelo Centro de Informática da Universidade Federal de Pernambuco junto ao <a href="http://www.citi.org.br/">CITI</a>! :D Agradecemos a presença de todos os estudantes interessados no aprendizado da linguagem de programação Python e espero que todos possam utilizar python em seus projetos pessoais, profissisonais e acadêmicos!<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK-tnMuWwGo_mDEffl1W9eZfbSmdEuHypWrzfOnBwj5DlvoWnhQ9-WTsHrMr_aFL3Y9R2DPa9mjYaZOcOeo25Bk-i6plLIKO_Oj_OjS3QODT03IxsCXCWhEiKtm3IusYJHXnaY/s1600/IMG179.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK-tnMuWwGo_mDEffl1W9eZfbSmdEuHypWrzfOnBwj5DlvoWnhQ9-WTsHrMr_aFL3Y9R2DPa9mjYaZOcOeo25Bk-i6plLIKO_Oj_OjS3QODT03IxsCXCWhEiKtm3IusYJHXnaY/s400/IMG179.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Alunos do Curso de Python do Centro de Informática (CITI)</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxMm7-AZ9hoeZwGWWJcZGVrOhEvI-ZWs0UnGI_rNnMMF0vI2fQEdZoAGLL_QK5b24rs370yFaM042nipKc760ecLvKU3m6_BSI_KHAe3kPuA8CItFtn2jneX1kdtvnsFiKx26d/s1600/IMG180.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxMm7-AZ9hoeZwGWWJcZGVrOhEvI-ZWs0UnGI_rNnMMF0vI2fQEdZoAGLL_QK5b24rs370yFaM042nipKc760ecLvKU3m6_BSI_KHAe3kPuA8CItFtn2jneX1kdtvnsFiKx26d/s400/IMG180.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="font-size: medium; margin-bottom: 0.5em; margin-left: auto; margin-right: auto; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: center;"><tbody>
<tr><td class="tr-caption" style="font-size: 13px; padding-top: 4px; text-align: center;">Mais uma turma formada pelo Curso de Python pelo CITI/CIN-UFPE</td></tr>
</tbody></table>
</td></tr>
</tbody></table>
<br />
<br />
Agradeço ao CITI pela oportunidade e ao parceiro Daker Fernandes (@<a href="http://twitter.com/dakerfp">dakerfp</a>) por auxiliar na organização e ensino junto ao nossos novos alunos :D<br />
<br />E que venham mais turmas!<br />
<br />
Atenciosamente,<br />
<br />
Marcel Caraciolo<br />
<br />
<br />marcelcaraciolohttp://www.blogger.com/profile/03000508520057818811noreply@blogger.com0tag:blogger.com,1999:blog-36095344.post-16358520803168791122011-07-10T00:11:00.002-03:002011-07-10T01:12:35.738-03:00Palestra submetida no ENSOL confirmada! Construindo Comunidades bem sucedidas! Pug-pe no ENSOL!<div style="text-align: justify;">
Olá pessoal,</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
É com grande satisfação informar que um trabalho submetido em parceria com Yuri Malheiros (@<a href="http://twitter.com/yurimalheiros">yurimalheiros</a>) sobre o desenvolvimento de comunidades open-source bem sucedidas foi aceito para ser apresentado no <a href="http://www.ensol.org.br/">V Encontro Nordestino de Software Livre na Paraíba</a>, o conhecido <b>ENSOL</b>! </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Trabalho: "Construindo Comunidades Bem Sucedidas"</div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://softwarelivre.org/articles/0029/5842/V_Ensol.jpeg?1296760478" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://softwarelivre.org/articles/0029/5842/V_Ensol.jpeg?1296760478" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Neste trabalho apresentamos as atividades realizadas pelas iniciativas <a href="http://yurimalheiros.com/2011/01/2%C2%BA-hora-extra-jp/">HoraExtra</a> e CodingDojoJampa na Paraíba e pelo grupo de usuários de Python de Pernambuco, o <b><a href="http://pug.pe/">PUG-PE</a></b>. Além de divulgar as respectivas iniciativas na comunidade open-source, acreditamos que o sucesso de ambas inspirem a construção de novas comunidades em volta de software livre na região Nordeste. Falaremos sobre nossas experiências junto a estas atividades e os desafios crescentes de construir comunidades fortes em cima de plataformas de natureza open-source e colaborativa.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Recomendo a presença de todos! A apresentação será dia 20 de julho às 11:00. Para mais informações e como se inscrever no evento, visite o <a href="http://www.ensol.org.br/n">site oficial</a>.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Para quem quiser dar uma lida sobre o trabalho submetido, pode ser baixado <a href="http://dl.dropbox.com/u/1977573/ensol-yuri-marcel.pdf">aqui</a>.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
marcelcaraciolohttp://www.blogger.com/profile/03000508520057818811noreply@blogger.com0tag:blogger.com,1999:blog-36095344.post-13755064397350050302011-06-22T01:07:00.000-03:002011-06-22T01:07:06.232-03:00Palestra sobre sistemas de recomendação no CIN - UFPENesta última segunda-feira dei uma palestra em convite do programa PET do Centro de Informática da Universidade Federal de Pernambuco sobre minha área de pesquisa que envolve sistemas de recomendação e as oportunidades que ela oferece.<br />
<br />
Foi uma palestra bem dinâmica, onde apresentei os conceitos iniciais e as minhas contribuições, em especial, o framework <b>Crab </b>que é um toolkit para construção de sistemas de recomendação em Python, Scipy e Numpy.<br />
<br />
Para mais informações visitar o link a <a href="http://muricoca.github.com/crab/">seguir</a>. <br />
<br />
Os slides se encontram no meu outro blog <a href="http://aimotion.blogspot.com/2011/06/keynote-about-recommender-systems-at.html">A.I. Motion </a>.<br />
<br />
Abaixo algumas fotos durante a palestra:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicRbLYTm4RUxoN1hfWWp52ak8kZPbVmrC7bGFOl_cqzVdWqf7cjyc6_uinHj0BjO8iBv40DzjlqCglPG9BoDKUGp8ws6Ydo6GsWy1h6lRLRn5N-AkCB8cXvYn6hSsRLiMCJSs4/s1600/IMG_20110620_124851.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicRbLYTm4RUxoN1hfWWp52ak8kZPbVmrC7bGFOl_cqzVdWqf7cjyc6_uinHj0BjO8iBv40DzjlqCglPG9BoDKUGp8ws6Ydo6GsWy1h6lRLRn5N-AkCB8cXvYn6hSsRLiMCJSs4/s320/IMG_20110620_124851.jpg" width="320" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglnoEx41DfexYkVzQ750WT4wgoSuuYZkVvar2jY6KsTqVu71aZZEqxi1TzorWwXJa3STuUSGFnTWcoPJi-wZALyThADj3GUJhO0uxT6W6Fy0D-fyQM5lWpmtFrO1xRdu4bzTH1/s1600/IMG_20110620_124949.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglnoEx41DfexYkVzQ750WT4wgoSuuYZkVvar2jY6KsTqVu71aZZEqxi1TzorWwXJa3STuUSGFnTWcoPJi-wZALyThADj3GUJhO0uxT6W6Fy0D-fyQM5lWpmtFrO1xRdu4bzTH1/s320/IMG_20110620_124949.jpg" width="320" /></a></div><br />
<br />
Agradeço à Mateus pelo convite!<br />
<br />
Atenciosamente,<br />
<br />
Marcel Caraciolomarcelcaraciolohttp://www.blogger.com/profile/03000508520057818811noreply@blogger.com0tag:blogger.com,1999:blog-36095344.post-35675723033370660922011-05-30T11:54:00.000-03:002011-05-30T11:54:29.872-03:00Aplicativos envolvendo CrowdSourcing e Geolocalização<div style="text-align: justify;">Mais novos aplicativos estão surgindo nesta nova onda de popularização do movimento de crowdsourcing e geolocalização. Desde o último evento realizado em Nova York pela TechCrunch: <a href="http://disrupt.techcrunch.com/">Techcrunch Disrupt </a>, descobri 2 startups muito interessantes e que tem tudo haver com um dos principais tópicos do meu interesse nesta área de mobilidade: a descoberta por conteúdo e sistemas colaborativos de perguntas e respostas.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Uma delas é o <b><a href="http://www.sonar.me/">Sonar</a></b>, uma app desenvolvida para telefones móveis onde o objetivo dela é permitir que os usuários possam saber quem está ao seu redor. A idéia é simples mas matadora, ela procura por outros usuários ao seu redor em um determinado local e cruza as informações do seu perfil com os perfis destes usuários por meio das redes sociais que vocês tem em comum: Twitter, Facebook, Linkedin, etc. e retorna uma lista de usuários com os interesses em interseção de maior relevância. Ou seja, imagine você está em uma conferência e gostaria de se apresentar para um guru que você sempre quis conhecer... Com o Sonar, se ambos estiverem usando a app, ela cruza as informações de ambos e informa quantos amigos vocês tem em comum no Facebook, Twitter, etc. Ou seja o problema de timidez na apresentação se acaba, pois você pode mandar via Sonar uma mensagem direto para aquele usuário! :D</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Estou pensando em até construir algo assim para o evento do <a href="http://www.pythonbrasil.org.br/">PythonBrasil</a> deste ano, quem sabe?! :D</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><br />
</div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://a5.mzstatic.com/us/r30/Purple/f7/74/8a/mzl.unnamwcq.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://a5.mzstatic.com/us/r30/Purple/f7/74/8a/mzl.unnamwcq.png" width="212" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Sonar Mobile App</td></tr>
</tbody></table><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">O conceito mais legal desta aplicação é o uso de mashups de várias redes sociais para a descoberta e apresentação de pessoas em um determinado lugar, uma espécie de cartão de visitas só que social. </div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Recomendo assistirem o <a href="http://techcrunch.com/2011/05/23/sonar-finds-you-the-most-relevant-people-in-the-room/">vídeo da apresentação deles</a> na final da batalha de startups do Techcrunch Disrupt para mais informações.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">A outra aplicação que eu acabei encontrando muito legal foi o <a href="http://www.gootip.com/"><b>Gootip</b></a>. Esta app me lembrou bastante de uma aplicação que meu colega brasileiro <a href="http://twitter.com/yurimalheiros">Yuri Malheiros</a> está desenvolvendo chamada <a href="http://norteie.me/">Norteie.me</a> :D O sistema é um site colaborativo de perguntas e respostas usando localização móvel. Ele utiliza as APIs do Google Places, onde os usuários podem perguntar e responder perguntas sobre um determinado lugar. É uma mistura de Yelp com Quora, onde usuários podem buscar por perguntas similares, categorizar perguntas e restringir respostas até um determinado tempo (ser um sistema em tempo real).</div><div style="text-align: justify;"><br />
</div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://rww.readwriteweb.netdna-cdn.com/Gootip_Screenshot.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="400" src="http://rww.readwriteweb.netdna-cdn.com/Gootip_Screenshot.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Gootip; Sistema colaborativo de Q&A sobre contexto móvel</td></tr>
</tbody></table><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Uma aplicação bem interessante que permite você buscar informações sobre um determinado local em tempo real onde pessoas que estão lá ou que já foram podem ajudar na busca por respostas. Esta app me lembrou muito de uma outra que está em desenvolvimento: <a href="http://localmind.com/">Localmind</a> que já até inclusive falei sobre ela em meu blog.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">O que me desperta e chama atenção nesta geração de aplicativos é o interesse cada vez maior pela maior integração com redes sociais como uma espécie de agregador de redes onde informações são cruzadas usando o poder da geolocalização e serendipidade para recomendação de novos produtos, locais, serviços e até futuros parceiros e amigos! </div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Meus artigos sobre este assunto <a href="http://www.mobideia.com/2011/03/propondo-um-sistemas-de-perguntas-e.html">aqui</a> e <a href="http://www.mobideia.com/2011/04/sistemas-colaborativos-de-perguntas-e.html">aqui</a>.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Vamos ficar de olho nesta tendência!</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Atenciosamente,</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Marcel Caraciolo</div>marcelcaraciolohttp://www.blogger.com/profile/03000508520057818811noreply@blogger.com0tag:blogger.com,1999:blog-36095344.post-50719833465060140342011-05-28T00:20:00.000-03:002011-05-28T00:20:16.635-03:00Apresentação sobre Explorando Django disponível para acesso<div style="text-align: justify;">Olá pessoal,</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Estou disponibilizando os slides da segunda parte do curso de residência do reuso da empresa RISE focado em frameworks web. <a href="http://www.mobideia.com/2011/05/curso-de-python-e-django-na-residencia.html">Na primeira parte apresentei sobre o Python + Django</a> e nesta explorei algumas apps práticas usando o Django como a instalação de apps terceiras na sua aplicação web, a instalação do projeto <a href="http://pinaxproject.com/">Pinax</a> (para construção de Redes Sociais) e por a construção de API's REST por meio do <a href="https://bitbucket.org/jespern/django-piston/wiki/Home">Django-Piston</a>.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Acredito que o público gostou do curso e do conteúdo absorvido :) Muitos comentários positivos com o primeiro contato com Django. Estou agora aguardando o feedback por meio dos projetos que o pessoal irá desenvolver usando o Django :D Vamos aguardar!!</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Acesso aos slides <a href="http://www.slideshare.net/marcelcaraciolo/explorando-django">aqui</a>.</div><br />
<br />
<center><div id="__ss_8131855" style="width: 425px;"><strong style="display: block; margin: 12px 0 4px;"><a href="http://www.slideshare.net/marcelcaraciolo/explorando-django" title="Explorando Django">Explorando Django</a></strong> <iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/8131855" width="425"></iframe> <br />
<div style="padding: 5px 0 12px;">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/marcelcaraciolo">Marcel Caraciolo</a> </div></div></center><br />
<br />
<br />
Agradeço a oportunidade ao time do RISE por este excelente trabalho!<br />
<br />
Atenciosamente,<br />
<br />
Marcelmarcelcaraciolohttp://www.blogger.com/profile/03000508520057818811noreply@blogger.com0tag:blogger.com,1999:blog-36095344.post-26402892719102075772011-05-24T10:16:00.000-03:002011-05-24T10:16:34.972-03:00Curso de Python e Django na Residência de Reuso do RISE<div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Olá a todos,</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Gostaria de compartilhar a aula que ministrei para o curso de Residência de Reuso da RISE( Startup focada em processo e reuso de software) em Recife/Pernambuco.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Pude colaborar com a apresentação sobre a linguagem Python e o apresentar os primeiros passos com o framework web Django. Para aqueles que não conhecem o Django, vale a pena dar uma estudada, pois é um poderoso framework MVC (na verdade MTV - Models Templates Views) para construção de aplicativos web. Segue o <a href="http://www.slideshare.net/marcelcaraciolo/introduo-ao-django">link</a> para palestra:</div><div style="text-align: justify;"><br />
<br />
<center><div id="__ss_8060212" style="width: 425px;"><strong style="display: block; margin: 12px 0 4px;"><a href="http://www.slideshare.net/marcelcaraciolo/introduo-ao-django" title="Introdução ao Django">Introdução ao Django</a></strong> <iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/8060212" width="425"></iframe> <br />
<div style="padding: 5px 0 12px;">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/marcelcaraciolo">Marcel Caraciolo</a> </div></div></center></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Agradeço ao Eduardo Cruz, co-fundador da RISE pela oportunidade e parabéns pelo curso!</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Atenciosamente,</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Marcel Caraciolo</div>marcelcaraciolohttp://www.blogger.com/profile/03000508520057818811noreply@blogger.com2tag:blogger.com,1999:blog-36095344.post-59665251850266408522011-05-23T14:50:00.000-03:002011-05-23T14:50:38.785-03:00Palestra sobre Sistemas de Recomendação para o curso de Publicidade e Propaganda na UFPE<div style="text-align: justify;">Olá pessoal,</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Hoje pela manhã (23/05/2011) à convite da aluna do<b> curso de Publicidade e Propaganda da Universidade Federal de Pernambuco (UFPE) </b>ministrei uma palestra introdutória sobre <b><i>sistemas de recomendação</i></b>, apresentandos os conceitos básicos e como poder aplicá-lo em uma empresa real (uma cadeia de restaurante conhecida), que utilizei como exemplo aqui em Recife-Pernambuco.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">A palestra foi muito bem recebida pelos alunos junto ao professor Rodrigo Steffani Correa , vice-coordenador do curso de Publicidade e Propaganda da UFPE que estão executando um trabalho dentro da disciplina focada em novas oportunidades de negócio e inovação em marketing com empresas da região.<br />
<br />
</div><div style="text-align: justify;">A palestra foi menos técnica para ser facilmente discutida pelo público que não é da área de computação. Tivemos um bom bate papo e uma discussão interessante, construindo novas oportunidades de negócio em cima desse tipo de sistema focando em novas cadeias de valor em cima do novo público consumidor que exige cada vez mais personalização, atenção e conteúdo relevante do seu interesse. Será que as empresas aqui no Brasil estão preparadas para chegar a esse tipo de demanda ? Este tipo de discussão que levamos à tona e como Brasil está se posicionando neste mercado.<br />
<br />
</div><div style="text-align: justify;">Abaixo seguem os<a href="http://www.slideshare.net/marcelcaraciolo/sistemas-recomendacao-para-marketing-e-propaganda#"> slides da apresentação</a>:</div><div style="text-align: justify;"><br />
<center><br />
<div id="__ss_8070772" style="width: 425px;"><strong style="display: block; margin: 12px 0 4px;"><a href="http://www.slideshare.net/marcelcaraciolo/sistemas-recomendacao-para-marketing-e-propaganda" title="Sistemas recomendacao para Marketing e Propaganda">Sistemas recomendacao para Marketing e Propaganda</a></strong> <iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/8070772" width="425"></iframe> <br />
<div style="padding: 5px 0 12px;">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/marcelcaraciolo">Marcel Caraciolo</a> </div></div></center></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Quero agradecer à Amanda Aquino pelo convite e espero estreitar ainda mais esse relacionamento entre computação e publicidade e propaganda que tem muitos interesses e objetivos em comum.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Atenciosamente,</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Marcel Caraciolo</div><div style="text-align: justify;"><br />
</div>marcelcaraciolohttp://www.blogger.com/profile/03000508520057818811noreply@blogger.com0tag:blogger.com,1999:blog-36095344.post-71564571253224919532011-04-21T13:06:00.002-03:002011-04-21T13:07:19.237-03:00Sistemas Colaborativos de Perguntas e Respostas sobre Contexto Móvel: Início de uma nova tendência ?Olá pessoal,<br />
<div style="text-align: justify;">Em um <a href="http://www.mobideia.com/2011/03/propondo-um-sistemas-de-perguntas-e.html">post anterior neste mesmo blog</a> escrito por mim falei sobre o aparecimento de novos <b>sistemas colaborativos de recomendação baseado em Perguntas e Respostas (Q&A) integrados com geolocalização. </b></div><div style="text-align: justify;"><br />
Uma das primeiras apps nesse nicho já começou a aparecer nos EUA e visa ir mais adiante do que simples check-ins ao tentar responder a principal dúvida de um usuário quando em chega em um local desconhecido: ' O que fazer quando chegar lá ?' Se você comparar com aplicativos já existentes como <a href="http://foursquare.com/">Foursquare</a> e <a href="http://gowalla.com/">Gowalla</a>, esta app foca respectivamente nos Tips e Notes, que seriam pequenos reviews daquele lugar que um usuário frequentou. </div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><a href="http://www.loopt.com/">Loopt</a>, como se chama o aplicativo, foca em perguntas e respostas em tempo real, onde os usuários podem responder e obter respostas rápidas de perguntas originadas ao redor do local onde eles se encontram.</div><div style="text-align: justify;"><br />
</div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://gigaom2.files.wordpress.com/2011/04/looptqs_radarnearby_small-200x300.jpg?w=200&h=300" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://gigaom2.files.wordpress.com/2011/04/looptqs_radarnearby_small-200x300.jpg?w=200&h=300" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Loopt: Sistema de Q&A móvel</td></tr>
</tbody></table><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">A aplicação que se encontra em estágio de desenvolvimento e será lançado primeiro nos EUA, entrega aos usuários uma informação rápida e personalizada sobre os lugares que ele visita ou pretende visitar. Então imagine, que você está à procura do melhor churrasco ou picanha em Recife ou até se um determinado restaurante tem Wi-Fi disponível, por onde você obteria respostas nesse nível de detalhes ? Com aplicativos focando em Perguntas e Respostas, o usuário em vez de ler longos reviews que não respondem diretamente o que eles precisam saber, irão receber respostas personalizadas e em tempo real sobre o que ele realmente precisam. </div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">O mais interessante é que o Loopt fornece diversas maneiras estruturar as perguntas e as respostas. Em vez de perguntas textuais, você pode responder por exemplo uma pesquisa de múltiplas alternativas, ou seja, a sua pergunta pode ser estruturada do jeito que você achar mais apropriado. Isso encoraja aos usuários a cada vez mais interagirem com o sistema ao gerar mais conteúdo de forma fácil e rápida.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://blog.loopt.com/files/2011/04/PlacePage_Qs_small-200x300.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://blog.loopt.com/files/2011/04/PlacePage_Qs_small-200x300.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Perguntas estruturadas e personalizadas</td></tr>
</tbody></table><br />
</div><div style="text-align: justify;">Abaixo um <a href="http://www.youtube.com/watch?v=TLoeELnC3Qk&feature=player_embedded">vídeo</a> (Pitch) retirado do site oficial do Loopt sobre como funciona a sua aplicação:<br />
<br />
</div><br />
<br />
<br />
<br />
<center><iframe allowfullscreen="" frameborder="0" height="349" src="http://www.youtube.com/embed/TLoeELnC3Qk?hd=1" title="YouTube video player" width="560"></iframe></center><br />
<div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">A minha opinião sobre Loopt, é que ele abre portas para um novo nicho de aplicativos que está bem sedimentada no mundo web como <a href="http://quora.com/">Quora</a>, <a href="http://answers.yahoo.com/">Yahoo Answers</a>, <a href="http://stackoverflow.com/">StackOverflow</a> para o contexto móvel. O <a href="http://vark.com/">Aadvark</a> já começou a trazer Q&A's para o celular e acredito que mais iniciativas como esta irão aparecer no mercado.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Para um serviço como esse se tornar popular, é necessário que o sistema seja extremamente fácil de usar, de tal maneira que o usuário possa gerar conteúdo rapidamente e recebê-las também rapidamente. O Loopt associado a um sistema de recomendação de usuários em Q&A geo-localizável sem dúvidas poderia impulsionar a quantidade de respostas enviadas. A formas de interação com o usuário também tem que ser bem simples. Fazer o usuário responder longos questionários, especialmente a partir do celular, faz ele desistir logo de escrever uma resposta, em que demanda pela velocidade é crítica. Isso inclui também algoritmos de filtragem para detectar as perguntas mais relevantes em caso de uma quantidade excessiva de perguntas e respostas em relação a um determinado lugar. </div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Informações em tempo-real sobre um determinado lugar pode ser de grande ajuda se atualizado frequentemente. Quem não gostaria de saber se um restaurante naquela hora do almoço já se encontra lotado ou vazio, a fim de eu tomar uma decisão se irei ou não para aquele lugar ? Com sistemas colaborativos de Perguntas e Respostas voltados para contexto móvel, embora estejamos bem no início, há já uma tendência por aplicativos móveis que vão além de check-ins a fim de prover conteúdo útil para os usuários. O Loopt já deu o seu primeiro passo, e não estranharei se outras apps bem conhecidas também já começarem a se posicionar sobre esse tipo de sistema.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Por sinal, mês passado um colega meu , <a href="http://twitter.com/#!/yurimalheiros">Yuri Malheiros</a> lançou um aplicativo web de Perguntas e Respostas (Q&A) focando em responder a seguinte pergunta: 'Qual é o melhor lugar para ?' chamado <a href="http://norteie.me/">Norteie.me</a>. Ele criou esta app em Django + Python em que usuários podem fazer perguntas sobre dúvidas em um determinada cidade e outros usuários podem responder aquela dúvida. Embora esteja no estágio inicial , imagino o potencial desta aplicação quando estiver integrada com geolocalização em um nicho de turismo por exemplo? Imagine você associar perguntas com locais e coordenadas geográficas e ao passar sobre um determinado local você poder receber perguntas ou respostas baseado em onde você está ou pelo sua experiência em um lugar que você mais frequentou baseado no seu histórico de check-ins.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihAfQcE1MqQf0f56FrHBS9PMkwWBkh-jCFfqXS1L8UqCjq3X3e3GOCBx8fAdxX3Cs2FN90VKjUKuHJFZ1lPCwVz3O3bbqq_bRcRxYsd2E4q3FtbVp0fGb3H2_QIZw7nmX_fXPJ/s1600/Picture+21.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="242" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihAfQcE1MqQf0f56FrHBS9PMkwWBkh-jCFfqXS1L8UqCjq3X3e3GOCBx8fAdxX3Cs2FN90VKjUKuHJFZ1lPCwVz3O3bbqq_bRcRxYsd2E4q3FtbVp0fGb3H2_QIZw7nmX_fXPJ/s400/Picture+21.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Norteie.me : Sistema de Perguntas e Respostas Web sobre Lugares</td></tr>
</tbody></table><br />
<br />
</div><div style="text-align: justify;">Com certeza, o Yuri já deve está pensando em uma expansão e fiquemos de olhos nesse nicho de Q&As se expandindo por aqui no Brasil também !</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Espero que tenham gostado,</div><div style="text-align: justify;"><br />
Atenciosamente,</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Marcel Caraciolo</div>marcelcaraciolohttp://www.blogger.com/profile/03000508520057818811noreply@blogger.com0tag:blogger.com,1999:blog-36095344.post-90846418131417588862011-04-10T12:58:00.000-03:002011-04-10T12:58:53.415-03:00III Workshop de Inovações Tecnológicas: Introdução a PythonOlá pessoal,<br />
<br />
Gostaria de convidar a todos para um workshop sobre<b> Introdução a Python</b> que a empresa que trabalho <a href="http://www.orygens.com/">Orygens</a> dará em conjunto com a empresa especializada em cursos de T.I. : <a href="http://www.netiedu.com.br/">NETI</a> sediada em Recife, Pernambuco.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo3XOwe9I2yrQFJ3LpgBf5HPWu4cDz-8m2LgsYGFsthnb-qF5lmN4OB9fFeowDLWE_znDlXqEpNGgqOFjw74ItByorwGCc6Dy3dMkpTHadDu_CHmrNRY6MtXezJUTZH1Jhwnt4/s1600/python.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="241" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo3XOwe9I2yrQFJ3LpgBf5HPWu4cDz-8m2LgsYGFsthnb-qF5lmN4OB9fFeowDLWE_znDlXqEpNGgqOFjw74ItByorwGCc6Dy3dMkpTHadDu_CHmrNRY6MtXezJUTZH1Jhwnt4/s640/python.jpg" width="640" /></a></div><br />
<br />
O workshop será com duração de 3 horas com uma breve introdução da plataforma Python, por onde começar e como está o mercado se posicionando em relação a esta ferramenta. <b>Será no dia 30 de Abril (Sábado) - 09:00 às 12:00 no Empresarial ITBC.</b><br />
<br />
O workshop é pago, mas para custear os certificados e coffe-break que terá durante o evento.<br />
<br />
Para mais informações acessar o site <a href="http://www.netiedu.com.br/">www.netiedu.com.br </a><br />
<br />
<a href="http://www.netiedu.com.br/"></a>Inscrições abertas!<br />
<br />
Atenciosamente,<br />
<br />
Marcel Caraciolomarcelcaraciolohttp://www.blogger.com/profile/03000508520057818811noreply@blogger.com0tag:blogger.com,1999:blog-36095344.post-50650914694598094802011-03-25T01:25:00.000-03:002011-03-25T01:25:13.092-03:00Mais uma palestra de sucesso no Instituto Federal de Pernambuco (IFPE) sobre Python!<div style="text-align: justify;">Olá pessoal,</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Quarta-Feira (23/03/2011) eu dei uma palestra no <b>Instituto Federal de Pernambuco (IFPE) </b>sobre Python para os alunos da instituição. Pessoal à primeira vista gostou bastante da linguagem, especialmente quando apresentei o comando que emociona a todos iniciantes: 4 in [1,2,3,4] True hehehe ;D</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Abaixo uma foto comigo e os alunos!</div><div style="text-align: justify;"><br />
</div><table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8sL8rIS7OEuA2U-tDVwMba3RTcpkY7zSpsTV9Q59Sdv9oysSPz5bM3Cg0WYEGZHgKnjZwmZpQl0iT42VC7dIJJL1uEYES3vardt6ldPwgb5y8XsBH52H0F9WmorCNadnwHDEH/s1600/IMG062-1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8sL8rIS7OEuA2U-tDVwMba3RTcpkY7zSpsTV9Q59Sdv9oysSPz5bM3Cg0WYEGZHgKnjZwmZpQl0iT42VC7dIJJL1uEYES3vardt6ldPwgb5y8XsBH52H0F9WmorCNadnwHDEH/s400/IMG062-1.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Marcel e os estudantes do Instituto Federal de Pernambuco</td></tr>
</tbody></table><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Fico feliz em ter apresentado esta plataforma para o pessoal e espero ver daí muitos projetos legais e interessantes usando Python! Além do mais promover a cultura de software livre e open-source em nossa região!</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Para mais informações ver o <a href="http://pugpe.wordpress.com/2011/03/25/apresentando-python-para-os-estudantes-do-instituto-federal-de-pernambuco/">link</a> do blog do PUG-PE.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Att.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Marcel</div>marcelcaraciolohttp://www.blogger.com/profile/03000508520057818811noreply@blogger.com0tag:blogger.com,1999:blog-36095344.post-64087988455739544972011-03-22T09:44:00.000-03:002011-03-22T09:44:05.892-03:00Mini-Curso de Python dia 21/03 no II Workshop de SL do CIN/UFPE foi um sucesso! Material e slides para download<div style="text-align: justify;">Olá pessoal,</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Ontem tive a oportunidade de ministrar o mini-curso introdutório à plataforma Python no<b><a href="http://wsl.cinlug-br.org/"> II Workshop de Software Livre no Centro de Informática</a></b> e posso dizer que fiquei muito feliz ao ver a quantidade de pessoas interessadas em aprender/conhecer/aprofundar na tecnologia Python. </div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">O laboratório ficou lotado com mais de 80 pessoas (Pena que não consegui tirar uma foto) e acredito que foram 4 horas bem proveitosas. Espero que o pessoal tenha curtido e entendido como escrever seus primeiros códigos em Python.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Quero agradecer ao pessoal do @<a href="http://twitter.com/cinlug">cinlug</a> (Grupo de Usuários Linux do Centro de Informática) pelo convite e espero estar repetindo mais vezes este tipo de evento.</div><br />
<br />
<center><br />
<div id="__ss_7345661" style="width: 425px;"><strong style="display: block; margin: 12px 0 4px;"><a href="http://www.slideshare.net/marcelcaraciolo/minicurso-de-python-dia-2103-segundafeira-no-ii-workshop-de-sl-do-cinufpe" title="Mini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPE">Mini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPE</a></strong><object height="355" id="__sse7345661" width="425"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=iiworkshopcin-110322074039-phpapp01&stripped_title=minicurso-de-python-dia-2103-segundafeira-no-ii-workshop-de-sl-do-cinufpe&userName=marcelcaraciolo" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse7345661" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=iiworkshopcin-110322074039-phpapp01&stripped_title=minicurso-de-python-dia-2103-segundafeira-no-ii-workshop-de-sl-do-cinufpe&userName=marcelcaraciolo" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object><br />
<div style="padding: 5px 0 12px;">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/marcelcaraciolo">Marcel Caraciolo</a>.</div></div></center><br />
<div style="text-align: justify;">Deixo abaixo disponível os slides para download e os <a href="http://dl.dropbox.com/u/1977573/workshop.zip">exemplos</a> demonstrados durante o mini-curso.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Atenciosamente,</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Marcel Caraciolo</div><div style="text-align: justify;"><br />
</div>marcelcaraciolohttp://www.blogger.com/profile/03000508520057818811noreply@blogger.com0tag:blogger.com,1999:blog-36095344.post-41348041012541359582011-03-21T00:35:00.000-03:002011-03-21T00:35:09.678-03:00Mini-Curso de Python dia 21/03 (Segunda-Feira) Gratuito no II Workshop de SL do CIN/UFPE<div style="text-align: justify;">Olá pessoal,</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Esta semana, a partir do dia 21/03 começa o <b>II Workshop de Software Livre do Centro de Informática</b> com uma série de mini-cursos introdutórios sobre diversas tecnologias relacionadas ao mundo open-source, todas gratuitas.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Terei a oportunidade de abrir o workshop com o <b><a href="http://wsl.cinlug-br.org/minicurso/python">mini-curso de Python</a></b> amanhã a partir das <b>17 hrs no Laboratório G4 no Centro de Informática - Universidade Federal Pernambuco</b>. O curso é gratuito e irei apresentar e introduzir o desenvolvimento na plataforma Python. </div><div style="text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="http://pugpe.files.wordpress.com/2011/03/banner-fundo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="99" src="http://pugpe.files.wordpress.com/2011/03/banner-fundo.png" width="640" /></a></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">O workshop também terão outros mini-cursos muito interessantes como Git, VIM, Blender, Django, PyGame, Linux, etc. Toda a programação pode ser vista no <a href="http://wsl.cinlug-br.org/">site oficial do evento</a>.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Estejam todos convidados para amanhã!</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">PS: O evento será filmado e talvez seja transmitido ao vivo pela internet! Fiquem antenados no twitter do @<a href="http://twitter.com/cinlug">cinlug</a> organizador do evento e no meu twitter @<a href="http://twitter.com/marcelcaraciolo">marcelcaraciolo</a> para mais informações!</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Atenciosamente,</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Marcel Caraciolo</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><br />
</div>marcelcaraciolohttp://www.blogger.com/profile/03000508520057818811noreply@blogger.com0tag:blogger.com,1999:blog-36095344.post-51636840177135825502011-03-03T22:21:00.001-03:002011-03-03T22:24:54.594-03:00Ditto: O poder do check-in, geolocalização, redes sociais e recomendação para dispositivos móveis<div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Olá pessoal,</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Fiquei extremamente entusiasmado com esse aplicativo que realmente me inspirou em continuar o meu trabalho de mestrado nesta área de recomendações sobre contexto móvel incorporando reviews e críticas oriundas de redes sociais. Hoje um colega meu me enviou um <a href="http://techcrunch.com/2011/03/03/ditto/">link</a> extremamente interessante de um novo aplicativo lançado recentemente chamado Ditto. </div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Fundado pelo ex-fundador do <a href="http://www.jaiku.com/">Jaiku</a>, que foi vendido para o Google em 2007, ele desenvolveu um aplicativo que permite você possa informar o que você pretende fazer naquele momento ou pedir uma sugestão específica para algo que você deseja fazer. Diferente do <a href="http://foursquare.com/">Foursquare</a> que foca sobre 'onde você está agora', Ditto é um aplicativo móvel que combina o poder de check-ins com geo-localização sobre uma perspectiva diferente, odne o usuário informa a sua intenção ou seu desejo de querer fazer algo. Isto me lembra muito a aplicação comprada pela Apple <a href="http://siri.com/">Siri</a>, que também permitia você via voz ao telefone o que você gostaria de fazer. </div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Em Ditto, você pode realizar ações, as quais já estão pré-definidas na sua tela principal como 'Irei Comer', 'Irei Assistir', 'Irei ouvir', e além de compartilhar com seus amigos quais são suas intenções. O potencial do aplicativo é que você pode até definir um lugar específico sobre aonde você pretende realizar aquela ação. Imagine você que não sabe onde vai comer, e gostaria de poder receber uma opinião dos seus amigos sobre um bom local para comer, você enviaria uma mensagem via Dito que você 'gostaria de comer' e então todos seus amigos que visssem aquela mensagem, poderiam deixar uma mensagem com várias recomendaçõe de lugares para comer. Isto me lembra muito a aplicação sobre perguntas e respostas que comentei em um<a href="http://www.mobideia.com/2011/03/propondo-um-sistemas-de-perguntas-e.html"> post anterior</a>. </div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">De acordo com o fundador, o engine básico do sistema consiste não só apenas lugares como em outras redes sociais de localização móvel, ele inclui quaisquer tipos de objetos como filmes, livros, música, etc.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><i>'A Descoberta irá ser social, social está convergindo para a mobilidade, e isto pode ser uma imensa oportunidade do tamanho do Google que pode substituir a busca tradicional existente nos aparelhos móveis. A grande beleza do Ditto é a sua natureza em assistir o usuário no momento em que ele está prestes a fazer uma escolha, e isto combina resultados algorítimicos com recomendações em tempo real da sua rede social'.</i></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Achei muito interessante esta frase pelo um dos co-fundadores do Ditto e acredito que cada vez mais estamos em busca/ descoberta de conteúdo em tempo real e muitas vezes recomendações de pessoas, especialmente de nosso círculo social para decidir ou realizar uma escolha.<br />
<br />
Entrevista com o co-fundador na íntegra em <a href="http://www.youtube.com/watch?v=nhMcc6duT00">vídeo</a>.<br />
<br />
<br />
</div><br />
<center><iframe allowfullscreen="" frameborder="0" height="349" src="http://www.youtube.com/embed/nhMcc6duT00?hd=1" title="YouTube video player" width="560"></iframe></center><br />
<div style="text-align: justify;"><br />
</div><div style="text-align: justify;">A aplicação Ditto já é integrada com Foursquare, Twitter e Facebook e eles pretendem também lançar um tipo de sistema de pontuação em cima das recomendações. Minha opinião fica clara que estamos vendo esta convergência por aplicativos de interação social, recomendações e geolocalização. Fiquei muito animado em saber que estou realizando um trabalho em uma área de pesquisa que está virando uma tendência.<span class="Apple-style-span" style="line-height: 19px;"><br />
</span></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="http://www.ditto.me/img/screenshots/1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"> <img border="0" height="320" src="http://www.ditto.me/img/screenshots/1.png" width="200" /></a></div><div style="text-align: justify;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJ1pfuB_L3UsejInTgl5i4q2gaKkbr20weZsrsv9lUWotwF04O7odj21Wh6eeqCg47JElyWYuhxIFIj2V5BVMC63kVZkVLpdK-J2l08BavPFXZ3VYKiXibtqR0NNoOCsEeNPH0/s1600/Picture+2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJ1pfuB_L3UsejInTgl5i4q2gaKkbr20weZsrsv9lUWotwF04O7odj21Wh6eeqCg47JElyWYuhxIFIj2V5BVMC63kVZkVLpdK-J2l08BavPFXZ3VYKiXibtqR0NNoOCsEeNPH0/s320/Picture+2.png" style="cursor: move;" width="226" /></a></div><div style="text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><i>Aplicativo Ditto para o Iphone</i></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Você pode saber mais sobre a aplicação <a href="http://www.ditto.me/">aqui</a>.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><span class="Apple-style-span" style="line-height: 19px;">Atenciosamente,</span></div><div style="text-align: justify;"><span class="Apple-style-span" style="line-height: 19px;"><br />
</span></div><div style="text-align: justify;"><span class="Apple-style-span" style="line-height: 19px;">Marcel Caraciolo</span></div><div style="text-align: justify;"><span class="Apple-style-span" style="line-height: 19px;"><br />
</span></div>marcelcaraciolohttp://www.blogger.com/profile/03000508520057818811noreply@blogger.com0tag:blogger.com,1999:blog-36095344.post-44517782933193543502011-03-02T12:08:00.000-03:002011-03-02T12:08:34.884-03:00Propondo um Sistemas De Perguntas e Respostas Colaborativos sobre Contexto Móvel<div class="separator" style="clear: both; text-align: center;"><br />
</div><div style="text-align: justify;">Olá a todos,</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Estive meio ausente em posts no meu blog, pois estou em ritmo acelerado de escrita da minha dissertação de mestrado que está para ser defendida em meados de junho. Enquanto isso, eu decidi falar um pouco sobre conclusões e idéias próprias relacionadas a este trabalho em andamento. Este trabalho inclui uma proposta de um <a href="http://pt.wikipedia.org/wiki/Sistema_de_recomenda%C3%A7%C3%A3o">sistema de recomendação</a>, uma sub-área de uma área maior de filtragem de informação, derivada de uma linha de pesquisa de mineração de dados. <b>O objetivo é propor e validar um sistema de recomendação que incorpore reviews, isto é, opiniões e comentários de usuários sobre produtos e serviços visando recomendar sobre um contexto móvel (dispositivos móveis) para um usuário tais produtos ou serviços do seu interesse. </b></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Por exemplo, imagine você em busca de um restaurante para comer e que hoje você esteja interessado em comer sushi. Como você faria esta busca por um restaurante em sua cidade? Quais fontes você usaria ? Atualmente temos diversos repósitorios on-line em redes sociais e sites web especializados em agregar opiniões e críticas de usuários, mas todo este conteúdo ainda não é sumarizado ou processado de forma eficiente a fim de gerar uma opinião precisa sobre o que usuário deseja: Qual é a melhor opção de restaurante para mim naquele momento ou naquela cidade ? </div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Percebe-se múltiplas váriaveis que podem influenciar o poder de decisão de compra do usuário: Localização, opiniões dos amigos, opiniões de especialistas e opiniões de usuários que tem interesses e gostos similares a você. Isto ainda dificulta mais se considerarmos em um ambiente móvel, onde os requisitos são mais restritos onde você precisa de uma informação rápida e bem objetiva para tomada de decisão.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Meu trabalho visa exatamente resolver este problema, com uma proposta de um framework de recomendação que combine as melhores características das técnicas de filtragem de conteúdo e de técnicas de filtragem colaborativa a fim de construir um <b>meta-recomendador</b>, onde acreditamos que incorporando informações sobre o produto/serviço e opiniões/ críticas de usuários similares ao usuário ativo, este possa sugerir uma lista de recomendação rankeada apropriada com os melhores restaurantes da cidade naquele momento diretamente no seu aparelho móvel.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Para isso envolveremos o estudo de técnicas de <b>mineração de texto</b>, especificamente <b>processamento de linguagem natural</b> para extrair e sumarizar as críticas de usuários. Utilizaremos também de técnicas de classificação de texto como uma área que está em forte ascensão nesta linha de pesquisa que é <b>análise de sentimentos</b>, para extrair a polaridade (positivo ou negativo) de um comentário. E com estas informações sumarizadas e os metadados provenientes da descrição do serviço (localização, categorias, etc) podemos combinar essas informações em um meta-recomendador a fim de sugerir os serviços que melhor atendem os requisitos de um usuário em um determinado local e tempo (contexto móvel).</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">O escopo já está definido e o trabalho já está em andamento e experimentos. Estou utilizando de uma base extraída do <a href="http://foursquare.com/">Foursquare</a> com mais de 800 estabelecimentos e 1000 reviews sobre estes estabelecimentos, onde implementarei um protótipo móvel a fim de validar este framework, que obviamente é apenas o início de muitos trabalhos futuros a realizar especialmente onde se deve considerar outros quesitos importantes como: segurança, escabilidade, desempenho, etc.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Um dos trabalhos futuros que eu gostaria aqui de comentar é a influência das redes sociais no processo de recomendação. Estamos vendo cada vez mais uma nova tendência a se firmar que é o social-commerce. De acordo com especialistas , o <a href="http://en.wikipedia.org/wiki/Social_commerce">social - commerce</a> é o e-commerce que envolve o relacionamento entre pessoas. Com o surgimento das redes sociais, o comércio começou a se expandir para os relacionamentos no universo digital, onde estimula-se a compra em um potencial mercado consumidor, onde há, no mundo, aproximadamente um bilhão de pessoas/consumidores nas redes sociais. Um dos reflexos disso são os próprios<a href="http://pt.wikipedia.org/wiki/Compras_coletivas"> sites de compra coletiva,</a> que estão se viralizando pelo mundo todo e utiliza de mecanismos coletivos (sociais) para oferta de promoções e produtos.</div><div style="text-align: justify;"><br />
</div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://static2.linkatual.com/wp-content/uploads/2011/01/Compra-Coletiva.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="295" src="http://static2.linkatual.com/wp-content/uploads/2011/01/Compra-Coletiva.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Sites de Compra Coletiva Brasileiros</td></tr>
</tbody></table><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Mas o que venho aqui destacar é que estamos cada vez mais buscando respostas para perguntas que temos que são pontuais ou específicas. Irei dar um exemplo, eu estou interessado em comer um tipo de temaki específico como filadélfia (comida japonesa). Eu poderia simplesmente utilizar um sistema de recomendação que procurasse por termos que envolvesse temakis e após um processamento ele já poderia me dar uma resposta pré-elaborada de restaurantes que oferecem temakis de qualidade em minha cidade. Mas o cenário é bem mais complicado do que isso, além de as opiniões serem muitas vezes genéricas (não há esse nível de detalhamento sobre temakis filadélfia), focando apenas em serviços e qualidade como um todo do restaurante, temos o problema da influência social (as opiniões são genéricas ou de desconhecidos). Muitos acreditam que a opinião de um amigo ou alguém muito próximo a você pode influenciar decisivamente no processo de escolha de compra. Então, porque não recorrer aos meus amigos ? As opiniões deles contam e a rede social neste cenário pode nos ajudar nesta tarefa.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Foi aí que veio o que eu chamo de um <b>sistema colaborativo de recomendação baseado em perguntas e respostas móvel</b>. Alguns sistemas já começaram a desenvolver isto e um claro exemplo é o <a href="http://vark.com/">Aadvark</a> que foi comprado pela Google e foca em assistir usuários , onde os mesmos fazem perguntas e o sistema procura pessoas que possam melhor responder tais perguntas, funcionando como um sistema inteligente de perguntas e respostas.</div><div style="text-align: justify;"><br />
</div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://cultofmac.cultofmaccom.netdna-cdn.com/wordpress/wp-content/uploads/2009/10/aardvark_img1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="308" src="http://cultofmac.cultofmaccom.netdna-cdn.com/wordpress/wp-content/uploads/2009/10/aardvark_img1.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Aadvark no Iphone</td></tr>
</tbody></table><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Basicamente, os sistema que eu proponho é de você fazer perguntas para outros usuários deste sistema já cadastrados sobre lugares específicos ou serviços específicos e em vez de receber uma lista de recomendação de lugares processadas pelo sistema, você vai receber respostas de pessoas de verdade sobre estes lugares/serviços em questão. </div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Então, se eu perguntar agora ao sistema onde eu poderia comer um temaki filadélfia de qualidade em minha cidade, o sistema iria procurar pessoas que estariam em restaurantes que oferecem temaki, combinado pela influência social destas pessoas (daria prioridade aos meus amigos até desconhecidos) e lançaria esta pergunta para tais pessoas. Em questão de minutos você receberia respostas de usuários de vários pontos da cidade informando um bom restaurante, opiniões bem específicas e até descobrir que seu melhor amigo está naquele restaurante e te convida para acompanhá-lo.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcIzuiPJ95IL5knIF78gFZXC3YmjNRj8dK3EYKxoogCvmkxpjcXMVor5TxP546Byu1KBF6Yw7tcVV1vd3e-SDTBWyiT0RIOJ_kQ5HyocxF9vpuUqnWAflOeA3e2g-1hORPH1wd/s1600/Picture+8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcIzuiPJ95IL5knIF78gFZXC3YmjNRj8dK3EYKxoogCvmkxpjcXMVor5TxP546Byu1KBF6Yw7tcVV1vd3e-SDTBWyiT0RIOJ_kQ5HyocxF9vpuUqnWAflOeA3e2g-1hORPH1wd/s400/Picture+8.png" width="356" /></a></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td class="tr-caption" style="text-align: center;"><br />
Sistema de Perguntas e Respostas Colaborativo sobre Contexto Móvel</td></tr>
</tbody></table><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Um outro cenário ilustrativo apropriado para este tipo de serviço, seria por exemplo, saber se um restaurante está cheio naquele momento. Se eu perguntasse: 'Estou querendo comer no Bonaparte, agora? Alguém sabe dizer se tá lotado por aí ?' Em minutos eu recebesse a resposta de alguns usuários da cidade já dizendo: 'Pode vir aqui tá tranquilo demais!' ou 'Venha para a filial do Shopping Plaza tá tendo uma promoção no frango empanado!' Vejam a quantidade de opiniões em tempo real e a descoberta de serviços e promoções que eu recebo tudo em tempo real e tudo isto direto do meu telefone.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Esse serviço ainda pode ser agregado com serviços de localização como Foursquare, Gowalla ou Facebook que já utilizaria do seu histórico de check-ins de lugares que você frequenta e estimula por meio de perguntas e respostas criando um tipo de jogo em que te premia com pontos à medida que você vai interagindo ainda mais com o sistema (seja perguntando ou respondendo).</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Um dos grandes benefícios também desta aplicação é o estímulo de interação social entre os usuários. Pois, você poderia agradecer a resposta de um usuário e até criar um novo elo de amizade, se você desejar continuar a conversação. Acredito que sistemas colaborativos de Perguntas e respostas sobre um contexto móvel serão uma tendência em breve, ou se já não está em desenvolvimento, de aplicativos que estão por vir para dispositivos móveis.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Em breve darei mais informações sobre detalhes da minha dissertação, espero que tenham gostado deste post com uma das minhas idéias e trabalhos correntes</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Para mais informações sobre sistemas colaborativos, perguntas e respostas e recomendação procurem por <b>community</b> <b>Q&A location recommendations</b> no Google, sem dúvidas você vai ficar maravilhado com a quantidade de posts, estudos e artigos sobre esta área.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Atenciosamente,</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Marcel Caraciolo</div>marcelcaraciolohttp://www.blogger.com/profile/03000508520057818811noreply@blogger.com3