Implementando API REST com Django – parte 3

django-rest-3_abertra

Esta é a parte final do implementação de uma API REST para o “Agenda de Eventos”. Na parte anterior foi adicionado o acesso aos comentários dos eventos e também feitas algumas considerações sobre a implementação. Mas o acesso aos dados ainda é público¹, ou seja, qualquer um a partir das URL tem acesso ao conteúdo do programa de agenda, portanto, é hora de habilitar o controle  controle de quem pode acessá-los.

(¹) Isto é, ao menos em teoria já que na prática, além da restrição de acesso imposta pelo servidor HTTP interno do Django, há ainda a política de compartilhamento de recursos de origem cruzada (CORS) que, por não estarem definidas, disponibilizará acesso apenas dentro do domínio do localhost.

Continuar lendo

Mais decoradores em Python

decoradores_em_python-2_abertura

Em Python os decoradores permitem estender, ou mesmo modificar, o comportamento de funções em tempo de execução sem diretamente alterá-las. Ou seja, como o próprio nome deixa a entender, eles as “enfeitam”… 🙂

Mas os decoradores também são funções e, como tal, podem também receber seus próprios argumentos o assim customizar um pouco mais seu funcionamento.

Continuar lendo

Orientação a objetos em Python (além do básico)

python_oop2-aberrtura

Faz um (bom) tempo que escrevi sobre orientação a objetos em Python e, como o próprio título anunciava, ele era o básico e servia como uma introdução ao assunto. Mas como básico é apenas “básico” não é suficiente para ajudar a resolver os problemas diários. É aí que o conhecimento de alguns recursos que estão disponíveis na própria linguagem acaba ajudando na resolução destes de forma simples e direta.

E assim resolvi escrever um pouco mais sobre este assunto…

Continuar lendo

Programando em C para o Atari ST

atari-st-c-1_abertura

Esta é a ducentésima quinquagésima sexta publicação deste blog e sabe o que isto significa? Significa que são necessários 16-bits para expressar o número de publicações deste blog, ou seja, não lá muita coisa… 😀

E para “comemorar” a publicação de número 0x100 resolvi juntar duas coisas:

  1. Escrever algo sobre um hardware de 16-bit (o que é legal) e
  2. Aproveitar para praticar um pouco de C, a  linguagem que resolvi aprender um pouco mais este ano.

Continuar lendo

Telas do speccy no MSX – parte 4

tbzscmcb-4_abertura

Continuando com visualizador de telas de ZX-Spectrum no MSX e, como já faz algum muito tempo, é bom aproveitar para relembrar que a primeira parte tratou das diferenças entre os modos de vídeo dos dois computadores (mesma resolução mas uma organização completamente diferente), a segunda sobre como ler um arquivo do disco diretamente em assembly usando as rotinas da BDOS e a terceira sobre como recuperar e interpretar os argumentos da linha de comando do MSX-DOS.

Agora é a vez de tratar da parte mais importante de todo o programa, a rotina que faz a conversão da imagem do vídeo do speecy para a VRAM do MSX.

Continuar lendo

Configurando múltiplos usuários no git

git_config-1_abertura

Dica rápida* (com um texto quase longo), muitas vezes você tem em uma mesma conta de usuário projetos que pertencem a perfis diferentes, ou seja, projetos que pertencem a você (particulares), do seu empregador (trabalho) etc. Nestes casos você precisa prestar atenção com qual usuário o seu commit será registrado, qual a chave que ele está usando para se autenticar no repositório para fazer os fetch e push etc.

Um “quebra galho”, o qual confesso ter usado durante um bom tempo, é ficar comentando as partes do arquivo “~/.gitconfig” de acordo com a necessidade, algo que resolve parcialmente o problema pois você sempre irá esquecer de verificar qual é o usuário o git está configurado, um dia.

(*) A grande verdade é que isto aqui é sobre configurações condicionais do git mas chamar assim esconderia talvez a principal utilidade do recurso que é permitir a configuração de vários usuários.

Continuar lendo