Arquivos Estáticos no Django

Resumo

De forma explorativa, este trabalho busca levantar um melhor entendimento sobre a gestão, configuração e a entrega de conteúdo estático em uma aplicação baseada no framework Django, em sua versão 1.11. Além disso busca-se fazer a distinção entre a ideia de arquivos estáticos e arquivos de mídia (media) no escopo do framework.

1. Arquivos Estáticos no Django

Diferente do que ocorre em outras tecnologias, no framework Django a ideia é explicitamente delegar a entrega de conteúdo estático para outras aplicações, tais como web servers e CDNs (Content Delivery Networks). Por padrão uma aplicação Django simplesmente não entrega conteúdo estático, o que pode causar alguma confusão, pelo menos para iniciantes na tecnologia.

Há diferentes aspectos a serem tratados dependendo do ambiente de execução da aplicação, e para entender melhor isso é necessário partir do app staticfiles, que é parte integrante do Django e pode ser ativado no projeto a qualquer momento. Com base nisso será possível discutir melhor sobre a distinção entre arquivos estáticos e arquivos de mídia e finalmente seguir ao tópico da implantação da aplicação Django em produção.

Ao interessado em mais detalhes, um ponto de partida na documentação é o seguinte link: https://docs.djangoproject.com/en/1.11/howto/static-files/.

Por fim, deve-se frisar que toda a discussão a seguir se dá com base na versão 1.11 do framework, e portanto pode ser inválida em outras versões.

Continue lendo

Exemplo webapp Java usando Weld

Recentemente incluí no GitHub um exemplo de aplicação Java baseada em Servlets usando Weld como provedor CDI. Trata-se de um simples CRUD com controle de sessão e interface implementada diretamente em JSP.

Mais detalhes no readme do projeto em < https://github.com/hmagalhaes/bomclima >

Segue um screenshot de uma das interfaces da aplicação:

Screenshot da aplicação de exemplo

Screenshot da aplicação de exemplo

Rolagem/Scrolling de tela com teclado no Atom

Olá.

Atom é um editor de texto bem legal feito com Electron, porém até a versão 1.12.2 ainda não conta com um recurso bem básico, presente na maioria dos editores: a rolagem de tela com teclado, onde o cursor fica parado e somente a tela rola. Normalmente isso é feito com Ctrl+Cima / Ctrl+Baixo.

Alternativa

Por enquanto uma alternativa é instalar este pacote: https://atom.io/packages/ctrl-dir-scroll. Basta acessar o menu “Edit > Preferences”, e então na aba Packages, buscar por ctrl-dir-scroll, postado por callum-ramage.

Este pacote irá disponibilizar dois novos comandos para vincular a hotkeys, são eles: ctrl-dir-scroll:scroll-down e ctrl-dir-scroll:scroll-up.Para configurá-los acesse “Edit > Keymap” para abrir o arquivo de mapeamento de hotkeys. Nele, basta adicionar a seguinte configuração lá no final:

'atom-workspace atom-text-editor:not([mini])':
  'ctrl-down': 'ctrl-dir-scroll:scroll-down'
  'ctrl-up': 'ctrl-dir-scroll:scroll-up'

Por padrão Ctrl+Cima e Ctrl+Baixo são configurados para mover linha. Se você não quiser perder este recurso, pode configurar tal como no Eclipse, com Alt+Cima e Alt+Baixo. O resultado é:

'atom-workspace atom-text-editor:not([mini])':
  'alt-down': 'editor:move-line-down'
  'alt-up': 'editor:move-line-up'
  'ctrl-down': 'ctrl-dir-scroll:scroll-down'
  'ctrl-up': 'ctrl-dir-scroll:scroll-up'

Configurando outras hotkeys

Para configurar outras hotkeys, acesse o menu “Edit > Preferences”, aba Keybindings. Lá você pode buscar por hotkey (Ctrl+Down na imagem abaixo) ou pelo nome do comando. Então basta clicar no ícone de prancheta para copiar o comando e finalmente colá-lo no arquivo de configurações para alteração.

keybindings

Até.

Assistir ao Netflix no Linux Ubuntu/Debian

Alternativa: Netflix Desktop

O pacote “netflix-desktop” consiste em uma versão personalizada do Wine que vem com Firefox e Silverlight 4 instalados, pronto para acessar o Netflix.
Ao instalar, um link é criado no menu de aplicações do sistema, dentro da categoria multimídia. Basta acioná-lo que uma instância do Firefox (versão Windows) é iniciada pelo Wine com tudo pronto.

A instalação é feita pelo pacote “netflix-desktop”:
sudo apt-get install netflix-desktop

Caso não tenha o repositório, pode adicionar o repositório ppa do autor:
sudo add-apt-repository ppa:ehoover/compholio

O pacote também está disponível em outro repositório:
sudo add-apt-repository ppa:pipelight/stable

Caso tenha problemas com os comandos acima, tente baixar o pacote deb diretamente:
http://ppa.launchpad.net/ehoover/compholio/ubuntu/pool/main/n/netflix-desktop/
https://launchpad.net/~pipelight/+archive/stable/

Mais informações estão disponíveis na homepage do projeto:
http://www.compholio.com/netflix-desktop

Situação do Silverlight

Há algum tempo atrás, consumir mídia distribuída por Silverlight no Linux era mais simples, pois bastava instalar um plugin diretamente no navegador, da mesma forma que é feita no Windows. Nesse caso utilizava-se o Moonlight, que é uma implementação do Silverlight para Linux que funciona sobre a plataforma Mono, porém o projeto foi descontinuado. Entre outros motivos, cita-se que o fim do projeto deu-se pela baixa adoção da tecnologia Silverlight.

Outra questão relacionada ao assunto, é que o Netflix está investindo na troca de sua solução baseada em Silverlight por algo compatível com HTML5, visando é claro, maior audiência.

Enquanto o Flash se mantém no mercado mesmo após as duras ameaças de morte vindas do HTML5, a solução da Microsoft definha principalmente por não ter recebido investimento em portabilidade. De qualquer forma, este é um fenômeno natural, visto que hoje entende-se que a padronização trazida pelo HTML5 é a melhor abordagem.

Algumas referências:
Homepage do Moonlight
Mono Moonlight no Wikipedia
Netflix to dump Silverlight, Microsoft’s stalled technology
Miguel de Icaza on ASP.NET MVC, Moonlight, and the Android Lawsuit

Desenvolvimento para Firefox OS

Ilustração do mascote do Firefox OS junto a um smartphone com Firefox OS rodando

Firefox OS. Eu quero!

Em 50 minutos, Andre Garzia, membro da comunidade Mozilla Brasil, dá uma pincelada sobre o novo Firefox OS, que está chegando de vez pelas terras tupiniquins.

Além de destacar as facilidades em se desenvolver para a plataforma, o que é feito tudo à base de Javascript, HTML e CSS, o palestrante dá insights sobre as vantagens de se investir no novo sistema, o qual conta com ótima performance devido à arquitetura de poucas camadas, resultando em alcance maior no mercado através de dispositivos mais modestos em hardware. Também é destaque o modelo de distribuição de aplicações, que inclui o Firefox Marketplace e a distribuição diretamente do seu website. Vale citar também o novo modelo de pagamento que está para sair, o qual baseia-se em cobrança direto em conta telefônica, dispensando o uso de cartão de crédito, o que é sem dúvidas ideal baixos valores, tal como a venda de aplicações costuma ser.

Vale a pena dar uma conferida no link:  http://www.infoq.com/br/presentations/desenvolvendo-novo-firefox-os

E viva o software aberto.

Convivência entre OpenJDK e OracleJVM no Kubuntu

Antigamente era comum a utilização do Java para Applets e afins, porém agora me deparo com isto tão raramente que só fui descobrir hoje, que o Firefox bloqueou versões antigas do Java e meu Firefox estava sem plugin Java.

Tinha instalado apenas o OpenJDK, que vem por padrão no Kubuntu e este pelo jeito não tinha instalado o plugin do navegador. Como a VM desta implementação me dá problemas com alguns aplicativos, resolvi colocar logo a implementação da Oracle. Continue lendo

ASP Clássico em sistema 64bits com IIS7

Após ter de passar o produto da empresa para um novo servidor com Windows Server 2008r2 64bits, acabei experienciando alguns problemas meio aleatórios. Depois fui descobrir que o problema estaria relacionado à mistura de arquiteturas 32 e 64bits dentro das configurações que eu utilizava no IIS.

O conflito foi gerado quando, ao criar uma Pool de Aplicações para o meu software, tive de marcar a opção “Permitir Aplicações 32bits” por causa de um componente (DLL) externo que foi compilado em tal arquitetura, caso contrário o componente não funcionaria. Uma vez que por padrão o IIS utiliza a versão do ASP de acordo com o sistema (64bits), acabou acontecendo um tipo de mix de arquiteturas, além do IIS, por padrão, integrar o suporte à plataforma .Net. Continue lendo

Visualizar impressão no Chromium

Update 06/04/2013:

Como citado pelo amigo RC Lages nos comentários, na versão atual do Chromium Version 25.0.1364.160, a dica a seguir não funciona. No nosso caso estamos usando em Ubuntu, sendo a string completa de versão do Chromium “Version 25.0.1364.160 Ubuntu 12.10 (25.0.1364.160-0ubuntu0.12.10.1)”. Boa sorte!

Situação no Chrome e no Chromium

Recurso necessário tratado como luxo?

No Chrome, tardou para caramba, mas chegou em 02/08/2011 versão 13.0.782 (se não me engano).

Já no Chromium temos a questão de que ele não pode usar o plugin proprietário utilizado no Chrome… Então inicialmente informa-se que o Chromium deveria utilizar o leitor de pdf padrão do sistema, mas pelo menos no meu caso, nada funcionou. Continue lendo