Dobrando o Gnome Keyring Com o Python – Parte 1
27 de Outubro de 2010, 17:15 - sem comentários aindaA um tempo atrás eu criei uma série de posts sobre como usar o Gnome Keyring e a sua biblioteca para o Python. Devido a alguns contratempos não tive tempo de postá-los em português, agora que estou um pouco mais disponível estou reescrevendo-os para o português. Desculpe-me pela demora.
Nos últimos dias eu me ocupei principalmente com o desenvolvimento do meu projeto Tiamat. Durante esse trabalho me deparei com a necessidade de armazenar senhas para acesso remoto de hosts via SSH e Telnet. Eu nem hesitei, apenas uma palavra veio a minha mente: Gnome Keyring. Ele é simples, seguro e possui bibliotecas de binding para o Python. Então o que faltava?! Saber como usá-la. Antes de começar a trabalhar com ele, eu gostaria de discutir um pouco sobre a forma como certas aplicações armazenam nossas senhas.
Dobrando o Gnome Keyring Com o Python – Parte 1 é um artigo original de Mind Bending
Dobrando o Gnome Keyring Com o Python – Parte 1
27 de Outubro de 2010, 15:15 - sem comentários aindaA um tempo atrás eu criei uma série de posts sobre como usar o Gnome Keyring e a sua biblioteca para o Python. Devido a alguns contratempos não tive tempo de postá-los em português, agora que estou um pouco mais disponível estou reescrevendo-os para o português. Desculpe-me pela demora.
Nos últimos dias eu me ocupei principalmente com o desenvolvimento do meu projeto Tiamat. Durante esse trabalho me deparei com a necessidade de armazenar senhas para acesso remoto de hosts via SSH e Telnet. Eu nem hesitei, apenas uma palavra veio a minha mente: Gnome Keyring. Ele é simples, seguro e possui bibliotecas de binding para o Python. Então o que faltava?! Saber como usá-la. Antes de começar a trabalhar com ele, eu gostaria de discutir um pouco sobre a forma como certas aplicações armazenam nossas senhas.
Dobrando o Gnome Keyring Com o Python – Parte 1 é um artigo original de Mind Bending
Ainda Estou Vivo
27 de Outubro de 2010, 12:55 - sem comentários aindaOlá a todos! Já faz um bom tempo desde o meu último post. Eu acredito que tivemos um bom começo (em inglês pelo menos) e de súbto eu parei de postar. Então, eu vim justificar meu desaparecimento. Recentemente eu me casei, passei por uma grande mudança no meu trabalho (Mainframes, arg! que saudades do bash…) e "perdi" o nome do meu projeto principal. Acho que isso justifica muit não?!
Sobre o "nome do projeto", eu descobri que o nome Beholder já está em uso por outro projeto open source. Emtão eu comecei a buscar por um novo nome. Esse nome precisava ser tão legal quanto Beholder. Além disso eu queria um nome forte e significativo. Então eu finalmente achei, Tiamat. Eu irei aos poucos atualizar a página do projeto explicando sobre o nome e seus motivos.
Ainda Estou Vivo é um artigo original de Mind Bending
Ainda Estou Vivo
27 de Outubro de 2010, 10:55 - sem comentários aindaOlá a todos! Já faz um bom tempo desde o meu último post. Eu acredito que tivemos um bom começo (em inglês pelo menos) e de súbto eu parei de postar. Então, eu vim justificar meu desaparecimento. Recentemente eu me casei, passei por uma grande mudança no meu trabalho (Mainframes, arg! que saudades do bash…) e "perdi" o nome do meu projeto principal. Acho que isso justifica muit não?!
Sobre o "nome do projeto", eu descobri que o nome Beholder já está em uso por outro projeto open source. Emtão eu comecei a buscar por um novo nome. Esse nome precisava ser tão legal quanto Beholder. Além disso eu queria um nome forte e significativo. Então eu finalmente achei, Tiamat. Eu irei aos poucos atualizar a página do projeto explicando sobre o nome e seus motivos.
Ainda Estou Vivo é um artigo original de Mind Bending
[Curso de Python] Tipos Built-In - Parte 3
26 de Outubro de 2010, 0:00 - sem comentários aindaAntes de prosseguir leia os artigos anteriores aqui
Na última aula vimos todos os tipos numéricos built-in do Pyhton, hoje veremos as sequências imutáveis.
Tipos Built-In - Parte 3
Retomando a lista dos tipos built-in:
- None;
- NotImplemented;
- Ellipsis;
- Numericos:
- int;
- long;
- float;
- bool;
- complex;
- Sequências Imutáveis:
- str;
- unicode;
- tuple;
- Sequências Mutáveis:
- list;
- bytearray;
- Sets:
- set;
- frozenset;
- Mapeamentos:
- dict;
- slice;
- callable;
- file;
Sequências imutáveis são sequências de dados que não podem ser alterados. Temos 3 tipos de sequências imutáveis: strings, unicode e tuplas. Vamos analisar uma por uma.
Strings
No Python as strings são referenciadas pelo identificador str. Muitos devem estar pensando que strings não são sequências, mas na verdade são, são sequências de bytes "traduzidos" pela tabela ASCII. ASCII - Wikipédia, a enciclopédia livre
As strings já foram amplamente abordadas aqui nesse curso, quem quiser rever basta visitar essas aulas: Strings - Parte 1 e Strings - Parte 2
Unicode
Como eu comentei acima, strings são sequências de códigos ASCII, dessa forma não são os tipos apropriado para "suportar" acentos. Sempre que trabalhamos com acentos devemos usar unicode ao invés de strings. Desta forma, unicode é uma sequência de códigos unicode que representam todos os tipos de caracteres existentes desde os utilizados nas escritas mais antigas até as mais modernas. O unicode foi introduzido no Python 2.0 e se tornou a "string padrão" no Python 3.0. Cada caractere unicode pode conter 16 bits ou 32 bits. Este valor pode variar dependendo do caractere representado. Para mais informações sobre a codificação unicode consulte esse link: Unicode - Wikipédia, a enciclopédia livre
Para trabalhar com Unicode em Python é simples, basta iniciar uma string com o identificador 'u':
Código python:>>> u'teste de unicode' u'teste de unicode' >>> texto = u'teste de unicode' >>> print texto teste de unicode >>> type(texto) <type 'unicode'> >>> >>> texto = u'é ã ç' >>> texto u'\xe9 \xe3 \xe7' >>> print texto é ã ç >>>
Tuple
Tuplas são sequências de qualquer tipo de dados no Python. As tuplas já foram abordadas anteriormente na seguinte aula: Introdução à Tuplas e Lístas
Até a próxima aula pessoal...