Olá pessoal e sejam bem-vindos à mais um episódio do Castálio Podcast!
Se você ainda não migrou os seus projetos para Python 3 é melhor começar agora. Como já mencionamos aqui o Python 2.x está com os dias contados e alguns frameworks importantes como o Django estão começando a remover o suporte ao Python 2.
Além disso o Python 3 está trazendo novidades muito interessantes que não estarão disponíveis no Python 2, então a hora de migrar é agora!
Conheça agora algumas notícias, novidades e dicas de softwares e truques para o terminal Linux e no final do episódio um excelente Book Review!
Escute enquanto lê os show notes
* MP3)
* OGG)
Novidades e Dicas de Python
-
Django agora só em Python 3: O Framework Django, um dos mais importantes do ecossistema Python lançará a versão 1.11 em breve e será a última a suportar Python 2.x. Na próxima major version do Django, a 2.0.0 o framework irá dar suporte apenas a Python 3 e dada a importância deste framework isto com certeza será um grande empurrão para a comunidade fazer logo a migração.
O anúncio foi feito no site oficial):
"The Django 1.11.x series is the last to support Python 2. The next major release, Django 2.0, will only support Python 3.5+"
-
Namespaces: Uma dica de Python 3 que trazemos é a nova classe SimpleNamespace disponível no módulo types da biblioteca padrão do Python 3.3+. É muito comum criarmos classes que não possuem métodos e servem apenas para armazenar valores. Também usamos muitas vezes dicionários e arquivos de constantes para este fim. Essa necessidade é bastante antiga no Python e a idéia surgiu em 2012 na lista oficial da linguagem) mas só agora passou a fazer parte da biblioteca padrão:
>>> from types import SimpleNamespace >>> podcast = SimpleNamespace(name='Castálio') >>> podcast.site = 'http://castalio.info' >>> print(obj) namespace(name='Castálio', site='http://castalio.info') >>> hasattr(obj, 'site') True `
-
**Named Tuples**: E também existe o **namedtuple** que é uma outra
maneira de armazenar valores em um namespace mas utilizando uma estrutura
de tupla, que pode tanto ser acessada via índice ou via atributo.
**namedtuple** está disponível também no Python 2, veja um exemplo:
>>> from collections import namedtuple
>>> Podcast = namedtuple('Podcast', 'name site')
>>> castalio = Podcast('Castálio', 'http://castalio.info')
>>> castalio.site
http://castalio.info
`
E também é possivel acessar os atributos através dos índices:
>>> castalio[0] 'Castálio' >>> castalio[1] 'http://castalio.info' `
Uma outra caracteristica interessante, é que tanto **namedtuple**
quanto **SimpleNamespace** podem ser usados como classe base, veja:
class SuperPodcast(Podcast):
def play(self):
print("I won't gonna give you none of my Jelly Rolls...")
>>> castalio = SuperPodcast('Castálio', 'http://castalio.info')
>>> castalio.play()
I won't gonna give you none of my Jelly Rolls...
`
-
Dicas para o console do Linux: O Adventures in /usr/bin and the likes : é um blog post) que traz uma coleção de dicas e truques para usar no seu terminal.
A lista traz 30 comandos ou pacotes que podem ajudar a agilizar sua vida ao executar tarefas no console do seu Linux. Os destaques são:
Watch:
watch -n 1 -d date `
O comando acima executa o comando [date]{.title-ref} a cada 1 segundo e o
[-d]{.title-ref} informa o watch para destacar as diferenças entre as
execuções.
Portanto o [watch]{.title-ref} é muito útil para quando você precisa
executar repetidamente um comando e inspecionar a sua saída em busca de
diferenças.
**Tac**
O [tac]{.title-ref} é o [cat]{.title-ref} reverso, e exibe o conteúdo de um
arquivo invertendo a ordem das linhas, veja um exemplo:
$ cat data.txt
1
2
3
$ tac data.txt
3
2
1
`
-
O Bootstrap do Tkinter?: E quem gostou das nossas dicas de Tkinter vai gostar também do AppJar).
Um wrapper para o Tkinter que traz algumas facilidades e uma coisa bem interessante que é um sistema de grid bastante parecido com os sistemas de grid dos frameworks css.
Código:
from appJar import gui
app=gui() app.setFont(20) app.addGrid("g1", [["Name", "Age", "Gender"], ["Fred", 45, "Male"], ["Tina", 37, "Female"], ["Clive", 28, "Male"], ["Betty", 51, "Female"]] ) app.go() `
Existem outros exemplos na coleção de widgets do AppJar
[http://appjar.info/pythonWidgets](http://appjar.info/pythonWidgets))
-
**Sofwares para usar no Linux**: A **Awesome Linux Software** é uma
lista colaborativa disponível no github
[https://github.com/VoLuong/Awesome-Linux-Software](https://github.com/VoLuong/Awesome-Linux-Software)) que traz uma boa
seleção de softwares para Linux separados em diversas categorias.
A parte mais legal dessas listas é que você pode contribuir enviando
um Pull Request e adicionando os softwares que você mais usa no
Linux.
-
**Fuzzy Finder no terminal**: O **FZF** é um software de Fuzzy
Finder para terminal, e ajuda muito na hora de encontrar comandos,
diretórios e arquivos digitando apenas uma parte do nome ou do
caminho. A instalação é bem simples e as instruções estão no github
[https://github.com/junegunn/fzf](https://github.com/junegunn/fzf))
-
**Publique seus Notebooks**: O **Binder** cria uma coleção
interativa contendo todos os **JuPyter Notebooks** encontrados em
seu repositório no github. Você informa o caminho do repositório e
ele cria um ambiente virtual onde os seus notebooks podem ser
executados e então você pode adicionar uma **badge** no README de
seu projeto. Veja mais em [http://mybinder.org/](http://mybinder.org/))
Book Review
Hoje temos um convidado especial, o **Thiago Perrotta** que já foi entrevistado
aqui no [episódio
66](http://castalio.info/episodio-66-thiago-perrotta-leitura-e-tecnologia.html))
fez o review do livro [Ready Player
One](http://www.goodreads.com/book/show/9969571-ready-player-one)) que foi o
primeiro livro escrito por Ernest Cline. O livro é um romance com uma temática
futurista. Foi lançado originalmente em 16 de agosto de 2011.
A história se passa no ano de 2044. O mundo passa por uma grande crise
energética, onde destruição e pobreza são os cenários mais comuns. A única
escapatória é o OASIS, uma realidade virtual onde a maioria das pessoas passa
grande parte do seu tempo. No OASIS as pessoas estudam, trabalham, jogam e
interagem umas com as outras, e assim economizam combustível (recurso escasso),
evitam ficar muito tempo em contato com a poluição e tem mais acesso a cultura
e informações.
Ainda não ouviu? escute agora!
* MP3)
* OGG)
**Music (Música)**: [Ain't Gonna Give Jelly
Roll](http://freemusicarchive.org/music/Red_Hook_Ramblers/Live__WFMU_on_Antique_Phonograph_Music_Program_with_MAC_Feb_8_2011/Red_Hook_Ramblers_-_12_-_Aint_Gonna_Give_Jelly_Roll))
by [Red Hook Ramblers](http://www.redhookramblers.com/)) is licensed under a
Creative Commons Attribution-NonCommercial-NoDerivatives (aka Music Sharing)
License.