Mini-Curso de MongoDB e Apresentação sobre PyMongo
Opa pessoal!
Meio atrasado mas finalmente estou postando os slides da apresentação de MongoDB e PyMongo que tive a oportunidade de realizar no VI Encontro do PUG-PE, dia 14/08/2010 na UFRPE:
Mas tem coisa muito melhor, estou aproveitando para colocar também os slides do mini-curso de MongoDB que tive o prazer de ser convidado para apresentar junto com o amigo Daker Fernandes no Workshop de Software Livre 2010 do CInLUG na UFPE no dia 24/08/2010.
O Daker já ia ministrar o mini-curso, mas como me conhecia do PUG-PE e viu minha apresentação sobre PyMongo resolveu me chamar. Valeu Daker!
O mini-curso foi bem legal, todo mundo baixou e instalou o MongoDB na hora, aprendemos algumas consultas básicas e até algumas mais cabulosas e tivemos uma visão rápida de alguns recursos avançados como MapReduce e Sharding.
E é isso pessoal, se você AINDA não conhece MongoDB, dê uma olhada nos slides, pesquise, baixe e use. Pode ter certeza que esse veio para ficar. E qualquer coisa pode gritar que a gente dá uma força no que puder.
Falou!
Auto-Completar no Shell Interativo do Python
Essa dica é retirada desse post no blog fechaTag do Élcio, praticamente uma cópia, mas é tão útil que eu precisava ter aqui para lembrar sempre.
Ao abrir o shell interativo do Python (digitar “python” no terminal), rode os comandos:
import readline
import rlcompleter
readline.parse_and_bind("tab: complete")
Agora é só usar o TAB sem dó para completar os comandos, e é muito útil para descobrir coisas novas também.
Por exemplo digitando “de” e apertando TAB ele mostra as opções:
def del delattr(
E se você por acaso não conhecia o “delattr()” pode começar a pesquisar e ver que ele é útil para você.
Como mapear o SkyDrive como uma unidade de rede no Windows
Como utilizo vários computadores muitas vezes preciso compartilhar arquivos entre eles e nem sempre o velho PenDrive é uma opção. Existem vários serviços de armazenamento online e eu utilizava o Box.Net desde 2007. Já conhecia o SkyDrive da Microsoft há um tempo e sempre achei muito bom por oferecer um espaço generoso para armazenar arquivos (25 GB contra os 2 GB que tenho no Box), porém sempre achei ele mais complicado. Além disso para utilizar direto do Windows Explorer era preciso utilizar programas externos como o SkyDrive Explorer.
Porém, descobri agora que ele permite utilizar WebDAV para acesso remoto e com isso podemos mapear uma unidade para ele no computador e utilizar como uma pasta qualquer, inclusive dentro das janelas de abrir e salvar arquivos dos programas.
Se você não sabe o que é WebDAV ou unidade de rede não se preocupe, eis um simpes passo-a-passo ilustrado de como fazer isso:
Primeiro, vamos baixar um programinha que faz o trabalho de descobrir qual o endereço WebDAV do seu SkyDrive, é o SkyDrive Simple Viewer que não precisa nem ser instalado, basta descompactar e rodar.
Depois de colocar seu login e senha e clicar em ‘Login to my SkyDrive‘ o programa vai listar do lado esquerdo suas pastas (1), ao clicar em uma das pastas para escolher o endereço WebDAV será mostrado logo acima (2). Copie este endereço, pois é o que vamos utilizar para o acesso a partir do Windows Explorer.
Agora abra o Windows Explorer (Meus Documentos, Meu Computador etc) e clique com o botão direito do mouse na opção ‘Rede‘ do lado esquerdo e clique em ‘Mapear unidade de rede…‘
Agora vamos utilizar aquele endereço que copiamos anteriormente nessa janela, porém precisamos fazer algumas modificações antes. O meu endereço foi:
https://obfweg.docs.live.net/f02a3fbd151a1fea/^2Public
Nesse caso, o que é preciso mudar é tirar o ‘https:’ e trocar as barras por barras invertidas ‘\’, além de adicionar um @SSL logo depois do endereço principal. Ficando assim:
\\obfweg.docs.live.net@SSL\f02a3fbd151a1fea\^2Public
Coloque este endereço onde está escrito ‘Pasta‘ e clique em concluir.
O windows vai conectar-se ao compartilhamento WebDAV e logo em seguida pedirá suas credenciais (seu login e senha no SkyDrive).
Depois de fornecê-los e clicar em ‘OK‘ e está tudo pronto.
Agora você já pode acessar seus arquivos online através do Windows Explorer ou mesmo salvar direto de qualquer programa em sua pasta do SkyDrive.
Código eficiente ainda é importante
Estou utilizando o Google App Engine para desenvolver alguns projetos e, no processo de aprendizado do seu funcionamento e seu sistema de cobrança, me vi pensando na eficiência do código que estou escrevendo.
Depois que hardware virou commodity, no sentido de que se tornou muito barato e sem muita diferenciação, código ruim e ineficiente deixou de ser importante para muita gente. Muitos programadores simplesmente desenvolveram a mentalidade de que podem fazer qualquer código “monstro” que o hardware para dar conta disso é mais barato do que melhorar o código. E em parte isso é verdade, pois código bem feito requer programadores bons que não cobram barato.
Mas ultimamente alguns novos conceitos de plataforma podem fazer com que isso mude, coisas como Cloud Computing e Virtualização estão colocando a qualidade e eficiência do código em evidência novamente.
A partir do momento que sistemas como Google AppEngine, Amazon EC2 e Windows Azure (entre outros) permitem que você pague somente pelo poder computacional que utiliza e permitem que suas aplicações cresçam sem com que você se preocupe com o hardware em que sua aplicação roda, as preocupações se voltam novamente para a eficiência do software ao invés do hardware. Principalmente porque isso é o que vai definir se sua aplicação vai ter um alto custo de manutenção ou se você vai na verdade economizar por estar utilizando estas plataformas.
Mas não é somente nesses casos que a eficiência do código é importante, as tecnologias de Virtualização já estão bem difundidas e muitas empresas estão consolidando sua estrutura computacional (servidores e datacenters) em cima disso. Então se um sistema pode rodar em cima de 5 computadores ao invés de 20, isso é economia de dinheiro e energia.
E eu não separei energia de dinheiro sem um motivo. O fato dessas estruturas computacionais economizarem engergia é muito importante do ponto de vista ambiental. Muito se fala hoje em TI Verde e iniciativas que visam diminuir o impacto que a tecnologia tem causado na natureza. Logo, já estamos começando a escutar o termo “código verde” para definir software que é criado com foco na eficiência e na diminuição do consumo de recursos.
Não que não exista preocupação com a eficiência do código em sistemas e sites atualmente, mas normalmente isso é deixado por último e somente quando os problemas surgem é que os desenvolvedores se preocupam com isso. Mas com as tendências de computação em nuvem e SaaS (Software como um Serviço), isso deve ser pensado desde o início.
Quem sabe não deixaremos de encontrar coisas como:
SELECT * FROM users WHERE 1=1
Python Coding Dojo em Recife
Estou disponibilizando a apresentação que dei sobre Coding Dojo no II Econtro do PUG-PE (Grupo de Usuários Python de Pernambuco). O grupo está bem ativo e estamos com encontros mensais. No próximo encontro teremos um Coding Dojo estilo Randori, quem quizer conhecer veja a apresentação e apareça. Se cadastre na nossa lista e dê uma olhada no Blog.
Desenvolvimento Web: Por onde começar?
Algumas pessoas já me perguntaram: Como desenvolver para a Web? Por onde começo? Qual a melhor linguagem? Onde tem mais oportunidades? O que paga mais? A lista de perguntas deste tipo é imensa.
Eu já me fiz essa pergunta algumas vezes, não só para desenvolvimento Web como para quase tudo o que já estudei ou me dediquei. Ainda não tenho todas as respostas, até porque ainda tenho muito a aprender e muita experiência para adquirir, mas posso falar de algumas coisas pelas quais já passei e minha percepção do mercado.
Aproveitando que já falei nele, como funciona o mercado? De diversas maneiras, na verdade existem vários “mercados” mas duas coisas são certas: está sempre mudando e há espaço para tudo. Você precisa estudar e se atualizar sempre, estar preparado para mudar seus conceitos e ter a certeza que você não sabe tudo. Pode parecer bobagem, mas muita gente acha que porque adquiriu um bom nível de conhecimento sobre determinado assunto pode simplesmente estacionar. Errado. A carreira de desenvolvedor, na verdade qualquer carreira em Tecnologia, exige um constante processo de renovação e aprimoramento dos seus conhecimentos. E estudar coisas novas é sempre bom, vai te transformar num profissional com uma visão ampla e você nunca sabe quando uma oportunidade diferente pode surgir.
Comece olhando para onde você está e para onde quer ir. Se conhecer, suas qualidades e limitações, é muito importante para definir o que focar.
Sendo mais pragmático agora, alguns pontos-chave que você pode considerar:
- Inglês é fundamental. De novo não só na carreira de desenvolvedor, mas em qualquer carreira na área de tecnologia. Claro que você pode aprender muita coisa sabendo somente Português, mas seu leque de opções é muito mais amplo quando se sabe inglês. Digo isso por experiência própria, pois quando comecei a aprender programação e desenvolvimento eu já tinha uma bagagem muito boa de inglês e isso facilitou muito as coisas para mim.
- Comece pelo início. Parece estranho ter que falar isso, mas é algo muito comum. Muita gente começa logo aprendendo alguma linguagem server-side como PHP, ASP.Net ou Ruby, ou alguma espécie de front-end como Flash ou Silverlight e esquece do principal, a base de toda a Web: HTML. Isso mesmo, se você quiser ser um bom desenvolvedor Web tem que aprender HTML (e depois XML e XHTML). Num outro texto entro em mais detalhes sobre essa parte.
- Aprenda algo que você goste. Sério, não é auto-ajuda. Simplesmente é algo que entendi depois de um tempo. Algumas pessoas gostam de design, e podem estudar CSS, Flash (sim, você leu certo), Flex ou até mesmo Silverlight. Quem quer programar pode optar por Java, PHP, ASP.Net, Python, Perl, Ruby etc. O que é melhor? Depende de você, tem gente que diz que Java é mais “enterprise” ou que ASP.Net é horrível, que Python é mais fácil ou que Ruby não “escala”. No final das contas isso não importa muito, primeiro porque você não pode saber apenas uma linguagem, é inevitável que você venha a estudar outras, mesmo que trabalhe mais com uma. Depois porque as tecnologias evoluem muito rápido e se PHP não era suficiente orientada-a-objetos ontem, hoje é. Se Ruby não “escalava” ontem, hoje é usada em projetos enormes como o Twitter. Então se você gosta de alguma tecnologia e quer aprender vá em frente, conheço um cara que trabalhava com Delphi, gostava e sabia muito de Java e hoje está super feliz trabalhando com Ruby on Rails porque o código é bonito (ele diz que tem outras coisas, mas eu sei que é só por isso).
Bom, o texto já ficou muito longo e acho que ninguém vai ler. Nada do que eu disse é novidade, apenas condensei algumas dicas num texto para quem está procurando algum indicativo. Claro que não é o único caminho a seguir e não sei se vai funcionar para você, mas está funcionando comigo. Para finalizar, eu deixo um vídeo muito conhecido do Steve Jobs um tanto fora de contexto, mas que serve para agregar algo de bom ao texto se todo o resto não lhe servir de nada. No vídeo ele discursa para uma turma de formandos da Universidade de Stanford e dá um show de inspiração.
Mantenham-se com fome. Mantenham-se tolos.












