dh make perl and sudo

dh-make-perl fails when run through sudo:

sudo dh-make-perl --cpan IO::Socket::SSL
...
Use of uninitialized value $orig_pwd in chdir at
/usr/share/perl5/DhMakePerl/Command/make.pm line 281.

Running as root works though.

mutt

Accidently instructed mutt to encrypt a message where you don’t have the recipients GPG key? Press Gtrl-G.

kb3097877 cant login

Black screen on Windows 7 after Ctrl+Alt+Del? Maybe it’s the broken update KB3097877.

A possible fix for 64 Bit Machines according to Heise Forum:

dism /image:X:\ /remove-package
/packagename:Package_for_KB3097877~31bf3856ad364e35~amd64~~6.1.1.1
/scratchdir:X:\temp

corosync

Use tap devices with OpenVPN when running corosync/pacemaker on wheezy over it. Also transport: udpu.

ceph

When using small disks in a ceph setup you may hit bug #8551 leading to your pgs being stuck in incomplete and your cluster never reaching HEALTH_OK.

Check if your osd weights are zero and reweight them if needed.

hover

I moved to Octopress and am no longer actively developing Hover. If you want to take over, contact me by email.

hover 0 7 3 available

Besides a couple of minor bugs this release fixes one major bug with php >= 5.4

Warning: Creating default object from empty value in…/wp-content/plugins/hover/hover.php on line 182

mojolicious and sprintf loggin

Don’t want to write things like

app->log->debug("foo $config->{foo} versus ".stat->mtime." seconds");

but rather

app->log->debug("foo %s versus %d seconds", $config->{foo}, stat->mtime);

but Mojo::Log does not support that directly. You could use this:

app->log->debug(sprintf("foo %s  versus %d seconds", $config->{foo}, stat->mtime));

with the downside that sprintf() is called even if the message would not be logged due to your app’s log level being higher than that of the call.

Alternatively you could base your own logger class on Mojo::Log:

#!/usr/bin/perl

package My::Log;
use base Mojo::Log;

sub format {
        my ($self, $level, $format, @parameters) = @_;

        return $self->SUPER::format($level, sprintf($format, @parameters));
};

package main;

use Mojolicious::Lite;

app->log->error("this string %s printf %s", 'uses', 'stuff');
app->log->warn('decimal: %d hex: %x', 16, 16);
app->log->info('pi: %.2f', 3.14159265359);

And it’s output:

[Wed Feb 27 17:24:34 2013] [error] this string uses printf stuff
[Wed Feb 27 17:24:34 2013] [warn] decimal: 16 hex: 10
[Wed Feb 27 17:24:34 2013] [info] pi: 3.14