Como limpar o cache do WordPress por linha de comando

Estou trabalhando em alguns projeto utilizando o WordPress como CMS e em situações específicas eu precisava limpar o cache de todo o site. Não sou fã da plataforma, acho que a performance deixa muito a desejar, mas não posso negar que ela é cheia de facilidades.

Sei que posso fazer apagar o cache por dentro do wp-admin, mas no ambiente de desenvolvimento ou se meu “trigger” para a limpeza de cache é externo, um caminho muito fácil é apagar fisicamente todos os arquivos de cache do WordPress.

Os arquivos de cache ficam em wp-content/cache e podem ter extensões .html, .gz e também .meta. Então com um simples find na linha de comando (unix) você consegue limpar o cache do WordPress com a linha abaixo:

find /var/www/wordpress.gssolutions.com.br/public/wp-content/cache/ \( -name '*.html' -or -name '*.html.gz' -or -name '*.meta' \) -delete

Lembre-se de substituir o caminho (/var/www/wordpress.gssolutions.com.br/public) pelo caminho da instalação do WP no seu servidor.

Tem uma solução melhor para lidar com estas situações? Deixe nos comentários 🙂

Como abrir sublime no terminal (Linux) sem usar a sessão do terminal

Um dos problemas que eu não enfrentava com o Sublime no MacOS mas achava um pouco chato no Subline no Linux (Ubuntu) é que quando eu abria o Sublime pelo terminal no Ubuntu o aplicativo ficava atrelado a sessão do terminal – não posso usar o termina e se eu fechar o terminal, encerra o Sublime.

Como abrir o Sublime no terminal sem usar a sessão do terminal

O primeiro passo é remover o link simbólico em /user/bin/sublime (ou outro nome que você tenha utilizado para chamar o aplicativo pelo terminal).

rm /usr/bin/sublime

Feito isso vamos criar um pequeno shell que vai abrir o sublime sem estar atrelado a sessão do terminal:

Crie o arquivi /usr/bin/sublime com o seguinte conteúdo:

#!/bin/sh
nohup /opt/Sublime\ Text\ 2/sublime_text $1 >/dev/null 2>&1 &

Se necessário substitua /opt/Sublime\ Text\ 2/sublime_text pelo caminho onde você fez a instalação do Sublime Text.

Salve o arquivo e agora é só abrir o terminal e digitar “sublime” que você terá o aplicativo aberto e pode usar ou fechar o terminal, sem afetar o programa.

Configurando teclado da Apple no Ubuntu

Esta semana eu vendi meu Mac Mini e voltei a usar o Ubuntu como sistema operacional para trabalhar. Continuei utilizando o teclado do Mac, e encontrei alguns problemas:

Problema de acentuação

Tive um problema para fazer o teclado do Mac funcionar no Ubuntu, para corrigir os problemas de acentuação foi só alterar o idioma do teclado (keyboard layout) para “English (US, alternative, international)” – mas isso pode mudar de acordo com o seu teclado.

Teclado numérico

Problema de acentuação resolvido, o segundo problema foi que o numlock não estava ligado – mas descobri que o botão “clear” (em cima do numpad) ativa e desativa o teclado numérico.

Teclas function sempre ativa (F1, F2, etc não funciona)

Um comportamento estranho foi que sempre qualquer tecla Fx (onde x é qualquer número) era pressionada o teclado executava a função (fn) da tecla, como aumentar volume, pausar música, etc.

Para utilizar a tecla “normal”, sem as funções de mídia eu tinha que pressionar a tecla fn.

Você pode resolver este “comportamento estranho” criando um arquivo de configuração para o teclado, se trata da opção “fnmode” do teclado. A opção fnmode pode ter 3 valores (0, 1 ou 2) e funciona da seguinte forma:

0 = Pressionar fn+F1 vai ser o mesmo que pressionar F1.

1 = Pressionar F1 vai executar a ação especial do F1. Pressionar fn+F1 vai executar a função do F1

2 = Pressionar F1 vai executar a função esperada para o F1. Pressionar fn+F1 vai executar a função especial do F1 (o comportamento esperado na maioria dos casos).

Vamos configurar, execute no terminal:

echo options hid_apple fnmode=2 | sudo tee -a /etc/modprobe.d/hid_apple.conf

Ou adicione (crie, se precisar) a configuração do fnmode=2 no /etc/modprobe.d/hid_apple.conf.

Agora é só fazer seu novo arquivo de configuração ser carregado:

sudo update-initramfs -u -k all

Problema resolvido, agora você pode usar o seu teclado do Mac no Ubuntu sem quebrar a cabeça para usar os F´s!

Se você  programa no Ubuntu, leia também:

Mais informações no Help Ubuntu (en)

Customização de CSS com Compass

Trabalhar com componetização do HTML e CSS significa mais qualidade no código e muito mais produtividade no longo prazo.

Já escrevi algumas vezes aqui sobre este assunto, um dos que causaram bastante debate foi sobre CSS orientato a objetos – mais debate pela nomenclatura do que pela metodologia em si.

Este ano tive o prazer de palestrar no Front in Sampa 2013 e falei um pouco sobre componetização de HTML e CSS utilizando o Compass, uma ferramenta extraordinária que vale a pena ser estudada.

A popularização de frameworks como o Bootstrap tornaram mais fácil este tipo de metologia, pois já temos a segmentação da estrutura e trabalhar com a customização visual dos componentes fica bem mais fácil. Aproveitar este conhecimento de arquitetura de front-end destes projetos e trazer para dentro da sua empresa pode ajudar muito na produtividade da equipe.

Abaixo os slides da minha apresentação sobre este assunto:

[slideshare id=28678434&doc=componetizacaodecsscomcompass-131127102153-phpapp02]

E aí, vamos componetizar?

Resolvendo o problema de locale no EC2

Tenho algumas instâncias no EC2 da Amazon e todas utilizam Ubuntu Server. E todas tinham um problema com language, o que me impedia de abrir o terminal do MongoDB por exemplo, ou exibia os avisos abaixo em algumas instalações:

WARNING! Your environment specifies an invalid locale. This can affect your user experience significantly, including the ability to manage packages.

perl: warning: Setting locale failed.

perl: warning: Please check that your locale settings:

    LANGUAGE = (unset),

    LC_ALL = (unset),

    LC_CTYPE = "de_DE.UTF-8",

    LANG = "en_US.UTF-8"

    are supported and installed on your system.

perl: warning: Falling back to the standard locale ("C").

locale: Cannot set LC_CTYPE to default locale: No such file or directory

locale: Cannot set LC_ALL to default locale: No such file or directory

O problema é não ter um locale definido, eu já tentei várias coisas, a maioria dos tutorias mandava eu fazer o seguinte:

sudo locale-gen fi_FI.UTF-8
sudo dpkg-reconfigure locales

Isso, teoricamente, resolve o problema porém ele voltou acontecer em todas as instâncias, e ter que repetir o processo não é o que chamo de solução.

O que realmente resolveu meu problema foi editar o arquivo /etc/environment e adicionar a seguinte linha:

LC_ALL="en_US.UTF-8"

Agora, sempre que a instância iniciar ela terá o LC_ALL definido, resolvendo o probelma com o locale inválido.