Wordpress e algumas coisas irritantes
14/10/06
O Wordpress é um dos melhores, se não o melhor, sistema de blogs da atualidade. Mas algumas coisas me irritam muito. Posso citar aqui de bate-e-pronto duas: a conversão de aspas e hífens. Se você posta códigos no seu blog, já deve ter enfrentado isso. Hoje fui postar um trecho de código que tinha aspas simples e dois hífens (parâmetro de um comando). O WP insistia em converte-los em entidades.
Fiquei de saco cheio e criei um plugin. Se você sofre dos problemas que eu falei, instale este plugin agora mesmo! Basta baixar o arquivo wp_coders.php e salvar na pasta "plugins". Depois, ative-o na seção "Plugins" do painel administrativo. Veja o código do plugin:
<?php
/*
Plugin Name: wp_coders
Plugin URI: http://simplesideias.com.br/wp-coders
Description: Removes WP annoyances (quotes and dashes)
Author: Nando Vieira
Version: 1.0
Author URI: http://simplesideias.com.br
*/
class wp_coders
{
function wp_coders()
{
add_filter('comment_author', array(&$this, 'normalize'), 20);
add_filter('comment_text', array(&$this, 'normalize'), 20);
add_filter('bloginfo', array(&$this, 'normalize'), 20);
add_filter('category_description', array(&$this, 'normalize'), 20);
add_filter('list_cats', array(&$this, 'normalize'), 20);
add_filter('the_content', array(&$this, 'normalize'), 20);
add_filter('the_excerpt', array(&$this, 'normalize'), 20);
add_filter('single_post_title', array(&$this, 'normalize'), 20);
add_filter('the_title', array(&$this, 'normalize'), 20);
}
function normalize($text = '')
{
$text = str_replace(
array('—', ' — ', '–'),
array('---', ' -- ', '--'),
$text
);
$text = str_replace(array("‘", "’", "′"), "'", $text);
$text = str_replace(array("“", "”", "″"), """, $text);
return $text;
}
}
$wp_coders =& new wp_coders();
?> - Permalink
- Trackback
- Comentários (11)
- Ao som de: +44 – Chapter XIII
Detectando o screensaver com D-BUS
14/10/06
Imagine que você precise detectar se o screensaver está ativo ou não. Utilizando o D-BUS, é muito simples!
Tudo o que você precisa fazer é acessar a interface "org.gnome.ScreenSaver", presente no Gnome.
bus = dbus.SessionBus() obj = bus.get_object('org.gnome.ScreenSaver', '/org/gnome/ScreenSaver') screensaver = dbus.Interface(obj, 'org.gnome.ScreenSaver') screensaver.connect_to_signal('ActiveChanged', detect_screensaver)
Abaixo, você tem um exemplo completo.
#! /usr/bin/env python import dbus import dbus.glib import commands import gtk def detect_screensaver(enabled): print "Screensaver enabled? %s" % enabled def enable_screensaver(widget): commands.getoutput(' gnome-screensaver-command --activate') bus = dbus.SessionBus() obj = bus.get_object('org.gnome.ScreenSaver', '/org/gnome/ScreenSaver') screensaver = dbus.Interface(obj, 'org.gnome.ScreenSaver') screensaver.connect_to_signal('ActiveChanged', detect_screensaver) win = gtk.Window() button = gtk.Button('Activate screensaver') win.connect('destroy', gtk.main_quit) button.connect('pressed', enable_screensaver) win.add(button) win.show_all() gtk.main()
- Permalink
- Trackback
- Comentários (0)
- Ao som de: +44 – Chapter XIII
Timesheet
11/10/06
Há 1 mês atrás vi no The Apple Blog um artigo sobre um aplicativo chamado On The Job. Apesar de achá-lo muito legal, ele é para OSX, além de não ver muita utilidade. Achava isso até o começo desta semana.
Tive que preencher um timesheet e procurar por e-mails de 3 meses atrás para saber o que precisei fazer não foi uma das experiências mais agradáveis. Então, comecei a procurar alternativas para o Linux. No Synaptic, encontrei Worklog e o GnoTime. O primeiro roda em linha de comando e, apesar de gostar de linha de comando, definitivamente não era para mim. O segundo parecia ser interessante, mas não entendi como funciona. Juro que tentei, mas depois de 5 minutos, desisti.
Então, resolvi fazer meu próprio software! Se você adivinhar qual nome eu dei, ganha uma bala! Yep! É Timesheet. A idéia é fazer com que ele sempre fique no tray, para me lembrar que tem uma tarefa em execução. Assim, posso alternar entre elas de maneira muito simples. Quando o Timesheet estiver no tray, você verá algo como:

Se você clicar no tray, a janela do Timesheet aparecerá:

O context menu será parecido com isto:
Uma funcionalidade que é fundamental é detectar se o screensaver está ativo ou não. Dessa maneira, posso definir o que quero fazer com o tempo "ocioso". Entre aspas porque nesse meio tempo posso estar fazer uma outra tarefa relacionada ao projeto e que não necessariamente seja no micro (reuniões, etc). Fiz alguns testes usando o D-BUS e é bem simples de fazer isso usando o Gnome Screensaver, que vem com o Ubuntu Dapper.
Esse fim de semana vou tentar terminar uma versão usável deste aplicativo. Você que usa timesheet: tem alguma funcionalidade que você gostaria que tivesse?
- Permalink
- Trackback
- Comentários (13)
- Ao som de: +44 – Chapter XIII
