Pular para o conteúdo principal

Lançamento do rst2html5 v2.0

Eu acabo de lançar a versão 2.0 do projeto rst2html5!

rst2html5 é um projeto que transforma documentos em restructuredText para HTML5.

restructuredText é um formato bastante utilizado na documentação de projetos em Python e também em geradores de sites estáticos (blog) tais como Nikola e Pelican.

Houve várias alterações nesta nova versão, a maioria relacionada a atualizações nas tecnologias usadas no projeto:

  1. Fim do suporte a versões anteriores ao Python 3.6
  2. Solução definitiva para o conflito com a instalação do docutils. Uma solução bem engenhosa, diga-se de passagem. Com isso, o módulo rst2html5_ foi renomeado de volta para rst2html5 mas, de quebra, a importação de rst2html5_.HTML5Writer ainda funciona. Há uma seção na documentação a respeito dessa implementação (link).
  3. Criação de novo papel rst :abbr:, que transforma uma entrada do tipo :abbr:`SAP (Single-Page Application)` em uma saída <abbr title="Single-Page Application">SPA</abbr>
  4. Nova seção no README explicando como usar o rst2html5 programaticamente
  5. Melhora a geração da subseção <figcaption>
  6. Melhora o processamento dos atributos scale, height, width e alt da diretiva image.
  7. Adiciona Type Annotations ao código do projeto
  8. Adiciona análise estática do código (linting) ao projeto
  9. Substitui o framework de teste de nose para pytest
  10. Mudança do gerenciador de dependências de Pipenv para Poetry
  11. Instalação do pacote no PyPi (Python Package Index) agora é feita pelo Poetry ao invés do setup.py.

Consulte a página do projeto do rst2html5 para ver exemplos de uso e aplicação.

Programe pelo Navegador com Code Lab

O projeto Code Lab permite programar diretamente pelo navegador, sem nenhuma outra dependência externa. É interessante para os casos em que se quer fazer um experimento rápido mas não há um computador com a linguagem instalada e configurada por perto.

Esse projeto foi feito originalmente como uma prova de conceito e também ajudar meus alunos a usarem diferentes linguagens de programação sem a necessidade de instalar nada na máquina deles.

Leia mais…

Cursos Gratuitos de Git, Mercurial e Subversion

Estão disponíveis cursos completos e gratuitos de Git, Mercurial, Subversion e Controle de Mudança no canal da Pronus no Youtube. Eu condensei nestes cursos grande parte dos meus anos de experiência em consultoria e treinamento em Gerência de Configuração de Software. Como eu agora trabalho com desenvolvimento Web, achei melhor disponibilizar gratuitamente esses vídeos para que este conhecimento não fique perdido e possa ser útil a quem precisar.

O diferencial desses cursos é que eles vão muito além do funcionamento das ferramentas e apresentam uma base teórica de controle de versão e de mudança. O conteúdo do curso do Git, por exemplo, contém os seguintes tópicos:

Programa do Curso de Git
Início Tópico
00:00:00​ O que é gerência de configuração de software?
00:07:55​ Repositório e Diretório de Trabalho
00:15:39​ Fluxo de Trabalho Individual
00:17:21​ Instalação do Windows Subsystem for Linux (WSL)
00:20:31​ Instalação do Git
00:22:47​ Configuração do Git
00:26:28​ Operações Básicas do Git - Parte 1
00:30:40​ Operações Básicas do Git - Parte 2
00:35:42​ Operações Básicas do Git - Parte 3
00:37:56​ Ignorando Arquivos no Diretório de Trabalho
00:44:08​ Ignorando Arquivos no Git
00:48:01​ Revertendo Alterações pela Linha de Comando
00:59:37​ Revertendo Alterações pela Interface Gráfica
01:06:22​ Controle de Versão Centralizado x Distribuído - Parte 1
01:12:32​ Controle de Versão Centralizado x Distribuído - Parte 2
01:18:17​ Topologias de Controle de Versão Distribuído no Git - Configuração do Servidor
01:26:52​ Topologia Peer-to-Peer no Git
01:30:01​ Topologia Cliente-Servidor no Git
01:32:52​ Topologia Fork-Pull no Git
01:36:06​ Controle de Concorrência - Parte 1 - Travamento
01:41:57​ Controle de Concorrência - Parte 2 - Mesclagem
01:52:03​ Controle de Concorrência - Parte 3 - Ramos Individuais
02:02:25​ Revisão dos Mecanismos de Controle de Concorrência
02:04:34​ Demonstração da Mesclagem
02:13:15​ Demonstração do Rebase
02:20:57​ Fluxo de Trabalho em Equipe
02:22:45​ Variações de Projeto - Parte 1 - Ramos
02:27:15​ Variações de Projeto - Parte 2 - Ramo Principal e Dedicado
02:31:08​ Variações de Projeto - Parte 3 - Etiquetas, Ramo de Manutenção e Ramo Estável
02:42:27​ Variações de Projeto - Parte 4 - Ramos Individuais
02:44:09​ Revisão dos Conceitos de Variação de Projeto
02:48:22​ Como Funcionam Ramos no Git?

O curso de Mercurial, que é a ferramenta de controle de versão que eu mais gosto e uso em todos os meus projetos pessoais, segue a mesma linha.

E pra quem é da velha guarda, há o curso de Subversion. Ministrei esse curso muitas vezes na época que o Subversion era o mais popular.

12 Fatores na Construção de um Aplicativo Web

The Twelve-Factor App é um conjunto de recomendações muito popular para desenvolvimento de aplicações web, que é resultado de anos de experiência do pessoal da Heroku na administração de centenas de milhares de aplicações na forma de software-como-serviço.

Os 12 fatores é um conjunto de soluções conceituais que visa tornar as aplicações mais portáveis, escaláveis e fáceis de serem desenvolvidas e implantadas. Pode ser aplicado a projetos escritos em qualquer linguagem de programação.

Leia mais…

Qual a melhor ferramenta de controle de versão: Subversion, Git ou Mercurial?

As ferramentas mais interessantes atualmente de controle de versão são o Subversion, Git e Mercurial. Se você ainda não escolheu uma, ficará feliz em saber que existe sim uma solução simples e eficaz dependendo do perfil da equipe e das necessidades do projeto. A surpresa está em saber que a melhor opção certamente será o Subversion ou o Mercurial, mas dificilmente o Git. Vamos analisar os porquês neste artigo.

Leia mais…

Por que o Facebook escolheu o Mercurial e não o Git?

Nem todo mundo sabe, mas o Facebook usa o Mercurial como controle de versão desde 2013. Antes, usou o Subversion e depois tentou o Git. Mas como o Git não deu conta do volume de código do seu repositório monolítico, resolveram investir no Mercurial e deu muito certo! Desde então, o Facebook é um grande colaborador do Mercurial, contribuindo com inúmeras melhorias ao projeto. Também são grandes colaboradores o Google e o Mozilla (Firefox).

Essa é a versão resumida da história. Mas o que aconteceu exatamente? Quais foram as limitações do Git que fizeram que fosse preterido em relação ao Mercurial? Vamos analisar esses pontos no artigo.

Leia mais…

Tipos de Ramos do Controle de Versão

Um ramo é uma linha diferente na evolução que forma uma variação isolada e controlada do projeto.

Ramos resolvem vários problemas:

  • Permitem a execução simultânea de atividades diferentes e incompatíveis (ex.: codificação, teste, manutenção)
  • Organizam o esforço de implementação por finalidade, equipe, risco, restrição etc.
  • Isolam implementações arriscadas das que são certas e rápidas.

Se usada corretamente, a ramificação produz uma estrutura que consegue absorver todas as mudanças no projeto de maneira ordenada. Desde as emergenciais, que precisam ser atendidas com urgências e postas em produção, até alterações incertas, que podem se mostrar viáveis ou não com o tempo.

Leia mais…

Comparação de Complexidade entre Subversion, Mercurial e Git Baseada em Quantidade de Texto de Ajuda

Como medir a complexidade do Subversion, Git e Mercurial? Uma forma simples e direta é a partir da quantidade de texto de ajuda: quanto mais simples uma ferramenta, menos linhas são necessárias para explicar seu funcionamento. Essa ideia é bem ilustrada pelo tweet abaixo:

Em outras palavras:

Invista na simplicidade e economize na explicação.

Leia mais…

Mercurial mais rápido com o cHg

Quando você executa um comando hg, um novo processo Python é disparado, o Mercurial é carregado, o comando é executado e depois o processo finaliza. Esse tempo de carregamento inicial do Python e do Mercurial a cada comando nem chega a ser perceptível para execuções esporádicas, mas se você precisa executar vários comandos em um script ou de dentro de uma aplicação, o tempo de resposta começa a aparecer.

O chg é um programa em C que executa os comandos hg através do servidor de comandos do Mercurial que roda em background, evitando o tempo de carregamento inicial.

Leia mais…