Archive for January, 2008

Spam away

I implemented reCAPTCHA on this blog because of comment spam. If you are having issues leaving a comment let me know. ;-)

1 Comment »

reCAPTCHA plugin styling

Installing a CAPTCHA implementation on Wordpress is quite easy when using the reCAPTCHA plugin, however the styling is hard coded into the main php file included.

Goto the installation directory, for example, “wp-content/plugins/recaptcha-wordpress-2.7″ and edit recaptcha.php. Look for the line that embeds the theme type and change it.

<script type="text/javascript">
    var RecaptchaOptions = { theme : "red", tabindex : 5 };
</script>

I used the “clean” theme. There are other options and ideas for editing the code with css changes.

No Comments »

Motion Capture Sorting

When using Motion for a security camera setup, it can generate a lot of files… One installation I have setup has “Encode movies in real-time” enabled, so not only are there many .jpgs in the capture directory, but also .avis.

This can become quite tedious… copying and pasting them from a GUI every day. Consequently, I would let the files simply pile up for a few days before moving them around. Then it became a big job.

Scripting to the rescue. The following below is a PHP-CLI script, that when run from the motion capture directory will sort the various files into a nice little structure that allows for dropping the .avis into a play list for viewing, and keeps the .jpgs around for backup.

#!/usr/bin/php
<?php

$fileExtOne = ".jpg";
$fileExtTwo = ".avi";
$fileNameArray = array();

//dump filenames (ending in .jpg or .avi)
//in current directory into array
if ($handle = opendir(".")) {
    while (false !== ($file = readdir($handle))) {
        if (substr($file, -4) == $fileExtOne ||
            substr($file, -4) == $fileExtTwo) {
            array_push($fileNameArray, $file);
        }
    }
    closedir($handle);
}

//make multi-dimensional array with substrs of filename
for ($i=0; $i<count($fileNameArray); $i++) {
    $fileNameSplit = split("-",$fileNameArray[$i]);
    $dirArray[$i]["group"] = $fileNameSplit[0];
    $dirArray[$i]["year"] = substr($fileNameSplit[1], 0, 4);
    $dirArray[$i]["month"] = substr($fileNameSplit[1], 4, 2);
    $dirArray[$i]["day"] = substr($fileNameSplit[1], 6, 2);
    $dirArray[$i]["name"] = $fileNameArray[$i];
}

//create unique array with new directory names and mkdir them
for ($i=0; $i<count($dirArray); $i++) {
    $dirNameArray[$i] = $dirArray[$i]["year"]
            ."-". $dirArray[$i]["month"]
            ."-". $dirArray[$i]["day"]
            ."/". $dirArray[$i]["group"];
}
$uniqueNewDirNames = array_unique($dirNameArray);
foreach ($uniqueNewDirNames as $value) {
    $splitUniqueDirNames = split("/", $value);
    mkdir($splitUniqueDirNames[0], 0755);
    mkdir($splitUniqueDirNames[0]
        ."/". $splitUniqueDirNames[1], 0755);
}

//move files into the appropriate directories
for ($i=0; $i<count($dirArray); $i++) {
    if (substr($dirArray[$i]["name"], -4) == $fileExtOne) {
        rename($dirArray[$i]["name"], $dirArray[$i]["year"]
            ."-". $dirArray[$i]["month"]
            ."-". $dirArray[$i]["day"]
            ."/". $dirArray[$i]["group"]
            ."/". $dirArray[$i]["name"]);
    }
    if (substr($dirArray[$i]["name"], -4) == $fileExtTwo) {
        rename($dirArray[$i]["name"], $dirArray[$i]["year"]
            ."-". $dirArray[$i]["month"]
            ."-". $dirArray[$i]["day"]
            ."/". $dirArray[$i]["name"]);
    }
}

?>

Here’s what find returns after running the script on the capture directory full of sample .avis and .jpgs.

username@workstation:~/captures> find .
.
./2008-01-06
./2008-01-06/01
./2008-01-06/01/01-20080106145755-02.jpg
./2008-01-06/01/01-20080106145755-04.jpg
./2008-01-06/01/01-20080106145756-00.jpg
./2008-01-06/01/01-20080106145757-00.jpg
./2008-01-06/01/01-20080106145757-01.jpg
./2008-01-06/01/01-20080106145758-00.jpg
./2008-01-06/01/01-20080106145758-01.jpg
./2008-01-06/01/01-20080106145758-02.jpg
./2008-01-06/01/01-20080106145758-04.jpg
./2008-01-06/01/01-20080106145758-05.jpg
./2008-01-06/01/01-20080106145758-06.jpg
./2008-01-06/01/01-20080106145759-00.jpg
./2008-01-06/01/01-20080106145808-01.jpg
./2008-01-06/01-20080106145755.avi

No Comments »