<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6648059</id><updated>2011-11-29T15:21:08.838-02:00</updated><category term='javascript'/><category term='python'/><category term='zope'/><title type='text'>Linguagens de Programação - Python, JavaScript, PHP, Zope</title><subtitle type='html'>Exemplos de scripts, artigos, entrevistas e palestras das linguagens de programação (Python, Javascript, PHP, CSS, HTML, XHTML, XML, Zope, JAVA, dentre outros)</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://kykocamp.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6648059/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://kykocamp.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Rodrigo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6648059.post-6301109202029875754</id><published>2008-07-08T12:45:00.001-03:00</published><updated>2008-07-08T12:47:41.374-03:00</updated><title type='text'>Jaxtr</title><content type='html'>&lt;embed src="http://www.jaxtr.com/user/flash/smallwidget.swf?destctx=kykocamp" FlashVars="noAcct=0&amp;titleJaxtr=Connect%20by%20phone%21&amp;userJaxtr=kykocamp&amp;apiURL=http://www.jaxtr.com/user&amp;apiURLAlt=http://www.jaxtr.com/user&amp;sc=Blogger" quality="high" bgcolor="#ffffff" width="166" height="270" name="jaxtrwidget" wmode="transparent" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;&lt;/embed&gt;&lt;div&gt;&lt;a href="http://www.jaxtr.com/user/registration.jsp?userJaxtr=kykocamp&amp;wtype=small&amp;sc=Blogger"&gt;Get jaxtr&lt;/a&gt; | &lt;a href="http://www.jaxtr.com/user/login.jsp"&gt;Login&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6648059-6301109202029875754?l=kykocamp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kykocamp.blogspot.com/feeds/6301109202029875754/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6648059&amp;postID=6301109202029875754' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6648059/posts/default/6301109202029875754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6648059/posts/default/6301109202029875754'/><link rel='alternate' type='text/html' href='http://kykocamp.blogspot.com/2008/07/jaxtr.html' title='Jaxtr'/><author><name>Rodrigo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6648059.post-3607974509393544577</id><published>2008-01-08T02:44:00.001-02:00</published><updated>2008-01-08T03:17:10.534-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='zope'/><title type='text'>PZPzine - Revista Online de Python, Zope e Plone</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;a style="font-weight: bold;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_MUVbUHmZKIw/R4MABhS6twI/AAAAAAAAAA4/lF01AWWX-y8/s1600-h/zope-server123.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_MUVbUHmZKIw/R4MABhS6twI/AAAAAAAAAA4/lF01AWWX-y8/s320/zope-server123.gif" alt="" id="BLOGGER_PHOTO_ID_5152962424759564034" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;Para quem utiliza o framework Zope com programação em Python e desfruta do CMS Plone, está no ar a &lt;a href="http://www.pzpzine.com/"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;PZPzine&lt;/span&gt;&lt;/a&gt;, a revista digital sobre &lt;a href="http://www.python.org/"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Python&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://www.zope.org/"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Zope &lt;/span&gt;&lt;/a&gt;e &lt;a href="http://www.plone.org/"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Plone&lt;/span&gt;&lt;/a&gt;. Novas edições serão publicadas bimestralmente.&lt;br /&gt;&lt;br /&gt;Já está disponível no site &lt;a style="color: rgb(0, 153, 0);" href="http://www.pzpzine.com/"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;http://www.pzpzine.com/&lt;/span&gt;&lt;/a&gt; a &lt;a href="http://www.pzpzine.com/pzpzine_01.pdf"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;primeira versão&lt;/span&gt;&lt;/a&gt; da revista, que traz uma pequena introdução sobre a linguagem do Zope (PageTemplates, DTML, dentre outros), Python e Plone.&lt;br /&gt;&lt;br /&gt;A versão também traz um pequeno artigo de Migração dos sistemas antigos de Plone/Zope para as novas versões do framework e do CMS. A revista digital contém um FAQ, em que são respondidas as perguntas mais frequentes sobre o assunto tratado, além de uma área denominada PyCoffe, em que o autor trata de forma simples (não muito conceitual, com intuito de leigos entenderem o que está sendo passado) alguns assuntos de Zope, Python e Plone. Na primeira versão, o autor explica como funciona o sistema de looping do Zope e mostra também como migrar os códigos escritos em DTML para ZPT (Zope PageTemplate).&lt;br /&gt;Vamos ver o que virá de interessantes nas próximas edições. Não tenho experiência com o Plone (desenvolvo e trabalho no meu próprio CMS), mas estou afim de começar a aprender a mexer com ele.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6648059-3607974509393544577?l=kykocamp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kykocamp.blogspot.com/feeds/3607974509393544577/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6648059&amp;postID=3607974509393544577' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6648059/posts/default/3607974509393544577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6648059/posts/default/3607974509393544577'/><link rel='alternate' type='text/html' href='http://kykocamp.blogspot.com/2008/01/pzpzine-revista-online-de-python-zope-e.html' title='PZPzine - Revista Online de Python, Zope e Plone'/><author><name>Rodrigo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_MUVbUHmZKIw/R4MABhS6twI/AAAAAAAAAA4/lF01AWWX-y8/s72-c/zope-server123.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6648059.post-7163368619538521092</id><published>2008-01-07T05:13:00.000-02:00</published><updated>2008-01-08T03:24:30.610-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Renomeando Arquivos de um Diretório</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_MUVbUHmZKIw/R04a-1dZTHI/AAAAAAAAAAo/e9depiWFljM/s320/python-1234-z.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px;" src="http://1.bp.blogspot.com/_MUVbUHmZKIw/R04a-1dZTHI/AAAAAAAAAAo/e9depiWFljM/s320/python-1234-z.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;Fui criar um galeria de fotos e me deparei com a seguinte questão: todas as fotos tinham um prefixo "galeria_" antes do nome da foto.&lt;br /&gt;&lt;br /&gt;Com isso, eu teria que renomear todas as imagens que já estavam no diretório com o prefixo sugerido. Então, decidi criar esse script para renomeá-las.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&gt;&gt;&gt; import os&lt;br /&gt;&gt;&gt;&gt; for nome in os.listdir('/home/diretorio/'):&lt;br /&gt;...   novo_nome = 'galeria_' + nome&lt;br /&gt;...   os.rename(nome, novo_nome)&lt;br /&gt;&gt;&gt;&gt;&lt;br /&gt;&gt;&gt;&gt; print 'Ok'&lt;br /&gt;Ok&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6648059-7163368619538521092?l=kykocamp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kykocamp.blogspot.com/feeds/7163368619538521092/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6648059&amp;postID=7163368619538521092' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6648059/posts/default/7163368619538521092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6648059/posts/default/7163368619538521092'/><link rel='alternate' type='text/html' href='http://kykocamp.blogspot.com/2008/01/renomeando-arquivos-de-um-diretrio.html' title='Renomeando Arquivos de um Diretório'/><author><name>Rodrigo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_MUVbUHmZKIw/R04a-1dZTHI/AAAAAAAAAAo/e9depiWFljM/s72-c/python-1234-z.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6648059.post-5773309541591188116</id><published>2008-01-07T04:19:00.000-02:00</published><updated>2008-01-08T03:24:55.234-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Lendo e-mails no Gmail</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_MUVbUHmZKIw/R04a-1dZTHI/AAAAAAAAAAo/e9depiWFljM/s320/python-1234-z.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px;" src="http://1.bp.blogspot.com/_MUVbUHmZKIw/R04a-1dZTHI/AAAAAAAAAAo/e9depiWFljM/s320/python-1234-z.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;Estava dando uma pequena estudada na biblioteca &lt;a href="http://www.python.org/doc/1.5.2p2/lib/module-smtplib.html"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;smtplib&lt;/span&gt; &lt;/a&gt;do Python. Achei um projeto open source de uma outra biblioteca, que permite manipular os e-mails da sua caixa de entrada do Gmail.&lt;br /&gt;&lt;br /&gt;A biblioteca se chama &lt;a href="http://libgmail.sourceforge.net/"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;libgmail &lt;/span&gt;&lt;/a&gt;e está com uma versão estável para baixar. Abaixo segue um pequeno script mostrando como utilizá-la.&lt;span style="color: rgb(0, 102, 0);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:webdings;font-size:100%;"  &gt;&gt;&gt;&gt; import libgmail&lt;br /&gt;&gt;&gt;&gt; acc = libgmail.GmailAccount('seuemail@gmail.com', 'suasenha')&lt;br /&gt;&gt;&gt;&gt; acc.login()&lt;br /&gt;&gt;&gt;&gt; inbox = acc.getMessageByLabel('Inbox')&lt;br /&gt;&gt;&gt;&gt; len(inbox)&lt;br /&gt;50&lt;br /&gt;&gt;&gt;&gt; for msg in inbox:&lt;br /&gt;...   print msg.subject&lt;br /&gt;...&lt;br /&gt;[ ... ]&lt;/span&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6648059-5773309541591188116?l=kykocamp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kykocamp.blogspot.com/feeds/5773309541591188116/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6648059&amp;postID=5773309541591188116' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6648059/posts/default/5773309541591188116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6648059/posts/default/5773309541591188116'/><link rel='alternate' type='text/html' href='http://kykocamp.blogspot.com/2008/01/lendo-e-mails-no-gmail.html' title='Lendo e-mails no Gmail'/><author><name>Rodrigo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_MUVbUHmZKIw/R04a-1dZTHI/AAAAAAAAAAo/e9depiWFljM/s72-c/python-1234-z.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6648059.post-3070346400858032501</id><published>2007-11-28T16:51:00.000-02:00</published><updated>2008-01-08T03:25:30.381-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Palestra &gt;&gt; Python Avançado (ou Entendendo o Python)</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;Palestra realizada por Thomas Wouters, durante o Google Tech Talk 2007, em 21 de Fevereiro de 2007.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;Título Original: &lt;span style="color: rgb(255, 0, 0);"&gt;Advanced Python: (or understanding Python)&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;Data da palestra: &lt;span style="color: rgb(255, 0, 0);"&gt;21/Fevereiro/2007&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;Duração: &lt;span style="color: rgb(255, 0, 0);"&gt;1 hora e 15 minutos&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;Língua: &lt;span style="color: rgb(255, 0, 0);"&gt;Inglês&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;Legenda: &lt;span style="color: rgb(255, 0, 0);"&gt;Não&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;Local: &lt;a href="http://www.google.com.br/"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Google&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_MUVbUHmZKIw/R04a-1dZTHI/AAAAAAAAAAo/e9depiWFljM/s320/python-1234-z.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px;" src="http://1.bp.blogspot.com/_MUVbUHmZKIw/R04a-1dZTHI/AAAAAAAAAAo/e9depiWFljM/s320/python-1234-z.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;Palestra falando sobre a abstração da linguagem Python enquanto orientação a objetos, que é fundamentalmente diferente de linguagens como Java e C++. A dinâmica e a natureza introspectiva do Python que permite os mecanismos da linguagem diferentemente das linguagens estáticas. Essa palestra tem como objetivo mostrar os programadores iniciantes em Python sobre esses fundamentos, o mecanismo da linguagem que eles podem utilizar e como efetivamente utilizá-los na prática. Entre os tópicos abordados estão a tipagem dinâmica, interfaces, decriptadores, decoradores, meta-classes, soluções comuns para resolver problemas explícitos de alocação de memória e as principais diferenças entre dados C/C++ e objetos Python e implementações CPython em geral. Essa palestra é parte da série de "Tópicos Avançados de Linguagens de Programação" (Advanced Topics in Programming Languages). O ponto chave dessa série é encorajar todas as pessoas que trabalham na Google, que sabem e amam linguagens de programação para compartilhar seus conhecimentos.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:georgia;font-size:85%;"  &gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Observação: Vale ressaltar que as visões e opiniões expressadas por Thomas durante sua palestra, são únicas e exclusivas dele, e não necessariamente representam as visões e opiniões da Google Inc.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;embed style="width: 400px; height: 326px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docId=7760178035196894549&amp;amp;hl=en" flashvars=""&gt;&lt;/embed&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6648059-3070346400858032501?l=kykocamp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kykocamp.blogspot.com/feeds/3070346400858032501/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6648059&amp;postID=3070346400858032501' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6648059/posts/default/3070346400858032501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6648059/posts/default/3070346400858032501'/><link rel='alternate' type='text/html' href='http://kykocamp.blogspot.com/2007/11/palestra-python-avanado-ou-entendendo-o.html' title='Palestra &gt;&gt; Python Avançado (ou Entendendo o Python)'/><author><name>Rodrigo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_MUVbUHmZKIw/R04a-1dZTHI/AAAAAAAAAAo/e9depiWFljM/s72-c/python-1234-z.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6648059.post-3372829164766126248</id><published>2007-11-28T11:38:00.000-02:00</published><updated>2008-01-08T03:25:51.586-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>Palestra &gt;&gt; Melhores Práticas no Desenvolvimento de Biblioteca em JavaScript</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_MUVbUHmZKIw/R02VOFdZTFI/AAAAAAAAAAM/kWDmfx5I9TI/s1600-h/javascript.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_MUVbUHmZKIw/R02VOFdZTFI/AAAAAAAAAAM/kWDmfx5I9TI/s320/javascript.gif" alt="" id="BLOGGER_PHOTO_ID_5137926819115781202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;div  style="text-align: justify;font-family:georgia;"&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;Abaixo segue uma palestra, realizado por John Resig, que trabalha no Mozilla Corporation, e é um dos criadores do jQuery, que está previsto para integrar a versão 3.0 do Mozilla Firefox.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;Título Original: &lt;span style="color: rgb(255, 0, 0);"&gt;Best Practices in Javascript Library Design&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;Data da palestra: &lt;span style="color: rgb(255, 0, 0);"&gt;17/Agosto/2007&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;Duração: &lt;span style="color: rgb(255, 0, 0);"&gt;1 hora e 01 minutos&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;Língua: &lt;span style="color: rgb(255, 0, 0);"&gt;Inglês&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;Legenda: &lt;span style="color: rgb(255, 0, 0);"&gt;Não&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;Local: &lt;a href="http://www.google.com.br/"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Google&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-weight: bold;font-family:georgia;font-size:85%;"  &gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Observação: Vale ressaltar que as visões e opiniões expressadas por John durante sua palestra, são únicas e exclusivas dele, e não necessariamente representam as visões e opiniões da Google Inc.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://ejohn.org/"&gt;John Resig&lt;/a&gt; é desenvolvedor JavaScript pela &lt;a href="http://mozilla.com/"&gt;Mozilla Corporation&lt;/a&gt; e é autor do livro "&lt;a href="http://jspro.org/"&gt;Pro Javascript Tecniques&lt;/a&gt;" - Técnicas Profissionais de Javascript. Ele também é o criador e líder do projeto da &lt;a href="http://jquery.com/"&gt;Biblioteca jQuery em Javascript&lt;/a&gt;. Atualmente, ele reside em Cambridge, Massachusetts.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;embed style="width: 400px; height: 326px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docId=-474821803269194441&amp;amp;hl=en" flashvars=""&gt;&lt;/embed&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6648059-3372829164766126248?l=kykocamp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kykocamp.blogspot.com/feeds/3372829164766126248/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6648059&amp;postID=3372829164766126248' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6648059/posts/default/3372829164766126248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6648059/posts/default/3372829164766126248'/><link rel='alternate' type='text/html' href='http://kykocamp.blogspot.com/2007/11/melhores-prticas-no-desenvolvimento-de.html' title='Palestra &gt;&gt; Melhores Práticas no Desenvolvimento de Biblioteca em JavaScript'/><author><name>Rodrigo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_MUVbUHmZKIw/R02VOFdZTFI/AAAAAAAAAAM/kWDmfx5I9TI/s72-c/javascript.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6648059.post-4263599903760689989</id><published>2007-09-03T12:12:00.000-03:00</published><updated>2008-01-08T03:26:13.457-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Manipulando Datas em Python</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Abaixo segue um exemplo de manipulação de datas com o python, utilizando a biblioteca &lt;a href="http://docs.python.org/lib/module-datetime.html"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;datetime&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&gt;&gt;&gt; import datetime&lt;br /&gt;&gt;&gt;&gt; diasemana = ['Segunda-feira', 'Terça-feira', 'Quarta-feira', 'Quinta-feira', 'Sexta-feira', 'Sábado', 'Domingo']&lt;br /&gt;&gt;&gt;&gt; meses = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro']&lt;br /&gt;&gt;&gt;&gt; agora = datetime.date.today()&lt;br /&gt;&gt;&gt;&gt; aniversario = datetime.date(1984, 12, 28)&lt;br /&gt;&gt;&gt;&gt; mes = agora.month-1&lt;br /&gt;&gt;&gt;&gt; diadoano = agora.strftime('%j')&lt;br /&gt;&gt;&gt;&gt; diadasemana = datetime.date.weekday(agora)&lt;br /&gt;&gt;&gt;&gt; print 'Hoje é: ', agora.strftime('%d/%m/%Y')&lt;br /&gt;Hoje é:  07/01/2008&lt;br /&gt;&gt;&gt;&gt; print 'Aniversário: ', aniversario.strftime('%d/%m/%Y')&lt;br /&gt;Aniversário:  28/12/1984&lt;br /&gt;&gt;&gt;&gt; print 'Dia da semana (hoje): ', diasemana[diadasemana]&lt;br /&gt;Dia da semana (hoje):  Segunda-feira&lt;br /&gt;&gt;&gt;&gt; print 'Mês: ', meses[mes]&lt;br /&gt;Mês:  Janeiro&lt;br /&gt;&gt;&gt;&gt; print 'Somando-se 2 dias: ', (agora + datetime.timedelta(days=2)).strftime('%d/%m/%Y')&lt;br /&gt;Somando-se 2 dias:  09/01/2008&lt;br /&gt;&gt;&gt;&gt; print 'Diminuindo 2 dias: ', (agora - datetime.timedelta(days=2)).strftime('%d/%m/%Y')&lt;br /&gt;Diminuindo 2 dias:  05/01/2008&lt;br /&gt;&gt;&gt;&gt; print 'Somando-se 2 semanas: ', (agora + datetime.timedelta(weeks=2)).strftime('%d/%m/%Y')&lt;br /&gt;Somando-se 2 semanas:  21/01/2008&lt;br /&gt;&gt;&gt;&gt; print 'Diminuindo 2 semanas: ', (agora - datetime.timedelta(weeks=2)).strftime('%d/%m/%Y')&lt;br /&gt;Diminuindo 2 semanas:  24/12/2007&lt;br /&gt;&gt;&gt;&gt; print 'Somando-se 3 meses: ', (agora + datetime.timedelta(days=90)).strftime('%d/%m/%Y')&lt;br /&gt;Somando-se 3 meses:  06/04/2008&lt;br /&gt;&gt;&gt;&gt; print 'Diminuindo 3 meses: ', (agora - datetime.timedelta(days=90)).strftime('%d/%m/%Y')&lt;br /&gt;Diminuindo 3 meses:  09/10/2007&lt;br /&gt;&gt;&gt;&gt; print 'Somando-se 1 ano: ', (agora + datetime.timedelta(days=365)).strftime('%d/%m/%Y')&lt;br /&gt;Somando-se 1 ano:  06/01/2009&lt;br /&gt;&gt;&gt;&gt; print 'Diminuindo 1 ano: ', (agora - datetime.timedelta(days=365)).strftime('%d/%m/%Y')&lt;br /&gt;Diminuindo 1 ano:  07/01/2007&lt;br /&gt;&gt;&gt;&gt; idade = agora-aniversario&lt;br /&gt;&gt;&gt;&gt; print 'Idade: ', (idade.days)/365 , ' anos'&lt;br /&gt;Idade:  23  anos&lt;br /&gt;&gt;&gt;&gt; print 'Hoje é o', diadoano + 'o. dia do ano'&lt;br /&gt;Hoje é o 007o. dia do ano&lt;br /&gt;...&lt;br /&gt;[ ... ]&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6648059-4263599903760689989?l=kykocamp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kykocamp.blogspot.com/feeds/4263599903760689989/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6648059&amp;postID=4263599903760689989' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6648059/posts/default/4263599903760689989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6648059/posts/default/4263599903760689989'/><link rel='alternate' type='text/html' href='http://kykocamp.blogspot.com/2007/09/manipulando-datas-em-python.html' title='Manipulando Datas em Python'/><author><name>Rodrigo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
