Português do Brasil English
Devin no Facebook  Devin no Twitter  RSS do Site 
Programação    

Balanceando bancos de dados do WordPress com o HyperDB


Comentários  17
Visualizações  
169,713

O WordPress ao longo do tempo se tornou mais do que uma ferramenta para criar simples blogs e acabou virando uma plataforma de CMS completa. Muitos sites começaram a adotá-lo, incluindo sites com grande acesso e interação. Estes grandes volumes, por sua vez, ocasionaram algumas deficiências em termos de desempenho do site em algumas partes da infraestrutura, principalmente nos servidores web e bancos de dados.

O HyperDB é um plugin do WordPress usado para balancear e controlar as consultas MySQL e ajudar a melhorar o desempenho do site. Aprenda a usá-lo!

Leia mais

Programação    

php-gettext: Múltiplos idiomas em um sistema PHP


Comentários  14
Visualizações  
188,210

O php-gettext é uma biblioteca em PHP que emula as funcionalidades do gettext, que por sua vez é uma poderosa biblioteca para suporte de múltiplos idiomas em qualquer sistema (inclusive o sistema operacional). O gettext é utilizado pela maioria dos programas GNU e do Linux e por isso é o preferido da galera também em muitos sistemas PHP.

No PHP, existem duas formas de usar os métodos gettext: uma extensão nativa e uma biblioteca separada. Neste tutorial, vamos aprender a usar a biblioteca separada. A extensão nativa do PHP é rápida e bem suportada pelo PHP, mas ela é uma extensão nativa! Isso quer dizer que o PHP precisa ter essa extensão compilada como módulo e habilitada nas configurações. Por experiência própria, esse tipo de dependência gera dificuldades na hora de instalar sistemas em, por exemplo, servidores de hostings compartilhados e distribuições Linux que não tem os pacotes já prontos. Enquanto isso, o php-gettext é totalmente auto-suficiente: é só colocar uns arquivos php no sistema, carregá-los via include/require e pronto, já está funcionando. Apesar da biblioteca ser um pouquinho (só um pouquinho) mais lenta que a extensão nativa, vale muito à pena pela praticidade.

Leia mais

Programação    

Infinite Scroll do WordPress e PollDaddy


Comentários  1
Visualizações  
169,915

Um dos recursos que tem aparecido bastante em sites e portais é o Infinite Scroll. Como o nome já diz, esse recurso faz com que as paginações de um site carreguem automaticamente quando o usuário desce até o final da página, lá embaixo de todas as notícias ou posts. Um dos exemplos mais conhecidos é o próprio Facebook, que em seu Feed de notícias vai carregando infinitamente os posts à medida que o usuário vai descendo a página. O objetivo é que o usuário não tenha que clicar e esperar outra página carregar para ver mais conteúdo… Convenhamos que é um ótimo recurso de usabilidade :)

Toda vez que um usuário vai até o final da página, o plugin reconhece e manda uma requisição AJAX pedindo a próxima página. Quando o navegador a recebe, o plugin monta automaticamente via JS e seletores CSS a parte dos posts no lugar correto, implementando assim o recurso de scroll infinito. Mas alguns plugins como o Polldaddy ratings e ShareThis não funcionam de primeira, pois fazem chamadas javascript… Mas há como resolver isso!

Leia mais

Programação    

Shell Script: tratamento de argumentos e opções


Comentários  9
Visualizações  
218,239

Na grande maioria das vezes, a linguagem shell script é usada para criar uma sequência de comandos que automatizam uma tarefa. Nisso, ela é extremamente eficiente e rápida. Combinar comandos é uma grande vantagem que o jeito UNIX de ser nos trouxe: várias ferramentas que fazem tarefas básicas, especializadas, e que quando se juntam realizam grandes feitos trabalhando juntas. Fazemos geralmente de forma sequencial (ou batch), mas podemos também tornar os scripts bem com cara dos utilitários de linha de comando: utilizando argumentos de forma inteligente. Exemplos: -h, -f arquivo, -d, entre outros.

Leia mais

Programação    

Utilizando Proxy no WordPress e PHP


Comentários  6
Visualizações  
34,999

Todo mundo conhece o tal Proxy. Quer queira quer não, na maioria das vezes as empresas utilizam um proxy como intermediador entre seus usuários e a Internet em geral. Enquanto o firewall bloqueia todo o acesso externo, deixa apenas essa brecha para os clientes conectarem no Proxy, então este controla tudo o que entra e sai pela Web.

Esse controle do Proxy geralmente tem como objetivo não deixar as pessoas usar sites indevidos. Em algumas empresas, isto é verdade também para os servidores. Forçando os servidores a sair pra internet apenas por um proxy, os administradores tem um controle e logs do que os servidores fazem, podem mensurar e ainda colocam uma camada de segurança a mais, onde possíveis códigos maliciosos nas aplicações web não consigam sair para a internet.

É possível configurar o WordPress (e PHP puro também) para utilizar um proxy sem precisar fazer muito esforço.

Leia mais

Programação    

Múltiplos bancos de dados no WordPress (RW Splitting)


Comentários  12
Visualizações  
32,689

Uma instalação simples de WordPress geralmente usa apenas um banco de dados MySQL para armazenar todos os dados dessa instalação. Com a adoção em massa do WordPress, às vezes fica inviável manter várias instalações da mesma aplicação em uma única máquina. O mesmo acontece com o banco de dados: pode ser que o servidor MySQL não aguente a demanda de centenas ou milhares de blogs de uma instalação multi-site de WordPress. Uma das técnicas para evitar essa sobrecarga é reservar um MySQL para escrita e vários outros para leitura (rw splitting), assim a carga é distribuída entre vários servidores diferentes. Um patch aplicado no core do WordPress consegue fazer este trabalho.

Leia mais

Programação    

Postando no Twitter via linha de comando


Comentários  8
Visualizações  
47,072

Assim como muitos, eu acabei entrando no Twitter, um serviço de “micro-blog“. Eu não uso freneticamente mas até que é legal para acompanhar algumas coisas e anunciar outras. Tem que usar um pouco da imaginação para explorar a ferramenta. Assim sendo, eu encontrei por aí uma dica muito legal de como postar no twitter via linha de comando. Podemos utilizar o comando curl para fazer o post, da seguinte forma: curl -u USUARIO:SENHA \ -d status=”Testando um post do twitter via linha de comando no Linux… Será que funciona?” \ http://twitter.com/statuses/update.xml Lembre-se de substituir o USUARIO e SENHA pelo seu usuário e senha do site Twitter. A sua frase vai na variável status, como deu pra perceber no comando. É, até que funciona sim! Como sempre, na linha de comando, você consegue integrar esse comando com qualquer shell-script para ficar postando no twitter automaticamente, seja lá o que for que você quiser. Alguém aí tem bastante criatividade? Sim… um shell-script. Deixa eu ver se consigo fazer um aqui, rapidinho: #!/bin/bash # # Configuração USUARIO=”seu_usuario” SENHA=”sua_senha” CURL=”/usr/bin/curl” if [ -z $1 ]; then echo “Use: $0 ” exit 1 fi # Go for it $CURL -u $USUARIO:$SENHA \ -d status=`echo $@ [...]

Leia mais

Programação    

KML: Linguagem de Marcação


Comentários  2
Visualizações  
22,400

Na maioria das grandes cidades dos países desenvolvidos existe o costume de catalogar áreas de referência, sejam elas restaurantes, shoppings ou postos de gasolina. Há cidades onde as informações cadastradas referem-se a zonas críticas, com alto índice de crimes ou epidemias, auxiliando as tomadas de decisão (direcionar a atuação dos policiais ou dos agentes de saúde). Este trabalho tem a intenção de mapear, de forma georreferenciaFigurada, os pontos de acesso wireless à Internet presentes no estado de Sergipe. Para isso, foi desenvolvida uma aplicação que se aproveita das facilidades proporcionadas pelo conceito de web 2.0, em conjunto com a linguagem de marcação Keyhole Markup Language (KML), chamada Sergipe Wi-Fi, que permite que qualquer usuário, com acesso à Internet, possa visualizar um mapa com todos os pontos de acesso cadastrados. Também é permitido que qualquer pessoa cadastre novos pontos, que serão exibidos no mapa somente após a autorização de um dos administradores. O georreferenciamento (processo de mapear áreas e cadastrar suas coordenadas em sistemas de referência) dos pontos cadastrados é feito através da API do Google Maps, que fornece todas as funcionalidades necessárias à aplicação. O Sergipe Wi-Fi conta com estatísticas quantitativas e qualitativas sobre os pontos de acesso cadastrados, além [...]

Leia mais

Programação    

Como fazer calculadoras em JavaScript


Comentários  46
Visualizações  
1,482,845

Nunca me interessei de fato em aprender muito JavaScript, mas durante a faculdade, essa útil linguagem foi um dos temas do período. Nesta série de tutoriais, vou escrever o que vou aprendendo para compartilhar com os leitores do site. Nesta parte, utilizarei o primeiro conceito que aprendi de JavaScript fazendo uma calculadora simples.

Leia mais

Programação    

Shell-Script: Reconexão Automática


Comentários  3
Visualizações  
22,883

Este shell-script verifica se uma máquina está conectada na rede, e caso não esteja, reconecta-se de alguma forma. Para funcionar, além do script é necessário também o agendador de tarefas crontab. O script, checkConn.sh: #!/bin/bash # # IP de Teste TEST_IP=”74.125.47.147″ # UDHCPC UDHCPC=/sbin/udhcpc if ! `ping -c1 $TEST_IP > /dev/null 2>&1`; then $UDHCPC -i eth0 -q else exit 0 fi O TEST_IP é um IP da Internet para que o ping seja feito. Neste exemplo, usei um dos IPs do Google. Também, neste caso utilizei o cliente DHCP UDHCPC. Em resumo, este script pinga um IP e caso não haja resposta, executa o udhcp pedindo um novo IP. É uma solução simples e não é totalmente segura. Por exemplo, se o IP que tentamos pingar está fora, ao invés da própria máquina, ele vai executar mesmo assim. Com pequenas alterações, podemos colocar o dhclient para ser usado, ao invés do udhcpc. Ou também podemos colocar depois do “if” quaisquer comandos (como por exemplo, um log) que acontecerão quando a conexão falhar. Escolha um intervalo para ficar executando este script. Aqui colocarei o script para ser executado de 2 em 2 minutos. Para fazer o agendamento, usamos o crontab executando [...]

Leia mais