Posts com o tag ‘Python’

6jul2009

fisl10 – Por que Python?

(3) comentários

O palestrante Marco André Lopes Mendes iniciou a apresentação dizendo que iria tentar convencer quem estava assistindo a usar Python.

Ele mostrou dez razões (que viraram doze) para aprender Python.

1 – É legal
Simples, legível, clara, elegante e próxima da linguagem natural. Mesmo quem não tem conhecimento da linguagem, entende bem quando olha o código.
Abaixo um exemplo de manipulação de arquivos texto:

arquivo = open("emails.txt")
dominios = {}

for contato in arquivo:
    resto, dominio = contato.split("@")
    dominio = dominio.replace("\r\n", "")

    if dominio in dominios:
        dominios[dominio] += 1
    else
        dominios[dominio] = 1
arquivo.close()

arquivo = open("dominios.txt", "w")
print "%-30s - %-5s" %("Dominios", "Ocorrencias")
for dominio in dominios.keys()
    print "%-30s - %-5s" %(dominio, dominios[dominio])
    registro = "%s;%s\n" %(dominio, dominios[dominio])
    arquivo.write(registro)
arquivo.close()

.
2 – Já vem com acessórios
Uma analogia com um carro que já vem com opcionais de série. Os recursos que vêm com Python são poderosos: persistência de objetos, banco de dados, geração de arquivos PDFs, geração de gráficos, protocolos de rede, Web, criptografia, etc.
.
3 – É muito utilizado fora do Brasil
Casos de sucesso como Google, Industrial Light and Magic, DreamWorks e Nokia.
.
4 – É utilizado no Brasil com sucesso
Exemplos são Async – Stoq, LZT, Instituto Nokia de Tecnologia e InVesalius.
.
5 – É utilizado na Web fora do Brasil
Por exemplo, Novel e Cia, utilizando Django, um framework de desenvolvimento rápido para Web.
.
6 – É utilizado na Web no Brasil
IDG Brasil, Vencia, República Federativa do Brasil, Politec, SEBRAE, Varig.
.
7 – Há empregos para programadores Python no Brasil
Bons programadores Python não ficam sem emprego.
Meu comentário: bons programadores em qualquer linguagem, mas bons mesmos, não ficam desempregados.
.
8 – Conversa com outras linguagens
Se você possui bibliotecas em C e C++, pode utilizá-las integrando com Python. Há também implementações para Java (Jython) e .NET (IronPython).
.
9 – É multi-plataforma
Linux, Unix, Mac OS, Windows e plataformas diferentes das tradicionais, como celulares, dispositivos móveis e XO/OLPC.
.
10 – É multi-paradigma
Você pode utilizar com Programação Estruturada, Programação Orientada a Objetos e Programação Funcional. Veja os exemplos:

Programação Estruturada

import random

def jogaDados()
    dado1 = random.randrange(1, 7)
    dado2 = random.randrange(1, 7)
    somaTemp = dado1 + dado2
    print "Jogador tirou %d + %d = %d" %(dado1, dado2, somaTemp)
    return somaTemp

soma = jogaDados()
if soma == 7 or soma == 11:
    situacaoJogo = "GANHOU"
elif soma == 2 or soma == 3 or soma == 12:
    situacaoJogo = "PERDEU"
else:
    situacaoJogo = "CONTINUA"
    meuPonto = soma
    print "Ponto: ", meuPonto

while situacaoJogo == "CONTINUA":
    soma = jogaDados()
    if soma == meuPonto: situacaoJogo = "GANHOU"
    elif soma == 7: situacaoJogo = "PERDEU"

if situacaoJogo = "GANHOU": print "Jogador ganha"
else: print "Jogador perde"

.
Programação Orientada a Objetos

class Contador(object):
    def __init__(self):
        self.dic = {}

    def incluir(self, item):
        quantidade = self.dic.get(item, 0) + 1
        self.dic[item] = quantidade

    def contar(self, item):
        return self.dic[item]

>>> cont = Contador()
>>> palavra = 'inconstitucional'
>>> for letra in palavra:
...   cont.incluir(letra)
...
>>> for letra in sorted(set(palavra)):
...   print letra, cont.contar(letra)

.
Programação Funcional

# Fibonacci: 10 primeiros números
print map(lambda x,f=lambda x,f:(x<=1) or (f(x-1,f)+f(x-2,f)): f(x,f),range(10))

.
11 – É boa como primeira linguagem
Se você está aprendendo a programar, pode escolher Python sem receios.
.
12 – Existe uma comunidade forte no Brasil
O Python Brasil reune grupos de usuários em todo o Brasil interessados em difundir e divulgar Python. A sua lista de discussões é bastante movimentada.
.
Marco André também disse que Python é muito utilizado na automatização de processos. Na Locaweb, Python é extensamente utilizado em ambientes Unix-like, sendo a linguagem padrão para a equipe de Linux, onde são desenvolvidas aplicações para linha de comando e para Web também.

No final da palestra, várias pessoas com conhecimento em Python comentaram que poderia ser mostrado mais recursos da linguagem que a diferencia das outras. Eu particularmente nunca desenvolvi nada em Python, mas considero ser uma ótima escolha no intuito de você se tornar um programador poliglota.

Os slides da palestra você encontra nesse link.
.

15jun2009

10º Fórum Internacional de Software Livre – fisl10

(1) comentário

No final desse mês estaremos no fisl10, o 10º Fórum Internacional de Software Livre. O evento será realizado entre os dias 24 a 27 de junho, em Porto Alegre.

fisl10

O fisl é o maior evento de software livre da América Latina e até a publicação desse post já possui mais de 5.500 inscrições. A Associação SoftwareLivre.org (ASL), que organiza o evento, espera atingir a marca de 8 mil participantes.

Entre os assuntos que serão abordados, estão:

  • Linux, Ubuntu, KDE, BSD
  • Desenvolvimento em Ruby, Java, PHP, Python, Perl e Smalltalk
  • Desenvolvimento de jogos
  • MySQL, PostgreSQL
  • Robótica
  • Segurança
  • Software livre e negócios

Palestrantes como Richard Matthew Stallma, fundador do Movimento Software Livre, do Projeto GNU e da Free Software Fundation (FSF); Peter Sunde, um dos fundadores do site The Pirate Bay; e John “Maddog” Hall, fundador da Linux Internacional são destaques do evento.

A lista completa dos palestrantes, a programação completa, inscrições e outras informações, você encontra no site do fisl10.
.

31dez2008

Novos Artigos de Wiki para Linux/Ruby/Python

(0) comentários

Hoje acrescentamos diversas páginas de Wiki que devem ajudá-lo a tirar maior proveito da sua hospedagem Linux compartilhada.

Primeiro, cumprindo uma dívida, leia este artigo sobre como ativar um repositório Subversion na sua hospedagem.

Segundo, leia este outro artigo sobre como usar repositórios Git via SSH diretamente na sua hospedagem.

Acesse esta categoria para aprender como instalar suas aplicações Ruby on Rails corretamente na sua hospedagem.

Esta outra categoria para saber como instalar aplicações Merb na sua hospedagem.

Finalmente, acesse esta categoria para saber como ativar e instalar aplicações web feita em Python e que suportam WSGI (como o famoso Django).

Não deixem de visitar e consultar sempre nosso novo Wiki. É sua melhor fonte de informações para tirar melhor proveito da sua hospedagem.

8dez2008

Hospedagens Linux: tudo novo desde agosto!

(6) comentários

Linux é na Locaweb!Nossa hospedagem compartilhada funciona atualmente da seguinte forma: cada servidor tem centenas de clientes. Quando a máquina “enche”, cria-se uma nova máquina e assim por diante.

Isso tem diversas consequências, a primeira é que as máquinas cheias vão ficando para trás em termos de atualização. Tudo que se faz de novo tende a aparecer primeiro nas máquinas mais novas (e hoje instalamos servidores novos literalmente toda semana). Dependendo do que estamos fazendo, podemos replicar na maioria das máquinas antigas também. Porém, nem sempre isso é possível pois clientes que já estão com tudo funcionando, de repente podem ter seu site quebrado se atualizamos o PHP de 4 para 5 nas máquinas antigas, por exemplo. É um processo que precisamos sempre tomar muito cuidado.

Desde agosto deste ano, fizemos um grande esforço e colocamos várias novidades, mas fico surpreso que muitas pessoas ainda não notaram essa diferença. Dentre as principais novidades estão:

  • - Suportamos ambos PHP 4 e PHP 5. Mais do que isso, nas máquinas novas os clientes agora podem editar seus próprios arquivos .htaccess e php-cgi.ini. Ou seja, você pode configurar o PHP como quiser na sua conta. Isso permite que praticamente toda aplicação PHP como WordPress, Joomla, Drupal e outros mais rodem sem problemas.
  • - Acho que esse é o que mais apareceu, mas suportamos Ruby on Rails e Merb via o módulo Phusion Passenger. Tudo que você precisa para subir seu website em Ruby está disponível. Aliás, sempre estamos atualizando todas as nossas RubyGems, ou seja, neste momento já temos o novíssimo Rails 2.2 instalado em nossas hospedagens.
  • - Mais do que isso, a idéia é que você possa rodar tudo que há de mais moderno em termos de open source e nesse caso Python também entrou na lista faz algum tempo. Com a configuração de WSGI você pode colocar suar aplicações em Django, Pylons, etc.
  • - Por incrível que pareça, muita gente não sabia, mas faz tempo que nossas hospedagens já suportam SSH (e SFTP, e SCP). Portanto, sempre use SSH para gerenciar sua conta e sempre use SCP para transferir arquivos. Tudo criptografado e seguro.
  • - Outra coisa que pouca gente viu é que todas as máquinas novas já vem pré-instaladas com GIT, o mais moderno versionador de código-fonte distribuído. Como GIT pode ser facilmente exposto via SSH, a configuração necessária é basicamente zero. Apenas adicione a chave pública de SSH no arquivo ~/.ssh/authorized_keys de sua conta e pronto.
  • - Também já suportamos Subversion. Esse de fato é culpa minha porque ainda não fiz um blog post explicando como usar. Mas sim, já suportamos faz algum tempo.
  • - Além disso contamos também com o Instalador de Aplicativos, para instalar de forma trivial aplicativos famosos como WordPress, Drupal, Joomla e muitos outros. Basta acessar pelo seu Painel de Controle e com poucos cliques sua aplicação já estará instalada e pronta para usar.
  • - E para o acabamento final, ainda temos ferramentas de SEO para ajudar ainda mais o sucesso da sua aplicação.

Hospedagens compartilhadas funcionam todas mais ou menos da mesma forma. Mas a Locaweb está preparando grandes surpresas ainda para 2009 que vão melhorar ainda mais nossa plataforma e sua experiência de usuário. O objetivo é de criar no ano que vem a melhor hospedagem Linux/Open Source sem nenhuma margem para dúvidas.

Para saber se sua hospedagem já conta com todas essas novidades você pode fazer da seguinte maneira: faça login via SSH e digite “rails -v”. Se a resposta for “Rails 2.2.2″ ou superior, você já está na nova hospedagem. Ou digite o comando “cat /etc/redhat-release” se a versão for “5.2″ ou superior também já está nas máquinas novas.

Quem ainda está em máquinas antigas, pode pedir migração para máquinas novas, mas apenas caso realmente precise de algum dos novos recursos.

12set2008

Como habilitar aplicações Django na Locaweb

(24) comentários

Os clientes Locaweb, dos planos compartilhados Linux, já podem instalar suas aplicações desenvolvidas nos mais modernos frameworks Python que suportam WSGI, incluindo o novíssimo Django 1.0!

O Web Server Gateway Interface (WSGI) é o novo padrão de comunicação entre o Web Server, no caso o Apache, com suas aplicações Python. Dentre suas principais características está a simplicidade e facilidade de utilização.

Por que a Locaweb não utiliza mod_python: simples, é lento. mod_python funciona no estilo CGI, ou seja, para qualquer nova requisição ele precisa recarregar a aplicação inteira e depois descarregar. Aplicações pequenas, pouco acessadas de fato faz pouca diferença. Mas tente rodar algo mais pesado e logo o tempo por requisição ficará insuportável. Já o WSGI funciona em esquema persistente: ele carrega sua aplicação apenas uma vez e as requisições seguintes rodam todas mais rápidas. 

Por que outras hospedagens utilizam mod_python: para economizar recursos. WSGI consome mais RAM da máquina, uma vez que ela deixa o processo de pé em vez de descarregar o tempo todo de memória. Isso é bom para a hospedagem e ruim para o cliente. WSGI não é tão bom para a hospedagem mas é melhor para o cliente.

Contrate já!

Para saber se sua conta suporta Python, entre nela via SSH e digite o comando:

cat /etc/redhat-release

Se for RedHat 5 você já tem Python e já pode seguir este tutorial. Caso contrário será necessário abrir um chamado para pedir migração para uma máquina mais atualizada.

ler mais

15mai2008

Serpentes a bordo

(0) comentários

Nascida perto do natal de 1989, filha de um funcionário de um laboratório do governo holandês, Python é uma linguagem de tipagem dinâmica, orientada a objetos e voltada para a simplicidade e elegância do código. O nome, como algumas pessoas acreditam (e o título do post faz um infame trocadilho), não é relacionado com cobras ou qualquer outro tipo de réptil mas sim com o engraçado (se o seu humor for um pouco britânico) show Monty Python e foi escolhido por Guido van Rossum justamente pela irreverência (e por ele ser um fã do show).

Sendo uma linguagem interpretada, ela pode ser usada em várias plataformas como UNIX, Windows, MacOS e até em dispositivos móveis. Outras implementações podem ser usadas em outras linguagens e ambientes como Java e .NET.

Uma das primeiras coisas que chama a atenção de qualquer um que começa a estudar Python é como a identação do código define blocos e escopo de blocos, o que é estranho para qualquer um vindo de C, Java, PHP ou similares. Mas, como já dito, Python busca a elegância e simplicidade, então ao invés de ter 3 ou 4 guias de como identar ou escrever código (você entende se já teve uma discussão com o seu time se o { fica na mesma linha da declaração de um método ou na próxima…)

Mesmo sendo uma linguagem de uso geral e não tendo nascido para ser usada na web como outras linguagens, existem muitos (muitos!) frameworks para desenvolvimento para web. Em especial podemos citar o Django e o TurboGears. Ambos tentam facilitar a maioria das tarefas tediosas da web como modelar acesso ao banco de dados e fazer formulários.

E por onde começar? Existem o excelente tutorial oficial (em inglês) do python disponível aqui, além da referência mais completa de bibliotecas e módulos. Para mais recursos (e em português!), não deixe de visitar a página do Python Brasil.