by R.I. Pienaar | Jan 30, 2005 | Photography Equipment
Digital Photography is great in that you don’t need film, but it also is part of its problem, if you only have a few media cards like most people then you need to drag a laptop around with you if you are away for a few weeks to empty your cards onto.
A year or two ago companies started introducing portable storage devices, basically just a portable HDD to dump photos on, these all have built in card readers for multiple types of cards.
I have been looking at these products a long time and they all seem to have issues, mostly the card readers in them are slow, transfer speeds as low as 300kb/sec has been noted in some of the most popular devices.
I read a review of the Transcend Digital Album and was immediately impressed with it. I bought one early January and only had chance to use it last weekend. I have to say I really love this device it is the perfect answer to the storage problem while on the move.
Read the Steve’s Digicams review for all the details about it I agree with most of what is said there. The only irritating thing is that even though I bought it in the UK it does not come with a UK plug, only a European 2 prong and the same as used in South Africa, so I needed an adapter to get it going, other than that it is fantastic.
by R.I. Pienaar | Jan 30, 2005 | Code
Posts for my photoblog are structured in a specific way. I put the image name in the entry body and the text in the extended entry. As long as I stick to that format my templates will automatically put in the right thumbnails, full size images etc.
While this is pretty simple to keep in mind and I have been doing it manually I wanted to automate things a bit. I also wanted to include some EXIF info for each image which Movable Type could not do on its own.
The solution was to write a simple blogging client in perl, read on for some details.
First off, lets cover the EXIF extraction, I found a excellent module in the FreeBSD ports system called Image::ExifTool. From its description:
ExifTool provides an extensible set of perl modules to read and write
meta information in image files. It reads EXIF, GPS, IPTC, XMP,
GeoTIFF, ICC Profile and Photoshop IRB meta information from JPEG,
TIFF, GIF, THM, CRW (Canon RAW), CR2 (Canon 1D Mk II RAW), MRW (Minolta
RAW), NEF (Nikon Electronic image Format), PEF (Pentax RAW), ORF
(Olympus RAW Format) and DNG (Digital Negative) images, as well as the
maker notes of many digital cameras by various manufacturers including
Canon, Casio, FujiFilm, Minolta/Konica-Minolta, Nikon, Olympus/Epson,
Panasonic/Leica, Pentax/Asahi, Sanyo and Sigma/Foveon. It writes EXIF,
GPS, IPTC, XMP and MakerNotes information to JPEG, TIFF, GIF, THM, CR2,
NEF, PEF and DNG files.
Using it is trivial, and you can read all the details at its CPAN Page. For me it was as simple as this:
my $exifTool = new Image::ExifTool;
$exifInfo = $exifTool->ImageInfo("$photodir/$image");
$tagDescription = $exifTool->GetDescription($tag);
%tagValue = $exifTool->GetValue($tag);
Really simple, to see for yourself what information this will find
in a image you can run the included ‘exiftool’ script, here is some
sample output:
—- ExifTool —-
ExifTool Version Number : 3.72
—- File —-
File Name : 30012005.jpg
File Size : 67KB
File Type : JPG
Image Width : 366
Image Height : 550
—- EXIF —-
Software : Adobe Photoshop CS Windows
Flash : No Flash
Exif Image Width : 366
Exif Image Length : 550
Compression : JPEG (old-style)
Thumbnail Offset : 586
Thumbnail Length : 6137
—- IPTC —-
Application Record Version : 2
—- Photoshop —-
Photoshop Thumbnail : (Binary data 6137 bytes, use -b option to extract)
—- XMP —-
Version : 2.2
Raw File Name : DSC_4995.NEF
White Balance : As Shot
Exposure : +0.85
Shadows : 5
Brightness : 50
Contrast : +25
Saturation : 0
Sharpness : 25
Luminance Smoothing : 0
Color Noise Reduction : 25
Chromatic Aberration R : 0
Chromatic Aberration B : 0
Vignette Amount : 0
Shadow Tint : 0
Red Hue : 0
Red Saturation : 0
Green Hue : 0
Green Saturation : 0
Blue Hue : 0
Blue Saturation : 0
Tv(Shutter Speed) : 1/500
Shutter Speed Value : 1/500
Av(Aperture Value) : 5.6
Aperture Value : 5.6
Exposure Program : Program AE
Shooting Date/Time : 2005:01:23 13:58:27
Exposure Compensation : -0.33
Max Aperture Value : 5.7
Metering Mode : Multi-segment
Focal Length : 125.0mm
Focal Length In 35mm Format : 187
Color Space : Unknown (4294967295)
ISO Speed : 200
Flash Fired : False
Flash Return : No return detection
Flash Mode : Unknown (0)
Flash Function : False
Flash Red Eye Mode : False
Lens : 18.0-125.0 mm f/3.3-5.6
Make : NIKON CORPORATION
Camera Model Name : NIKON D70
Orientation : Horizontal (normal)
X Resolution : 300
Y Resolution : 300
Resolution Unit : inches
Creator Tool : Adobe Photoshop CS Windows
Date/Time Of Last Modification : 2005:01:23 17:21:22
Date/Time Of Digitization : 2005:01:23 17:21:22
Metadata Date : 2005:01:23 17:21:22
Derived From Instance ID : uuid:121a03ec-6d63-11d9-bfa3-cf79758759c4
Derived From Document ID : adobe:docid:photoshop:121a03eb-6d63-11d9-bfa3-cf79758759c4
Document ID : adobe:docid:photoshop:121a03ef-6d63-11d9-bfa3-cf79758759c4
Format : image/jpeg
—- Composite —-
Av(Aperture Value) : 5.6
Image Size : 366×550
Scale Factor To 35mm Equivalent : 1.5
Tv(Shutter Speed) : 1/500
Thumbnail Image : (Binary data 6137 bytes, use -b option to extract)
Focal Length : 125.0mm (35mm equivalent: 187.0mm)
This is very impressive, you can see multiple sets of data, example
is the Exposure, I shot it at -0.33 in the camera then bumped it to
+0.85 in Photoshop CS RAW Plugin.
Now that I have a good way to extract meta data from my images the next step was to do the blog posting, this was trivial using Net::MovableType, below is a quick code snippet, read all about it at CPAN
use Net::MovableType;
my $mt = new Net::MovableType(‘http://your.com/rsd.xml’);
$mt->username(‘user’);
$mt->password(‘secret’);
$entry = {
title => “Hello World from Net::MovableType”,
description => “Look ma, no hands!”
};
$postID = $mt->newPost($entry);
$mt->publishPost($postID);
Very simple, it has many other functions, you can read, edit,
categorise etc, all the stuff you can do from the standard Movable Type
API.
(more…)
by R.I. Pienaar | Jan 27, 2005 | Front Page
Today I received spam from a Cape Town based company, they sent it via a SAIX ADSL link and I just know complaining to SAIX will not get me anywhere.
So what to do?
I think putting the email addresses here for email harvesters to get and add to plenty of spam lists will be a good revenge, so here goes:
sales@compu-teers.co.za
john@compu-teers.co.za
rory@compu-teers.co.za
Have fun.
by R.I. Pienaar | Jan 25, 2005 | Usefull Things
A new version of Movable Type has been released to fix a vulnerability that allowed attackers to send mail via your machine. You can get the upgrade here and the changelog is here.
Annoyingly this does not fix the known problem with email notifications not working so this is the 2nd release from Movable Type that has this bug and requires you to fiddle the source to fix it. You can read this forum posting for details of fixing the email bug.
by R.I. Pienaar | Jan 20, 2005 | Front Page
I just completed the upgrade of my blog from MT 2.64 to 3.14. The upgrade was fairly painless except for one known problem. Sending mail notifications stopped working. There is a temp solution on the MT support forum here.
I have also now enabled TypeKey on the main blog and all non TypeKey comments will require moderation before they appear on the site.
I will have to fiddle the templates for comments a bit to give them the same look and feel as my main site, this is not something I have done for the old MT either but I suppose its a good idea.