Exemplo em Django – parte 2

django-2_abertura

Continuando com o desenvolvimento da “Agenda de Eventos”. Na primeira parte foi criado, através do virtualenv, um ambiente de desenvolvimento e instalado o Django nele. E a partir das ferramentas do framework foi criada a estrutura de um novo projeto (“Agenda”) e nele uma nova aplicação (“events”).

Nesta parte, além de mais um pouco de teoria, a definição do modelo de dados da aplicação (ou apenas modelo) e configuração da interface de administração do Django.

Continuar lendo

Anúncios

Exemplo em Django – parte 1

django-1_abertura

Desde a publicação da primeira parte do (recém corrigido) exemplo em Rails que eu estava com vontade de fazer também um exemplo com usando o Django. E foi assim que surgiu a “Agenda de Eventos”, um exemplo simples mas funcional de, claro, uma agendinha para se registrar eventos diários!

Nesta primeira parte um pouco de teoria e, claro, a configuração do ambiente e os passos necessários para a instalação do framework.

Continuar lendo

Corrigindo o exemplo de Rails

am_correcao-1_abertura

A partir dos arquivos de manifesto no repositório, o GitHub consegue relacionar as dependências do projeto e, no caso dos módulos do RubyGems ou npm, verificar na  lista vulnerabilidades conhecidas do MITRE se as versões em uso apresentam alguma vulnerabilidade.

E como eu sei disto? Foi justamente foi o que ocorreu com a Agenda Mequetrefe, com uma notificação do GitHub sobre a existência de possíveis vulnerabilidades em componentes utilizados pela aplicação.

Continuar lendo

Internacionalizando programas em Python

locale-1_abertura

Quando escrevi a versão em Python d’O desafio dos monstros, acabei optando por utilizar as mensagens originais do jogo em inglês. Também citei ser possível traduzi-lo facilmente para o português, ou seja, procurá-las dentro do arquivo “monster_wrestling.py” e substituir cada uma delas.

Porém existe uma forma bem mais elegante e utilizando o suporte a internacionalização disponível no Python para tornar o programa facilmente adaptável para qualquer idioma e sem a necessidade de modificações extras no código.

Continuar lendo

Programando em BASIC com o Inliner

inliner-1_abertura

Por melhor que seja o editor¹ embutido em um interpretador BASIC ele não contará os recursos básicos de qualquer editor de textos moderno e aos quais já estamos habituados. E ao trabalhar diretamente no editor de textos predileto, ao invés de diretamente no computador/emulador, rapidamente se percebe o quão chata é a tarefa de cuidar manualmente da numeração das linhas.

Por estes e mais alguns motivos² comecei a pensar em como seria bom prático programar em MSX-BASIC, ou em qualquer outro dialeto BASIC, em qualquer editor de textos e sem a preocupação em numerar linhas pois haveria uma ferramenta que cuidaria desta parte. E já que ela ficaria com o trabalho, que algumas facilidades interessantes também estivessem includas.

E a assim surgiu o Inliner! 🙂

(¹) Dependendo do interpretador BASIC ele será um editor de tela, onde é fácil editar diversas linhas simultaneamente, ou simplesmente um editor de linha, onde você só consegue mexer em uma linha por vez em uma espécie de “modo de edição”.

(²) Um exemplo irritante, o comportamento irritante do OpenMSX quando se pressiona uma tecla acentuada e ele fica louco repetindo o caractere do acento ad infinitum:-/

Continuar lendo

Um exemplo prático de coprocesso

sqlite_bash_cursor-1_abertura

Algo totalmente fora do planejado e feito mais como prova de conceito: uma “biblioteca” que permite a scripts escritos em Bash acessarem bases de dados do SQLite utilizando uma conexão persistente implementada através de um coprocesso. É uma abordagem bem diferente da execução do SQLite (via pipe) a cada consulta efetuada e mais próxima do conceito do database cursor utilizado em diversas linguagens de programação.

No ficou acabou ficando tão interessante que resolvi disponibilizá-lo como um projeto no GitHub com direito a uma documentação (bem) básica e até um programa de exemplo! 🙂