Linguagens de Programação - Python, JavaScript, PHP, Zope

Exemplos de scripts, artigos, entrevistas e palestras das linguagens de programação (Python, Javascript, PHP, CSS, HTML, XHTML, XML, Zope, JAVA, dentre outros)


terça-feira, 8 de julho de 2008

terça-feira, 8 de janeiro de 2008

PZPzine - Revista Online de Python, Zope e Plone

Para quem utiliza o framework Zope com programação em Python e desfruta do CMS Plone, está no ar a PZPzine, a revista digital sobre Python, Zope e Plone. Novas edições serão publicadas bimestralmente.

Já está disponível no site http://www.pzpzine.com/ a primeira versão da revista, que traz uma pequena introdução sobre a linguagem do Zope (PageTemplates, DTML, dentre outros), Python e Plone.

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).
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.

segunda-feira, 7 de janeiro de 2008

Renomeando Arquivos de um Diretório

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.

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.




>>> import os
>>> for nome in os.listdir('/home/diretorio/'):
... novo_nome = 'galeria_' + nome
... os.rename(nome, novo_nome)
>>>
>>> print 'Ok'
Ok

Lendo e-mails no Gmail

Estava dando uma pequena estudada na biblioteca smtplib do Python. Achei um projeto open source de uma outra biblioteca, que permite manipular os e-mails da sua caixa de entrada do Gmail.

A biblioteca se chama libgmail e está com uma versão estável para baixar. Abaixo segue um pequeno script mostrando como utilizá-la.





>>> import libgmail
>>> acc = libgmail.GmailAccount('seuemail@gmail.com', 'suasenha')
>>> acc.login()
>>> inbox = acc.getMessageByLabel('Inbox')
>>> len(inbox)
50
>>> for msg in inbox:
... print msg.subject
...
[ ... ]

quarta-feira, 28 de novembro de 2007

Palestra >> Python Avançado (ou Entendendo o Python)

Palestra realizada por Thomas Wouters, durante o Google Tech Talk 2007, em 21 de Fevereiro de 2007.

Título Original: Advanced Python: (or understanding Python)
Data da palestra: 21/Fevereiro/2007
Duração: 1 hora e 15 minutos
Língua: Inglês
Legenda: Não
Local: Google

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.


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.






Palestra >> Melhores Práticas no Desenvolvimento de Biblioteca em JavaScript


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.
Título Original: Best Practices in Javascript Library Design
Data da palestra: 17/Agosto/2007
Duração: 1 hora e 01 minutos
Língua: Inglês
Legenda: Não
Local: Google


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.


John Resig é desenvolvedor JavaScript pela Mozilla Corporation e é autor do livro "Pro Javascript Tecniques" - Técnicas Profissionais de Javascript. Ele também é o criador e líder do projeto da Biblioteca jQuery em Javascript. Atualmente, ele reside em Cambridge, Massachusetts.



segunda-feira, 3 de setembro de 2007

Manipulando Datas em Python

Abaixo segue um exemplo de manipulação de datas com o python, utilizando a biblioteca datetime.


>>> import datetime
>>> diasemana = ['Segunda-feira', 'Terça-feira', 'Quarta-feira', 'Quinta-feira', 'Sexta-feira', 'Sábado', 'Domingo']
>>> meses = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro']
>>> agora = datetime.date.today()
>>> aniversario = datetime.date(1984, 12, 28)
>>> mes = agora.month-1
>>> diadoano = agora.strftime('%j')
>>> diadasemana = datetime.date.weekday(agora)
>>> print 'Hoje é: ', agora.strftime('%d/%m/%Y')
Hoje é: 07/01/2008
>>> print 'Aniversário: ', aniversario.strftime('%d/%m/%Y')
Aniversário: 28/12/1984
>>> print 'Dia da semana (hoje): ', diasemana[diadasemana]
Dia da semana (hoje): Segunda-feira
>>> print 'Mês: ', meses[mes]
Mês: Janeiro
>>> print 'Somando-se 2 dias: ', (agora + datetime.timedelta(days=2)).strftime('%d/%m/%Y')
Somando-se 2 dias: 09/01/2008
>>> print 'Diminuindo 2 dias: ', (agora - datetime.timedelta(days=2)).strftime('%d/%m/%Y')
Diminuindo 2 dias: 05/01/2008
>>> print 'Somando-se 2 semanas: ', (agora + datetime.timedelta(weeks=2)).strftime('%d/%m/%Y')
Somando-se 2 semanas: 21/01/2008
>>> print 'Diminuindo 2 semanas: ', (agora - datetime.timedelta(weeks=2)).strftime('%d/%m/%Y')
Diminuindo 2 semanas: 24/12/2007
>>> print 'Somando-se 3 meses: ', (agora + datetime.timedelta(days=90)).strftime('%d/%m/%Y')
Somando-se 3 meses: 06/04/2008
>>> print 'Diminuindo 3 meses: ', (agora - datetime.timedelta(days=90)).strftime('%d/%m/%Y')
Diminuindo 3 meses: 09/10/2007
>>> print 'Somando-se 1 ano: ', (agora + datetime.timedelta(days=365)).strftime('%d/%m/%Y')
Somando-se 1 ano: 06/01/2009
>>> print 'Diminuindo 1 ano: ', (agora - datetime.timedelta(days=365)).strftime('%d/%m/%Y')
Diminuindo 1 ano: 07/01/2007
>>> idade = agora-aniversario
>>> print 'Idade: ', (idade.days)/365 , ' anos'
Idade: 23 anos
>>> print 'Hoje é o', diadoano + 'o. dia do ano'
Hoje é o 007o. dia do ano
...
[ ... ]

Marcadores

Notícias - Tecnologia

Google