Django Utilidades :: Marinho Brandaohttp://marinhobrandao.com/pt-brTue, 06 Jan 2009 05:27:47 -0000Primeiro gadget feito com django-gadgetshttp://marinhobrandao.com/blog/p/primeiro-gadget-feito-com-django-gadgets_129/<div class="document"> <p>Acabei de publicar meu primeiro gadget feito com django-gadgets <a class="footnote-reference" href="#id7" id="id1" name="id1">[1]</a> . É a Bíblia, em língua portuguesa, edição Almeida Atualizada. Você escolhe o livro e o capítulo e pronto: ele carrega embaixo. Simples assim.</p> <p>Para dar uma olhada, vá em <a class="footnote-reference" href="#id8" id="id2" name="id2">[2]</a> e adicione ao seu iGoogle com a opção <strong>&gt;&gt;Add module</strong> ou ao seu site na opção <strong>&gt;&gt;add to site</strong>.</p> <p>Você pode ainda adicionar ao Orkut <a class="footnote-reference" href="#id9" id="id3" name="id3">[3]</a>, MySpace <a class="footnote-reference" href="#id10" id="id4" name="id4">[4]</a> ou qualquer outro site compatível com OpenSocial <a class="footnote-reference" href="#id11" id="id5" name="id5">[5]</a> pela URL: <a class="footnote-reference" href="#id12" id="id6" name="id6">[6]</a> .</p> <p><strong>Links relacionados</strong></p> <table class="docutils footnote" frame="void" id="id7" rules="none"> <colgroup><col class="label" /><col /></colgroup> <tbody valign="top"> <tr><td class="label"><a class="fn-backref" href="#id1" name="id7">[1]</a></td><td><a class="reference" href="http://code.google.com/p/django-gadgets/">http://code.google.com/p/django-gadgets/</a></td></tr> </tbody> </table> <table class="docutils footnote" frame="void" id="id8" rules="none"> <colgroup><col class="label" /><col /></colgroup> <tbody valign="top"> <tr><td class="label"><a class="fn-backref" href="#id2" name="id8">[2]</a></td><td><a class="reference" href="http://www.googlemodules.com/module/4385/">http://www.googlemodules.com/module/4385/</a></td></tr> </tbody> </table> <table class="docutils footnote" frame="void" id="id9" rules="none"> <colgroup><col class="label" /><col /></colgroup> <tbody valign="top"> <tr><td class="label"><a class="fn-backref" href="#id3" name="id9">[3]</a></td><td><a class="reference" href="http://www.orkut.com">http://www.orkut.com</a></td></tr> </tbody> </table> <table class="docutils footnote" frame="void" id="id10" rules="none"> <colgroup><col class="label" /><col /></colgroup> <tbody valign="top"> <tr><td class="label"><a class="fn-backref" href="#id4" name="id10">[4]</a></td><td><a class="reference" href="http://www.myspace.com">http://www.myspace.com</a></td></tr> </tbody> </table> <table class="docutils footnote" frame="void" id="id11" rules="none"> <colgroup><col class="label" /><col /></colgroup> <tbody valign="top"> <tr><td class="label"><a class="fn-backref" href="#id5" name="id11">[5]</a></td><td><a class="reference" href="http://code.google.com/apis/opensocial/">http://code.google.com/apis/opensocial/</a></td></tr> </tbody> </table> <table class="docutils footnote" frame="void" id="id12" rules="none"> <colgroup><col class="label" /><col /></colgroup> <tbody valign="top"> <tr><td class="label"><a class="fn-backref" href="#id6" name="id12">[6]</a></td><td><a class="reference" href="http://adorador.es/gadgets/biblia/">http://adorador.es/gadgets/biblia/</a></td></tr> </tbody> </table> </div> Criando Google Gadgets no Djangohttp://marinhobrandao.com/blog/p/criando-google-gadgets-no-django_120/<div class="document"> <p>Criei mais um projetinho bacana pra quem está interessado em escrever aplicações para o iGoogle e para sistemas que utilizem a API OpenSocial (como MySpace, Hi5, Orkut, etc.) <a class="footnote-reference" href="#id8" id="id1" name="id1">[1]</a>, chama-se <strong>django-gadgets</strong> <a class="footnote-reference" href="#id9" id="id2" name="id2">[2]</a>.</p> <p>Para utilizá-lo, faça o download disponível através do <strong>svn</strong> <a class="footnote-reference" href="#id10" id="id3" name="id3">[3]</a> (ou em tarball <a class="footnote-reference" href="#id13" id="id4" name="id4">[6]</a>) e crie um link da pasta <strong>gadgets</strong> na pasta de <strong>contrib</strong> do Django ou em alguma outra que você prefira.</p> <p>Segue um exemplo abaixo:</p> <p><strong>Modulo</strong></p> <pre><code>from django.contrib.gadgets.models import GadgetModule, UserPrefEnum from adoradores.gadgets.models import AgendamentoVersiculo from adoradores.biblia.models import Versiculo class VersosModule(GadgetModule): title = 'Versos da Biblia' description = 'Leia todos os dias versos inspirados da Biblia' author = 'Marinho Brandao' author_email = 'marinho@gmail.com' user_prefs = [UserPrefEnum('tema', enumvalues={'1':'Esperanca','2':'Paz',}),] content_template = """ <style> * { font-family: arial, helvetica; font-size: 12px; } </style> <div class="all2"><div class="all"><div class="body"> %s </div></div></div> """ def render(self): opcoes = AgendamentoVersiculo.objects.all() #filter(data_agendamento=datetime.today()) self.content_html = self.content_template % '<br/>'.join(opcoes.latest('id').conteudo_para_lista()) return super(VersosModule, self).render()</code></pre><p><strong>URL</strong></p> <pre><code>urlpatterns = patterns('', (r'^versos/$', 'django.contrib.gadgets.views.gadget', {'module': VersosModule}), )</code></pre><p>Para ver um exemplo prático, adicione <a class="footnote-reference" href="#id11" id="id5" name="id5">[4]</a> como aplicação em seu iGoogle ou no SandBox do Orkut <a class="footnote-reference" href="#id12" id="id6" name="id6">[5]</a></p> <p><strong>Atualização</strong></p> <p>Você pode testar seus gadgets sem precisar adicioná-los ao iGoogle ou ao Orkut. Dê uma olhada no projeto <strong>opensocial-container-sample</strong> <a class="footnote-reference" href="#id14" id="id7" name="id7">[7]</a> que foi criado para isso.</p> <p><strong>Links relacionados</strong></p> <table class="docutils footnote" frame="void" id="id8" rules="none"> <colgroup><col class="label" /><col /></colgroup> <tbody valign="top"> <tr><td class="label"><a class="fn-backref" href="#id1" name="id8">[1]</a></td><td><a class="reference" href="http://code.google.com/apis/opensocial/">http://code.google.com/apis/opensocial/</a></td></tr> </tbody> </table> <table class="docutils footnote" frame="void" id="id9" rules="none"> <colgroup><col class="label" /><col /></colgroup> <tbody valign="top"> <tr><td class="label"><a class="fn-backref" href="#id2" name="id9">[2]</a></td><td><a class="reference" href="http://code.google.com/p/django-gadgets/">http://code.google.com/p/django-gadgets/</a></td></tr> </tbody> </table> <table class="docutils footnote" frame="void" id="id10" rules="none"> <colgroup><col class="label" /><col /></colgroup> <tbody valign="top"> <tr><td class="label"><a class="fn-backref" href="#id3" name="id10">[3]</a></td><td><a class="reference" href="http://code.google.com/p/django-gadgets/source">http://code.google.com/p/django-gadgets/source</a></td></tr> </tbody> </table> <table class="docutils footnote" frame="void" id="id11" rules="none"> <colgroup><col class="label" /><col /></colgroup> <tbody valign="top"> <tr><td class="label"><a class="fn-backref" href="#id5" name="id11">[4]</a></td><td><a class="reference" href="http://adorador.es/gadgets/versos/">http://adorador.es/gadgets/versos/</a></td></tr> </tbody> </table> <table class="docutils footnote" frame="void" id="id12" rules="none"> <colgroup><col class="label" /><col /></colgroup> <tbody valign="top"> <tr><td class="label"><a class="fn-backref" href="#id6" name="id12">[5]</a></td><td><a class="reference" href="http://sandbox.orkut.com/">http://sandbox.orkut.com/</a></td></tr> </tbody> </table> <table class="docutils footnote" frame="void" id="id13" rules="none"> <colgroup><col class="label" /><col /></colgroup> <tbody valign="top"> <tr><td class="label"><a class="fn-backref" href="#id4" name="id13">[6]</a></td><td><a class="reference" href="http://django-gadgets.googlecode.com/files/django-gadgets-0.9.tar.gz">http://django-gadgets.googlecode.com/files/django-gadgets-0.9.tar.gz</a></td></tr> </tbody> </table> <table class="docutils footnote" frame="void" id="id14" rules="none"> <colgroup><col class="label" /><col /></colgroup> <tbody valign="top"> <tr><td class="label"><a class="fn-backref" href="#id7" name="id14">[7]</a></td><td><a class="reference" href="http://code.google.com/p/opensocial-container-sample/">http://code.google.com/p/opensocial-container-sample/</a></td></tr> </tbody> </table> </div> OpenSocial: um grande baú de oportunidadeshttp://marinhobrandao.com/blog/p/opensocial-um-grande-bau-de-oportunidades/<div class="document"> <p>O Google não tem jeito mesmo! Agora os meninos de Mountain View lançaram há pouco mais de uma semana o grande contra-ataque ao Facebook que promete muito. É o OpenSocial <a class="footnote-reference" href="#id19" id="id1" name="id1">[1]</a>.</p> <p>O que acontece é que o OpenSocial, além de ter alguns dos maiores nomes da área (Orkut <a class="footnote-reference" href="#id20" id="id2" name="id2">[2]</a>, MySpace <a class="footnote-reference" href="#id21" id="id3" name="id3">[3]</a>, Hi5 <a class="footnote-reference" href="#id22" id="id4" name="id4">[4]</a>, Ning <a class="footnote-reference" href="#id23" id="id5" name="id5">[5]</a>, etc), oferece também uma novidade (que já não tem sido tão novidade assim) neste mercado: o da convergência em prol do consumidor final. Esta é a mesma tática usada com o Android <a class="footnote-reference" href="#id24" id="id6" name="id6">[6]</a> e com certeza tem sido e será cada vez mais usado pelo Google como arma poderosíssima, quase indestrutível.</p> <p>Agora já é possível tornar o Adorador.es <a class="footnote-reference" href="#id25" id="id7" name="id7">[7]</a> e o YAH <a class="footnote-reference" href="#id26" id="id8" name="id8">[8]</a> compatíveis com a plataforma e integrar de vez a moçada do Orkut e MySpace com essas soluções menores e segmentadas.</p> <p>Um projeto que já promete pelo nome é o django-opensocial <a class="footnote-reference" href="#id27" id="id9" name="id9">[9]</a> que provavelmente irá dispôr classes e views para a criação de aplicações e a consumação de aplicações de terceiros.</p> <p>E, claro, agora é possível ganhar dinheiro com o Orkut!</p> <p>Outros links bacanas sobre o tema: <a class="footnote-reference" href="#id28" id="id10" name="id10">[10]</a>, <a class="footnote-reference" href="#id29" id="id11" name="id11">[11]</a>, <a class="footnote-reference" href="#id30" id="id12" name="id12">[12]</a> (uma aplicação de exemplo), <a class="footnote-reference" href="#id31" id="id13" name="id13">[13]</a> (várias aplicações que já foram criadas), <a class="footnote-reference" href="#id32" id="id14" name="id14">[14]</a>, <a class="footnote-reference" href="#id33" id="id15" name="id15">[15]</a>, <a class="footnote-reference" href="#id34" id="id16" name="id16">[16]</a>, <a class="footnote-reference" href="#id35" id="id17" name="id17">[17]</a>, <a class="footnote-reference" href="#id36" id="id18" name="id18">[18]</a>.</p> <p><strong>Links relacionados</strong></p> <table class="docutils footnote" frame="void" id="id19" rules="none"> <colgroup><col class="label" /><col /></colgroup> <tbody valign="top"> <tr><td class="label"><a class="fn-backref" href="#id1" name="id19">[1]</a></td><td><a class="reference" href="http://code.google.com/apis/opensocial/">http://code.google.com/apis/opensocial/</a></td></tr> </tbody> </table> <table class="docutils footnote" frame="void" id="id20" rules="none"> <colgroup><col class="label" /><col /></colgroup> <tbody valign="top"> <tr><td class="label"><a class="fn-backref" href="#id2" name="id20">[2]</a></td><td><a class="reference" href="http://www.orkut.com/">http://www.orkut.com/</a></td></tr> </tbody> </table> <table class="docutils footnote" frame="void" id="id21" rules="none"> <colgroup><col class="label" /><col /></colgroup> <tbody valign="top"> <tr><td class="label"><a class="fn-backref" href="#id3" name="id21">[3]</a></td><td><a class="reference" href="http://www.myspace.com/">http://www.myspace.com/</a></td></tr> </tbody> </table> <table class="docutils footnote" frame="void" id="id22" rules="none"> <colgroup><col class="label" /><col /></colgroup> <tbody valign="top"> <tr><td class="label"><a class="fn-backref" href="#id4" name="id22">[4]</a></td><td><a class="reference" href="http://www.hi5.com/">http://www.hi5.com/</a></td></tr> </tbody> </table> <table class="docutils footnote" frame="void" id="id23" rules="none"> <colgroup><col class="label" /><col /></colgroup> <tbody valign="top"> <tr><td class="label"><a class="fn-backref" href="#id5" name="id23">[5]</a></td><td><a class="reference" href="http://opensocial.ning.com/">http://opensocial.ning.com/</a></td></tr> </tbody> </table> <table class="docutils footnote" frame="void" id="id24" rules="none"> <colgroup><col class="label" /><col /></colgroup> <tbody valign="top"> <tr><td class="label"><a class="fn-backref" href="#id6" name="id24">[6]</a></td><td><a class="reference" href="http://www.openhandsetalliance.com/">http://www.openhandsetalliance.com/</a></td></tr> </tbody> </table> <table class="docutils footnote" frame="void" id="id25" rules="none"> <colgroup><col class="label" /><col /></colgroup> <tbody valign="top"> <tr><td class="label"><a class="fn-backref" href="#id7" name="id25">[7]</a></td><td><a class="reference" href="http://adorador.es/">http://adorador.es/</a></td></tr> </tbody> </table> <table class="docutils footnote" frame="void" id="id26" rules="none"> <colgroup><col class="label" /><col /></colgroup> <tbody valign="top"> <tr><td class="label"><a class="fn-backref" href="#id8" name="id26">[8]</a></td><td><a class="reference" href="http://www.youarehunted.com/">http://www.youarehunted.com/</a></td></tr> </tbody> </table> <table class="docutils footnote" frame="void" id="id27" rules="none"> <colgroup><col class="label" /><col /></colgroup> <tbody valign="top"> <tr><td class="label"><a class="fn-backref" href="#id9" name="id27">[9]</a></td><td><a class="reference" href="http://code.google.com/p/django-opensocial/">http://code.google.com/p/django-opensocial/</a></td></tr> </tbody> </table> <table class="docutils footnote" frame="void" id="id28" rules="none"> <colgroup><col class="label" /><col /></colgroup> <tbody valign="top"> <tr><td class="label"><a class="fn-backref" href="#id10" name="id28">[10]</a></td><td><a class="reference" href="http://www.meiobit.com/google/opensocial_converg_ncia_das_redes_sociais">http://www.meiobit.com/google/opensocial_converg_ncia_das_redes_sociais</a></td></tr> </tbody> </table> <table class="docutils footnote" frame="void" id="id29" rules="none"> <colgroup><col class="label" /><col /></colgroup> <tbody valign="top"> <tr><td class="label"><a class="fn-backref" href="#id11" name="id29">[11]</a></td><td><a class="reference" href="http://code.google.com/apis/orkut/articles/anatomy.html">http://code.google.com/apis/orkut/articles/anatomy.html</a></td></tr> </tbody> </table> <table class="docutils footnote" frame="void" id="id30" rules="none"> <colgroup><col class="label" /><col /></colgroup> <tbody valign="top"> <tr><td class="label"><a class="fn-backref" href="#id12" name="id30">[12]</a></td><td><a class="reference" href="http://g.ilike.com/gadget/songs_ilike">http://g.ilike.com/gadget/songs_ilike</a></td></tr> </tbody> </table> <table class="docutils footnote" frame="void" id="id31" rules="none"> <colgroup><col class="label" /><col /></colgroup> <tbody valign="top"> <tr><td class="label"><a class="fn-backref" href="#id13" name="id31">[13]</a></td><td><a class="reference" href="http://opensocial.ning.com/">http://opensocial.ning.com/</a></td></tr> </tbody> </table> <table class="docutils footnote" frame="void" id="id32" rules="none"> <colgroup><col class="label" /><col /></colgroup> <tbody valign="top"> <tr><td class="label"><a class="fn-backref" href="#id14" name="id32">[14]</a></td><td><a class="reference" href="http://code.google.com/apis/opensocial/container.html">http://code.google.com/apis/opensocial/container.html</a></td></tr> </tbody> </table> <table class="docutils footnote" frame="void" id="id33" rules="none"> <colgroup><col class="label" /><col /></colgroup> <tbody valign="top"> <tr><td class="label"><a class="fn-backref" href="#id15" name="id33">[15]</a></td><td><a class="reference" href="http://code.google.com/apis/opensocial/faq.html">http://code.google.com/apis/opensocial/faq.html</a></td></tr> </tbody> </table> <table class="docutils footnote" frame="void" id="id34" rules="none"> <colgroup><col class="label" /><col /></colgroup> <tbody valign="top"> <tr><td class="label"><a class="fn-backref" href="#id16" name="id34">[16]</a></td><td><a class="reference" href="http://code.google.com/apis/opensocial/docs/javascript/reference/index.html">http://code.google.com/apis/opensocial/docs/javascript/reference/index.html</a></td></tr> </tbody> </table> <table class="docutils footnote" frame="void" id="id35" rules="none"> <colgroup><col class="label" /><col /></colgroup> <tbody valign="top"> <tr><td class="label"><a class="fn-backref" href="#id17" name="id35">[17]</a></td><td><a class="reference" href="http://en.wikipedia.org/wiki/OpenSocial">http://en.wikipedia.org/wiki/OpenSocial</a></td></tr> </tbody> </table> <table class="docutils footnote" frame="void" id="id36" rules="none"> <colgroup><col class="label" /><col /></colgroup> <tbody valign="top"> <tr><td class="label"><a class="fn-backref" href="#id18" name="id36">[18]</a></td><td><a class="reference" href="http://code.google.com/apis/gadgets/">http://code.google.com/apis/gadgets/</a></td></tr> </tbody> </table> </div> Android faz o gPhone parecer um brinquedinhohttp://marinhobrandao.com/blog/p/android-faz-o-gphone-parecer-um-brinquedinho_102/<div class="document"> <p>A legião de especuladores cada vez maior sobre &quot;o futuro do Google&quot; (ou &quot;qual será o próximo passo do Google para dominar o mundo&quot;) &quot;sofreu&quot; um <strong>tapa na cara</strong> nesta última terça-feira.</p> <p>Quando todos esperavam um &quot;iPhone killer&quot; ou um pacote de aplicativos móveis, o Google mostrou que possui mais imaginação do que eles, e exatamente por isso, provou que o tapa na cara foi excitante.</p> <p>Também, já me incomodava a possibilidade de o Google criar um pacote de aplicativos, quanto mais um aparelho móvel... seria muito pouco para uma empresa com as aspirações que ele possui. Pois ele fez jus à fama: lançou [4] a maior cartada do Linux pós-Ubuntu e calou novamente qualquer um que ousa dizer que eles não são uma empresa empreendedora [6] ou não dê lucros [5] (uma frase dessa só podia sair da mente doentia do <strong>Steve Ballmer</strong>).</p> <p>O <strong>Android</strong> está mais para &quot;Symbian killer&quot; e provavelmente até para &quot;Microsoft/Apple estrangulator&quot;. Basta fluir a imaginação – como fez <strong>Rafael Lullis</strong> em seu “Android é o PC 2.0, a versão mobile do IBM PC” [1] – para perceber que o Android não é “apenas mais um Linux” [2]. Ele é uma sacada tão imensa quanto foi a da dobradinha IBM/Microsoft na virada do PC em cima do Macintosh, porém com um elemento que agora ganha um peso ainda mais extraordinário: a filosofia software-livre, encabeçada pelo Linux.</p> <p>Daqui a 5 dias sai o aguardado Android SDK [3] e estará a iniciada a corrida pelas pepitas de ouro da nova plataforma. Eu estarei lá, procurando por <strong>compatilibidade com Python/Django</strong>. E você?</p> <p><strong>Links relacionados:</strong></p> <p>[1] <a class="reference" href="http://webinsider.uol.com.br/index.php/2007/11/06/android-e-o-pc-20-a-versao-mobile-do-ibm-pc/">http://webinsider.uol.com.br/index.php/2007/11/06/android-e-o-pc-20-a-versao-mobile-do-ibm-pc/</a></p> <p>[2] <a class="reference" href="http://pcworld.uol.com.br/noticias/2007/11/06/idgnoticia.2007-11-06.1911146740/">http://pcworld.uol.com.br/noticias/2007/11/06/idgnoticia.2007-11-06.1911146740/</a></p> <p>[3] <a class="reference" href="http://www.openhandsetalliance.com/developers.html">http://www.openhandsetalliance.com/developers.html</a></p> <p>[4] <a class="reference" href="http://www.openhandsetalliance.com/">http://www.openhandsetalliance.com/</a></p> <p>[5] <a class="reference" href="http://googlediscovery.com/2007/10/18/balanco-da-google-surpreende-os-investidores/">http://googlediscovery.com/2007/10/18/balanco-da-google-surpreende-os-investidores/</a></p> <p>[6] <a class="reference" href="http://www.agenciainternet.com.br/noticias.php?id_noticia=160">http://www.agenciainternet.com.br/noticias.php?id_noticia=160</a></p> </div> Microsoft e Google na justiçahttp://marinhobrandao.com/blog/p/microsoft-e-google-na-justica_77/Agora a briga é de pesos pesados: <a href="http://teknologico.net/2007/04/web/microsoft-quer-revisao-da-compra-da-doubleclick-pelo-google/"><strong>Microsoft</strong> quer ver o <strong>Google</strong> punido por causa da compra da <strong>DoubleClick</strong></a> enquanto o <a href="http://idgnow.uol.com.br/mercado/2007/06/11/idgnoticia.2007-06-11.9823352916"><strong>Google</strong> quer ver a <strong>Microsoft</strong> punida pela busca do <strong>Windows Vista</strong></a>. E agora hein? Será que a <strong>Microsoft</strong> agora receber a punição que estava atravessada na garganta da <strong>Netscape</strong>? Já estava passando da hora...