Tech news e book review...

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


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 a cada 1 segundo e o -d informa o watch para destacar as diferenças entre as execuções.

    Portanto o watch é muito útil para quando você precisa executar repetidamente um comando e inspecionar a sua saída em busca de diferenças.

    Tac

    O tac é o cat 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.

    AppJar Grid

    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

  • Sofwares para usar no Linux: A Awesome Linux Software é uma lista colaborativa disponível no github 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

  • 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/

Book Review

Hoje temos um convidado especial, o Thiago Perrotta que já foi entrevistado aqui no episódio 66 fez o review do livro 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!

Music (Música): Ain't Gonna Give Jelly Roll by Red Hook Ramblers is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives (aka Music Sharing) License.


Comments

comments powered by Disqus