Blogs WordPress

Posted March 5th, 2009 in Desenvolvimento by felipepavao

Wordpress logo

Surgiu outro dia em uma lista de discussão da “blogosfera” uma enquete sobre qual é o melhor e mais usado sistema de blogs. Não podemos divulgar umas pesquisa sincera pois não temos esses dados, mas é muito claro para nós que participamos desta comunidade que a maioria prefere o WordPress pela sua grande robustez e plugabilidade. O charme do WordPress fica por conta de seus plugins, onde o  desenvolvedor consegue implementar qualquer serviço essencial de um blog.

Além de possuir muitos plugins, quem deseja criar um blog gratuitamente encontra uma gama de temas ou templates WordPress gratuitos para utilizar. Neste caso não se tem uma grande personalização, mas serve para implementar aquela ideia que não gostaríamos de deixar passar.

E quem tiver dúvidas em relação ao WordPress, com uma simples busca no Google é possível encontrar uma série de tutoriais WordPress, inclusive aqui no Blog da Fábrica.

Agora fica a seu cargo escolher seu sistema preferido. Nós da BlogFactory escolhemos o WordPress.

Customizando uma página do WordPress

Posted March 1st, 2009 in Desenvolvimento by felipepavao

O WordPress é um bom sistema de blogs e todo mundo já sabe. Mas ele também pode ser considerado um bom CMS, se for usado da forma correta. A dica que vou passar serve para customizar páginas estáticas no WordPress.

Vamos imaginar a seguinte situação: temos uma página que é fora do padrão do nosso template, e queremos atribuir o conteúdo dessa página a este layout diferenciado. Para obter isso, utilizando o sistema de templates do WordPress, precisamos criar uma página customizada.  Copiamos e colamos então o arquivo page.php, mas renomearemos para custom-page.php, por exemplo.

Agora, dentro do arquivo custom-page.php, temos que adicionar um comentário PHP, para que o WordPress o entenda que esta página é customizada.

/*
Template Name:  Custom Home Page
*/

Agora, para atribuir esse novo template do WordPress, é preciso criar uma página e direcioná-la para o modelo recém criado, como mostrado na imagem.

wordpress-custom-page

Agora é só publicar a página com o modelo que criamos. Não é fácil ?

Redirecionamento 301 via htaccess

Posted February 22nd, 2009 in Desenvolvimento by felipepavao

Estamos nos preparando para migrar o Primeira Chance e precisamos fazer algumas alterações de infra-estrutura para que o Google perceba nossa mudança. A melhor forma de fazer isso, é realizer o famoso “Redirect 301“, que faz o redirecionamento permanente de qualquer url que você deseje para uma nova.

Para exemplificar, veja como agiremos: em um primeiro momento, teremos que redirecionar todas as chamadas para um subdomínio “vagas”. Criaremos então um arquivo .htaccess na raiz do site com o seguinte conteúdo:

Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://vagas.primeirachance.com.br/$1 [R=301,L]

Este script captura todas as chamadas HTTP e faz o redirecionamento 301 permanente para o novo endereço, realizando a nossa tarefa de maneira bastante simples

Mac, Apache, PHP e MySQL

Posted February 20th, 2009 in Desenvolvimento by felipepavao

Post rápido para ir bem pro carnaval em Cabo Frio. Desde que comprei um Macbook (1 semana atrás), ainda não havia parado para levantar o ambiente de desenvolvimento PHP. Como Apache e PHP já vem instalados, prefiro deixar um link onde pode ser encontrado maiores explicações (Leia http://foundationphp.com/tutorials/php_leopard.php).

O problema que enfrentei foi em fazer a conexão com o MySQL. Geralmente quem usa o PHP, define na função de conexão com o banco, o parâmetro “localhost” de instância. Por algum motivo, o PHP não consegue estabelecer conexão e eu tive que utilizar como parâmetro o endereço físico do socket MySQL: “:/tmp/mysql.sock“.

E para fechar o post, apenas mais um detalhe: é preciso instalar a biblioteca de conexão do PHP com o MySQL. Para isso, faça o download em http://www.entropy.ch/software/macosx/php/. Antes de instalar o aplicativo, crie o link simbólico do cliente do apache (sim, é uma correção de bug pois o programa considera o endereço do apache como sendo /etc/httpd. Faça o link ln -s /etc/apache2 /etc/httpd. Após isso, instale o pacote baixado no site Entropy e seja feliz.

Update: Para evitar ter que ficar usando na conexão o endereço do socket do Mysql, basta setar o parâmetro mysql.default_socket = /tmp/mysql.sock dentro do php.ini (/etc/private)

Aplicações web Iphone e Django

Posted February 18th, 2009 in Desenvolvimento by felipepavao

Para os que não sabem, eu trabalho desenvolvendo sites para dispositivos móveis (celulares e smarthphones) na Globo.com, e no último projeto que utilizamos o Django, precisávamos desenvolver um identificador de User Agent. Este identificador direcionaria a renderização de templates para o endereço correto onde os arquivos customizados se encontravam, pois fizemos templates específicos para os aparelhos portáteis da Apple.

Seguindo a linha do Django e após algumas pesquisas, encontramos um Middleware que resolvia a questão.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from django.conf import settings
import re
 
class iPhoneMiddleware(object):
    """
    If the Middleware detects an iPhone/iPod the template dir changes to the
    iPhone template folder.
    """
 
    def __init__(self):
        self.normal_templates = settings.TEMPLATE_DIRS
        self.iphone_templates = (settings.TEMPLATE_DIRS[0] + '/iphone',)
 
    def process_request(self, request):
        p = re.compile('iPhone|iPod', re.IGNORECASE)
        if p.search(request.META['HTTP_USER_AGENT']):
            # user agent looks like iPhone or iPod
            settings.TEMPLATE_DIRS = self.iphone_templates
        else:
            # other user agents
            settings.TEMPLATE_DIRS = self.normal_templates
        return

O código é muito explicativo, mas vale denotar o ponto chave, quando o script executa a expressão regular procurando pelas palavras “iPhone|iPod” vindas do parâmetro “User Agent”, ele altera o endereço padrão dos templates para a pasta padrão ou para o path + “/iphone”.
Está aí a mágica do negócio.

A função do Middleware para o Django

Posted February 17th, 2009 in Desenvolvimento by felipepavao

Apesar de preferir utilizar em meus projetos pessoais o Rails, tenho estudado e trabalhado muito com o Django. E uma das características mais legais que eu encontrei foi a questão dos Middlewares.

Em comparação com o Rails, seria como um filtro (:before_filter por exemplo) que executaria um comportamento antes da ação principal. O Middleware também tem essa função no Django: é executado antes do processamento da view (que no Rails seria o controller). Veja na imagem como é processado um request com a utilização de Middlewares:

1
2
3
4
5
6
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.doc.XViewMiddleware',
)

Processamento de um request no Django

Este trecho de código fica declarado no arquivo de configurações do Django. Ele indica a ordem como os Middlewares serão executados. Essa abordagem nos traz a facilidade de incluir uma série de comportamentos antes de ter um método da view executado.

Plugin Contact form 7 WordPress

Posted February 16th, 2009 in Desenvolvimento by felipepavao

Todos sabemos que o WordPress (CMS que a BlogFactory utiliza nos blogs que desenvolvemos) possui diversos plugins interessantes que facilitam nossas vidas. Porém sentíamos dificuldade em encontrar um bom plugin que nos fornecesse um formulário de contato. Achamos que o Contact Form 7 se destaca perante os mais conhecidos (WordPress Contact Form,Contact Form II) pois tem uma configuração bastante fácil e permite total customização.

O plugin permite que se grave várias configurações de formulário para utilização em diferentes lugares do blog e também permite validação dos campos. Além disso, ele tem um gerador que te auxília a criar o formulário. As respostas para as validações podem ser traduzidas para o português facilmente.

Screenshot do plugin Contact Form 7

Aconselhamos a utilização deste plugin que tende a ser adotado por vários blogs, pelo que parece, está ganhando um apoio do pessoal do WordPress.

Atualização WordPress 2.7.1

Posted February 13th, 2009 in Desenvolvimento by felipepavao

Post rápido para comunicar que temos atualização do nosso sistema de blogs preferido, o WordPress. São algumas atualizações de segurança e não podemos deixar de fazer para garantir o bom funcionamento do sistema

As dicas de atualização para a versão 2.7 também valem para esta versão, então basta seguir este post. Atualize também o wp-config.php e coloque as informações pertinentes a sua configuração de instalação do WordPress.

Como atualizar para WordPress 2.7 sem traumas

Posted December 17th, 2008 in Desenvolvimento by felipepavao

Além do Blog da Fábrica ser o blog da BlogFactory, também é um local de experiências. Por isso, já efetuei a atualização para WordPress 2.7. Explico-lhes em poucas linhas como fazer uma atualização sem traumas:

1) Faça o backup da tua base de dados e da pasta wp-content. Não esqueça de desativar os plugins;
2) Exclua as pastas wp-admin e wp-includes;
3) Faça o upload das pastas acima e também substitua os arquivos do diretório root, exceto o wp-config.php;
4) Rode o script dominio/wp-admin/upgrade.php e siga os passos.

Datas em português no WordPress

Posted December 6th, 2008 in Desenvolvimento by felipepavao

Outra dica rápida, agora para a galera que gosta de traduzir seus temas do WordPress e utilizar datas em português. O arquivo a ser alterado está dentro da pasta wp-includes e chama locale.php. Basta alterar os campos correspondentes aos meses e dias.

Vamos esperar que na versão 2.7 esse arquivo continue com a mesma função. Ainda não testei mas já li por aí que irá manter a compatibilidade.

Página 4 de 512345