h5ai, um moderno indexador de arquivos para usar em seu Servidor Web

h5ai é uma poderosa ferramenta de listagem de diretório de arquivos, desenvolvida em PHP, que oferece listagem de arquivos de forma moderna e multiplataforma. Originalmente foi pensado para o Apache, daí o seu nome (HTML5 Apache Index), agora é compatível com os servidores web mais populares (Apache, Nginx, Lighttpd, Cherokee). Você pode usar este programa para visualizar texto, imagens, áudio, vídeo, etc. online.

A instalação sob o Nginx é rápida e fácil. Você faz o download do arquivo no diretório que deseja, podendo ser dentro do document_root  (ex: /var/www/html), extrai o conteúdo e acessa a configuração.

DOC_ROOT
 ├─ _h5ai
 ├─ seus arquivos
 └─ suas pastas

Aí dependendo da configuração de seu Nginx, você vai editar /etc/nginx/sites-available ou o arquivo de configuração em /etc/nginx/conf.d/ e deixar a linha de index assim:

index index.php index.html index.htm /_h5ai/public/index.php;

Pronto, ao acessar http://seusite/_h5ai/public/ você pode testar a compatibilidade do seu servidor e ver se tudo está em ordem (a senha padrão é vazia).

É bem provável que deve ser exibido um erro na pasta de cache, para resolver isso você pode dar a permissão 666 os seguintes arquivos:

cd /var/www/html/_h5ai
chmod 666 private/cache
chmod 666 public/cache

Desative as funções passthru, exec, e scandir do PHP-FPM:

Primeiro localize o arquivo php.ini em seu servidor, rodando o seguinte comando:

php -i |grep 'Configuration File'

#Deve retornar:
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini 

Rode os seguintes comandos:

sed -i 's/,scandir//g' /etc/php.ini
sed -i 's/,exec//g' /etc/php.ini
sed -i 's/,passthru//g' /etc/php.ini

Após isso só reiniciar o PHP-FPM e recarregar o NGINX:

service php-fpm restart
service nginx reload

Caso queira instalar no Apache, confira esse link.

Referências:

Usando SourceTree através de um proxy no Mac OS

O Atlassian SourceTree, uma ferramenta gratuita que possui uma interface bem fácil de usar/aprender. O público alvo desta ferramenta são usuários do Git que não gostam de trabalhar com linha de comando. Abaixo segue a configuração no MacOS para que o SourceTree possa enviar os arquivos comitados para um servidor externo sob um servidor proxy.

  1. Abra o terminal no MAC
  2. Edite o arquivo bash_profile
    1. $ vi ~/.bash_profile
  3. Adicione as linhas do proxy.
    1. export http_proxy= usuario:senha@proxy.servidor.com.br:porta
    2. export https_proxy=usuario:senha@proxy.servidor.com.br:porta
  4. $ source ~/.bash_profile
  5. Rode essa linha no terminal para recarregar o SourceTree
    1. $ /Applications/SourceTree.app/Contents/MacOS/SourceTree

 

Como encontrar e-mails que você enviou mas que não houve resposta no Gmail ou Google Apps

Certamente você é uma pessoa que muitas vezes envia e-mails e depois esquece que eles estão à espera de uma resposta, devido ao grande número de mensagens enviadas.

Bem, há uma solução chamada Aguardando Resposta, que é um script que faz a busca na pasta Enviados para identificar todas as mensagens foram enviadas durante a semana anterior.

Em seguida, verifica cada conversa para determinar se alguém respondeu a sua mensagem. Caso ninguém tenha feito, o script aplica uma etiqueta (marcador, rótulo) Aguardando Resposta.  Para que mais tarde você possa facilmente visualizar as mensagens sem resposta apenas selecionando este rótulo.

Para facilitar, já criei um arquivo de script compartilhado dentro do Google Script, bastando executá-lo, dando permissões na primeira vez. Depois de executar, basta verificar a sua pasta Enviados para você ver quais são seus emails que ainda não foram respondidos.

Clique aqui para executar diretamente do Google Script 

Veja o código do script:

// Este script procura no Gmail mensagens onde que você nunca recebeu resposta durante os últimos 7 dias
// E coloca uma etiqueta chamada Aguardando Resposta na caixa enviados.

var DAYS_TO_SEARCH = 7; // apenas mensagens enviadas nos últimos 7 dias
var SINGLE_MESSAGE_ONLY = false; // nao considerar multi-mensagens (conversas)

function label_messages_without_response() {
var emailAddress = Session.getEffectiveUser().getEmail();
Logger.log(emailAddress);
var EMAIL_REGEX = /[a-zA-Z0-9\._\-]+@[a-zA-Z0-9\.\-]+\.[a-z\.A-Z]+/g;
var label = GmailApp.createLabel("Aguardando Resposta");
var d = new Date();
d.setDate(d.getDate() - DAYS_TO_SEARCH);
var dateString = d.getFullYear() + "/" + (d.getMonth() + 1) + "/" + d.getDate();
threads = GmailApp.search("in:Sent after:" + dateString);
for (var i = 0; i < threads.length; i++)
{
var thread = threads[i];
if (!SINGLE_MESSAGE_ONLY || thread.getMessageCount() == 1)
{
var lastMessage = thread.getMessages()[thread.getMessageCount()-1];
lastMessageSender = lastMessage.getFrom().match(EMAIL_REGEX)[0];
if (lastMessageSender == emailAddress)
{
thread.addLabel(label);
Logger.log(lastMessageSender);
}
}
}
}

 

Configurar REDMINE para enviar email de notificação utilizando Gmail ou Google Apps

Você vai encontrar diversas formas de configurar isso, eu mesmo teste umas 10, e todas reportando erro, até que cheguei a esta configuração simples:

1. Editar o arquivo configuration.yml
Que pode estar aqui: “/var/www/redmine/config/configuration.yml” dependendo da sua instalação.

2. Editar as informações de email da seguinte forma:

production:
email_delivery:
delivery_method: :smtp
smtp_settings:
address: "smtp.gmail.com"
port: 587
domain: "smtp.gmail.com"
authentication: :plain
user_name: "seu_email@gmail.com" #ou sua conta google apps
password: "senha_do_email"
enable_starttls_auto: true

3. Reinicie o apache: /etc/init.d/apache2 restart (dependendo também da sua distribuição e apache instalado)

4. Envie um email de teste:
a. Login como administrador
b. Vá até o painel administração e clique em configurações
c. Vá até a aba ‘Notificações por Email’
d. E clique no botão(link) ‘enviar um e-mail de teste’ no canto inferior direito.

Simples assim!

Como encerrar uma sessão do Facebook remotamente

Situação bem comum. Você acessa sua conta de Facebook em vários computadores/dispositivos e não fecha a sessão ao sair, com isso, uma outra pessoa que tiver acesso ao computador e abrir o facebook cairá diretamente no seu perfil já logado.

Mas é possível encerrar sua sessão remotamente, veja os passos:

A primeira coisa que você deve fazer é entrar em sua conta em qualquer computador ou dispositivo móvel. Clicar na seta para baixo, ao lado do cadeado na lateral superior direita e no menu que desce, escolher configurações.

Depois, vá até a opção segurança, na lateral esquerda, e clicar em Editar na opção “onde você esta conectado”. Dessa forma poderá ver todas as sessões que você deixou aberta e encerrar diretamente daí. Simples assim.

Geradores de códigos para WordPress – GenerateWP

Se você trabalha com desenvolvimento com WordPress precisa conhecer esta fantástica ferramenta que é o GenerateWP.com com diversos geradores de funcionalidades para temas e Plugins.

 

Usando esse tipo de ferramenta, consegue-se economia de tempo e evita-se problemas com parâmetros incorretos.

Alguns destaques:

  • Gera vários códigos de aprimoramento o wp-config;
  • O código gerado pode continuar sendo editado por você manualmente;
  • Todas as opções possuem dicas com um valor de exemplo e links de referência nas opções mais complexas.
  • Códigos com identação correta que torna o código mais simples de entender e personalizar.
  • A qualidade dos geradores é simplesmente espantosa e sua utilização é bem simples e intuitiva. Então não tem mais motivos para ficar perdendo tempo na hora de criar estes códigos que todo desenvolvedor precisa.

Link: http://generatewp.com

Como criar super mapas de sites


Mapa de site é um recurso essencial em praticamente qualquer projeto web, além de facilitar a vida do usuário na localização das informações, possuir um mapa irá também melhorar o posicionamento do site em ferramentas de busca, isso não é nenhuma novidade.

Agora, legal mesmo é o SlickMap CSS que é uma folha de estilo simples para exibir mapas de sites, diretamente do HTML. Ela acomoda até três níveis de navegação de página e links de utilidade adicionais – e pode ser facilmente personalizado para atender às suas próprias necessidades.

Ainda melhor, é totalmente gratuito e rápido para implementar.

Link: http://astuteo.com/slickmap/

Instant WordPress – Instalação do WordPress Portable

Instant WordPress é um programa que permite “rodar” uma instalação do WordPress completa sem a necessidade de instalar nada, ou seja, totalmente portable.

Após baixar, basta executar diretamente da pasta ou de uma unidade USB (pendriver), já estará pronto para uso de modo independente como qualquer outro programa portable. Ele vem com WordPress 3.2, Apache 2.2.15, PHP 5, MySQL 5 e uma série de posts e páginas demos, assim você já poderá testar plugins e temas.

 

No site do projeto há uma abundante documentação (inglês).

Você talvez se pergunte, onde que isso vai ser útil?

1. Bem, esta é uma solução ideal para quem vai dar aula sobre este CMS, pois não irá precisar que as máquinas do laboratório tenham internet, nem mesmo vai precisar perder tempo com a instalação e configuração de um ambiente de desenvolvimento local (Xampp, easyphp phptriad ou vertrigo), focando no que realmente interessa.

2. Pode-se utilizar também em USB Sticks promocionais, onde se instala diretamente no Pendriver o WordPress com todo material de um evento, de um sistema e etc…muito bom.

Conversor PDF para Excel – Gratuito

Características do Conversor – PDF para Excel, completo e gratuito

  • Fácil de Usar
  • Edita formulários PDF em Excel
  • Não há necessidade de ter o Excel instalado
  • Conversão total
  • Preserva todo o texto PDF no Excel convertido
  • Conversão rápida
  • Modo Batch – converter centenas de documentos PDF para Excel.

Opções de download:

Como fazer um Link expirar em um Post ou Página no WordPress?

Imagine que em determinado período, você resolva promover um concurso em seu site e faz a divulgação mediante a uma postagem:

  1. O link para inscrição deve aparecer somente até a data X.
  2. As demais informações da postagem de divulgação dece continuar.

Isso é simples de resolver, existem duas formas: criando uma função no arquivo wp-includes/functions.php (ou no arquivo functions.php do tema, se houver) ou por meio de plugins.

Vamos ver a primeira opção. Edite o arquivo wp-includes/functions.php

// Vencimento //
function vence_conteudo($args = array(), $content = '') {
    extract(shortcode_atts(
        array(
            'off' => 'amanha', // nao funcionara se nao definir uma data real
        ),
        $args
    ));
    if (strtotime($off) > time()) {
        return $content;
    }
    return '';
}

add_shortcode('vencimento', 'vence_conteudo');

// O que mostrar quando o prazo estiver expirado //
function mostra_conteudo($args = array(), $content = '') {
    extract(shortcode_atts(
        array(
            'on' => 'amanha', // nao funcionara se nao definir uma data real
        ),
        $args
    ));
    if (strtotime($on) < time()) {
        return $content;
    }
    return '';
}
add_shortcode('mostra', 'mostra_conteudo');

Uma vez que se tenha criado a função, basta editar a postagem, adicionando as tags:

[vencimento off=”2012-05-10″] Clique aqui para Inscrição [/vencimento]

[mostra on=”2012-05-10″] Aqui entra o conteúdo que deverá aparecer assim que expirar, no exemplo em: 10/05/2012. [/mostra]

Simples não?

Caso queira utilizar um plugin, confira estes:
shortcodes-to-show-or-hide-content
simple-content-expiry/

Espero ter ajudado.