DIY: 400D Flash Deflector

30 March 2008 Tags  

To complement my new camera, I desperately wanted a new flash, such as the 440EX or 530EX Speedlites from Canon. Unfortunately, their price tags are very prohibitive, with the latter getting up to AUD$700! The inbuilt/popup flash on the EOS 400D is 'okay', I guess, in the same way the flash on any point and shoot (P&S) camera is 'okay'. I should point out that there is now the trend that certain non-SLR's cameras having a Hot Shoe mount, meaning a more expensive and swivelable flash, eliminating the direct flash problem found in the majority of P&S cameras. I'm talking about flashes built into the camera, be it popup or fixed.

 

flashdiagram copy

 

The main problem with most P&S cameras that utilise a flash is that the subject becomes over exposed or there is excessive specular highlights because of the direct flash. A diffuser would help, but indirect light by bouncing it off the ceiling is often the best approach. Out of sheet styrene (or cardboard like my prototype was), I've created a Flash Deflector for my 400D. It simple slots into the hotshoe mount, and redirects the light from the flash to the ceiling, lighting the subject up (albeit a reduced amount) but not blasting it with direct light.

Step 1.

My prototype was created using white card (the inside of a box of prescription painkillers), so it is doable using household items (and thus free) - just make sure its a thickish card, otherwise it won't reflect all the light.

Cut out the styrene or card into the various pieces needed. For 1mm styrene, you need four pieces in total - the main deflector, the holding bar, and two more to slot into the hotshoe mount. For card, you can get away with one piece folded over itself.

Section Shape
Hotshoe Mount Piece
(bit that slides into the HotShoe Mount)
parta
Square
Spacer
(In between HotShoe Mount Piece and Bracket)
partb
Rectangle
Bracket
(the part Deflector slides into)
partc
Rectangle with slot
Deflector partd
Rectangle with sticky-outy-bit (scientific term there folks)

The 'bracket' bit has a cut/slot in it the same size as the 'sticky-outy-bit' of the Deflector. This allows you to slide the main bracket piece into the camera's hot shoe mount first, then slot in the deflector. Why? It means its overall thinner than what it'd have to be if you glued it in, and you can fold down the Flash Deflector into a bag so it doesn't get broken.

Step 2.

Glue the Hotshoe Mount, Spacer, and Bracket together - the Spacer goes in the middle of the Hotshoe Mount Piece and at the end without the slot of the Bracket.

I'd recommend a strong adhesive that is heat resistant such as super glue. Just be careful to make sure everything is dry BEFORE slotting it into your camera - you don't want it permanently mounted for when you can eventually afford the better flashes!

Step 3.

Take photos, 'cause you're done.

finished_product 400dWithDeflector

Results

noflash flash flashdeflector
No Flash
(ISO 400, 1/60 second shutter speed*)
With Flash
(ISO 100, 1/200)
With Flash +Deflector
(ISO 100, 1/200)

*Using the same shutter speed or/and ISO settings as the other photos resulted in a black image (too dark). All shot with a 50mm f/1.8 II Prime Lens

Click each image if you want to see each photo in its original size (albeit cropped, file size for the three is about 2.9mb, I think).

As you can easily see, No Flash is too dark; with the Flash, the camera had trouble focusing properly, the edges of the phone are white while the rest of the phone is very dark; and finally the Flash + Deflector lights the scene almost perfectly! In Photoshop Lightroom, the 'Flash' white balance setting is pretty much spot on for what the items look like in real life/well lit situations for the Flash + Deflector shot, whereas the Flash shot requires a lot more work (not just changing the white balance) to get the realistic colours.

I might take this further later on, and experiment with semi-transparent materials, straws, etc, but overall, I'm pretty darn happy for about 10 minutes work. I think if anything, I'll change the deflector to a box so that more light is deflected forward, rather than backwards towards the photographer.


7 Comments
 

Exploiting Live Gallery to upload to custom gallery

19 March 2008 Tags  , ,

My photo management tool of choice is Live Gallery (WLG): it's fast, free, and fairly featuresome.

One feature that is lacking however, is to upload to your own 'custom' gallery. Oh, sure, you can upload to Flickr, or Live Spaces, but honestly, who uses either of those services, pfft! Unfortunately, there doesn't seem to be a plugin API (yet?) for Live Gallery so it isn't possible to add your own image gallery service to upload - well, not as neatly as Flickr/Live Spaces.

Step 1: Add Your Gallery

To add your own custom gallery uploading to Live Gallery, we need to exploit the Online Printing functionality. Each printing service is actually defined in the registry, and the default "Print@Kodak" is a great starting point to seeing what data we need.

It is located at:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\PublishingWizard\InternetPho
toPrinting\DownloadedProviders\Print@Kodak

The registry values look like:

"displayname"="Print@Kodak"
"description"="Get Kodak photo quality prints from your digital camera!"
"href"="http://print.fotowire.com/webprint/xp/start.asp?WID=25900"
"icon"="fwPrint.ico"

To add your own, it is as simple as creating your own key inside of DownloadedProviders, however either Windows or WLG seems to delete the registry key after closing WLG. Instead of inside DownloadedProviders, create a Providers key (inside InternetPhotoPrinting), and then create your own Provider key, with the same sorts of values (displayname, href, description and icon) as the Kodak Provider.

It should look something like this image when you're done

image

There is another benefit to doing it this way, under the printing menu, you will now have 'Print', 'Order prints', and 'Order prints from foo'

image

Step 2: Prepare your gallery

While it is great we've thrown it a random URL, how do we know what data is actually being sent?

Thankfully Elmar Putz had figured out the XP Web Publishing Wizard (which is very, very similar), so that was most of the leg work done.

First, the page set in the Href in Registry. I'm going to cut to the chase and just list the HTML/Javascript, if you want more of an explanation, see Elmar's article (linked above). All you need to do is change the UploadURL and EndUrl

<html>
    <
head>
        <
script language="JavaScript">
            var
UploadURL = "http://mydomain/upload/";
            var EndURL = "http://mydomain/aftertheupload.html";
            function window.onload()
            {
                window.external.SetWizardButtons(0,1,0);   
            }

            function window.onback()
            {
                window.external.FinalBack();
            }
           
            function window.onnext()
            {
                var xml = window.external.Property("TransferManifest");
                var files = xml.selectNodes("transfermanifest/filelist/file");

                for (i = 0; i < files.length; i++)
                {           
                    var postTag = xml.createNode(1, "post", "");
                    postTag.setAttribute("href", UploadURL);
                    postTag.setAttribute("name", "myfile");

                    var dataTag = xml.createNode(1, "formdata", "");
                    dataTag.setAttribute("name", "MAX_FILE_SIZE");
                    dataTag.text = "2000000";
                    postTag.appendChild(dataTag);

                    var dataTag = xml.createNode(1, "formdata", "");
                    dataTag.setAttribute("name", "action");
                    dataTag.text = "Save";
                    postTag.appendChild(dataTag);

                    files.item(i).appendChild(postTag);
                }

                var uploadTag = xml.createNode(1, "uploadinfo", "");
                var htmluiTag = xml.createNode(1, "htmlui", "");
                htmluiTag.text = EndURL;
                uploadTag.appendChild(htmluiTag);

                xml.documentElement.appendChild(uploadTag);
               
                window.external.FinalNext();
            }
           
            function document.oncontextmenu()
            {
                return false;
            }
        </script>
    </
head>
<
body>
    <
h2>Click Next to upload</h2>
</
body>
</
html>

image

The code for the page at UploadURL would look something like…

ASP.NET

String uploadDir = "Images/";
HttpFileCollection hpC = System.Web.HttpContext.Current.Request.Files;
for (int i = 0; i < hpC.Count; i++)
{
    HttpPostedFile file = hpC[i];
    if (file.FileName != string.Empty)
    {
        file.SaveAs(Server.MapPath(uploadDir + file.FileName));
    }
}

PHP

<?php foreach ($_FILES["pictures"]["error"] as $key => $error) { if ($error == UPLOAD_ERR_OK) { $tmp_name = $_FILES["pictures"]["tmp_name"][$key]; $name = $_FILES["pictures"]["name"][$key]; move_uploaded_file($tmp_name, "uploadDirectory/$name"); } } ?>

Step 3: Reading the file (optional)

If you're writing your own gallery, or simply just want a way to avoid having to FTP in to upload files, it may look as if you've lost the meta-data (specifically I mean tags)  from your photos. Fear not, however, as there is a way!

All the tags are stored in 'XMP' format, which is essentially just embedded XML.

.NET 2.0
In .NET 2.0, there is no native way to read in XMP Information, so we need to use some XML parsing to get it. Microsoft blogger Omir Shahine, has a great post on accessing XMP data in .NET 2, including the code/general discussion on the matter.

.NET 3.x+
In .NET 3 and above, inside the Windows Imaging Component, there is the BitmapMetaClass. However this is both more and less complex than using regular expressions (above), in that you nave to use the proper 'paths' for accessing specific data. I won't cover it here, but WIC/BitmapMetaClass is what you should look into if you want the .NET 3+ method of accessing XMP/EXIF data.

PHP
Like .NET 2, there is no native way to read in XMP information. The below code will return an array of XMP Tags.

<?php function GetTags($filename) { $handle = fopen($filename, "r"); $image = fread($handle, filesize($filename)); fclose($handle); preg_match("/LastKeywordXMP>([\w\W\t\f\s]*)LastKeywordXMP>/i", $image, $matches); $tags =split("</rdf:li>",$matches[1]); for ($i=0;$i<count($tags);$i++) { $tags[$i] = trim(strip_tags($tags[$i])); } return $tags; }?>

Final Notes

Since there isn't an authentication option in the printing wizard, security is a concern, particularly in a multiuser environment. You could implement any/all of the following however

  • Since it is just HTML, there is absolutely no reason that you couldn't add in a HTML form for entering the username and password as the "first stage". The second page would be returned from the server, with the (javascript) settings to allow uploading. It is a hosted IE session, so it should store/access cookies - if they've logged in via IE, they should remain logged in!
  • create a 'secure private' hash and append that to the url, ie http://mygallery/upload.php?hash=DADGGSDGFS123
    This would mean user would have a separate (auto-generated I'd assume…) REG file to import
  • IP based filtering (okay idea, sucks if your IP changes, or if you're on a public network)

 



1 Comment
 

Vista Service Pack 1 Out Now

19 March 2008 Tags  ,

If you haven't been lucky enough to have had access to Vista SP1 through Technet or MSDN, Microsoft have released SP1 to the general public today. Wondering why you'd bother upgrading? Apart from security roll ups and whatnot, APC discovered that Vista with SP1 is up to 86% faster in certain tasks than without SP1 (metrics via Nick Hodge) - very very cool.

Vista SP1 32bit (434.5 MB)
Vista SP1 64bit (726.5 MB)


No Comments
 

New Camera: Canon EOS 400D

17 March 2008 Tags  

400d_front_fdown_b.jpgThis week I decided to get myself a new camera, and to step up into the world of dSLR's.

The problem with our existing camera (Powershot S3 IS) was that despite being a high-ish end Point and Shoot, it suffered from what nearly all P&S's do….a noisy sensor. That is, a grainy appearance to the image, unless the lighting was absolutely perfect.

Since I enjoyed the S3 IS, I decided to stick with Canon. Well, that and Will offered me one of his Canon lenses :D

I ended up picking up

  • Canon 400D with 18-55mm EF-S kit
  • Spare battery
  • 1gb Sandisk Ultra II CompactFlash card
  • 50mm f/1.8 Prime II

I know I could have waited for the 450D which has a few improvements, but I wasn't all that interested in a $200->300 premium. I did consider Nikon's D40x/60 and the 80 (mostly because of Long Zheng's choice), but the offer of a lens from Will was really all I needed to put Nikon into an unrecoverable spot!

I must point out, the day I bought the camera, I waited until my wife got home from her Uni classes so she could unbox it. Much to our disappointment, we discovered that the camera was used and than the 18-55mm lens wasn't in the box, and the spare battery I'd asked for wasn't even the right type! I didn't sleep well that night, but we went down to CameraHouse the next day and they fixed it up. Phew.

A day or so later I went over to my mothers house to fix up her HTPC (well, to install Free*EPG), and discovered she had a 35mm film SLR, a very old model from Olympus - OM-1. Along with her camera, were two prime lenses (28mm f/2.8 and 50mm…f/1.8!) and a rather chunky 80-250mm f/4.5 lens. Being Olympus (or OM mount) lenses, they obviously aren't compatible with my 400D….until it turns out one of the employees at CameraHouse had an adapter! It set me back $80, but thse three lenses are pretty cool, even if they don't have auto-focus capability.

Next on the list is a 8gb Sandisk Extreme III CF card (has double the read/write speed of the Ultra II), and a hotshoe flash with E-TTL/E-TTL II… I just haven't decided which flash yet - the cheapest Canon doesn't swivel and they just get very expensive after that.


No Comments
 

Live@Edu

15 March 2008 Tags  ,

imageThis stuff looks pretty cool, Office Live Workspace and Exchange for Primary Schools right through to Universities (what, no kindergarten love?) for free. The Exchange stuff would be particularly cool. Maybe I can convince Live@Edu that I'm part of the "Aeoth University of Awesome"?

I'll never see it before I graduate, Monash are stuck in their days of overuse of Java and Blackboard - the system that doesn't let you open two tabs at once.


1 Comment
 

Building my HTPC (Part V: Finale)

13 March 2008 Tags  ,

This is sort of a 'wrap up' post for the 'Building my HTPC' series, so here is the list of previous posts:

And now for some interesting numbers… I recently purchased a power meter, it plugs into a socket, you plug a device into the power meter, and it'll tell you interesting things like how many watts are being consumed.

Computer Watt
(Off/plugged in)
Watt
(Sleep)
Watt
(Light load)
Cost to run/day*
Original HTPC (S939 based) 12w 14w 120w 24.12c ($88.03/Year)
(0.168 + 1.44 = 1.608 kW)
New/My HTPC (LGA775 based) 12w 12w 63w 13.5c ($49.27/Year)
(0.144 + 0.756 = 0.9 kW)
Mums HTPC (AM2 based) 12w 12w 80w 16.56c ($60.44/Year)
(0.144kw + 0.96 = 1.104 kW)

*Assuming 12 hours a day sleep, 12 hours in use (remember, it does music too!), and that 1 kWh costs 15c. Your mileage will vary.

Price:performance, the AM2 system probably wins (since the measurement of performance in a HTPC in this situation is a binary 'does it play back 1080p content or not'), but performance:watt Intel wins hands down. I'd be really interested to get some readings from AMD's "BE" range of low power consumption CPU's.

Sleep/standby mode on the two new systems uses the same amount of power that the system does while its turned off! If the HTPCs were in sleep mode, it usually takes it less than 10 seconds to boot up. By comparison, if my TV (Sony Bravia W series) has been off for more than 5minutes, it takes up to a minute to turn on!

If you end up buying the parts I have, or similar, remember to make sure you set in bios (or for my motherboard, set jumpers, see the manual details) the option to wake from S3/S4 via USB. This means you can wake up the computer using the Media Center remote, by pressing the On/Off button. It becomes a whole lot more usable when you don't have to get off the couch to turn it on!

Another thing to note is that for Australian users, there is no Electronic Program Guide (EPG) for Windows Vista that just "works" out of the box, due to the networks not making it freely/easily available. However, Nick Hodge recommended Free*EPG, which I finally got around to installing on mums HTPC yesterday. Her reaction was "Wow, that's awesome", and she gave me permission to give Nick a hug on her behalf, just before she queued up two shows to record that night.

Windows Media Center: Making mums happy.


2 Comments
 

Silverlight 2.0 Beta 1 rocks

9 March 2008 Tags  , ,

silverlight_logo.jpgI've tried to get excited about Silverlight, particularly when I found Silverlight stickers laying around at Mix on Campus and took one for my laptop.

Silverlight 1.0 sucked (this is in my opinion) because it was Javascript - ew ew ew. It was essentially an interesting graphic engine with some pretty good video (/streaming) tech. The killer here was Javascript - if I'm going to use a Microsoft technology, I damn well want to use C#, or another .NET language I'm already using.

Silverlight 1.1 was better in that it used .NET, but it sucked because if you wanted to do anything, you had to build all the controls (such as buttons, or listboxes, etc) yourself. NOT FUN AT ALL. While yes, Silverlight 1.1 was renamed 2.0, I'm referring to the 1.1 Alpha September Refresh.

Silverlight 2.0 Beta 1, now ships with most of the standard "WPF" controls (or controls very close to them anyway), meaning it requires very little effort to go from a WPF application to Silverlight 2 application - that's cool (and check them out on the samples page). And it can communicate with SOAP(Limited? v1.1 BP I believe)/XML services rather well, I've got a WSDL thing going on - that's cool. Oh, LINQ too? Local storage? What about Deep Zoom from Photosynth (when can we get that for WPF?!) which is capable of handling (from various sources) Petabytes (1024 Terrabytes) of data?  Oh yeah, Silverlight 2 is really starting to live up to the codename "WPF/E"!

I was toying with a WPF application yesterday, that I wanted to have online, and sure enough, I could copy the majority of the codebehind and UI, so very cool!

Silverlight 2 is much more exciting, a nice example of a few of the new technologies included in it can be found at the Hard Rock Memorabilia app.


No Comments
 

Speciality stores rock

8 March 2008 Tags  ,

Recently I've had a lot of problems with the wireless PCI card I bought (D-LINK DWA-510), and it made me reflect on many purchases I've made, which have ended up being a waste of money, troublesome or both, just so I could save a dollar or two.

Speciality store are generally more expensive, but more often than not the quality of stock or quality of service is well worth it.

One example I've used before is PCCaseGear, who specialise in PC Cases and cooling. Sure, they have other things too, but their range isn't nearly diverse in those sections as it is in their case and cooling sections. You'll also notice from time to time they don't carry a certain brand fan or case. The reason is that product probably sucks, not that they can't sell it.
(Recently loving the Noctua 92mm fan I bought from them, dropped CPU temperatures by 10->15c, while being under 20dBa)

Same goes for my favourite place to buy headphones, Headphonics. Marcus sells a huge range of headphones, for very good prices. Apart from having a generous 20-day trial of headphones, their forum's have recommendations for half a dozen price brackets - perfect for me!
(Audiotechnia ATH-AD700's are yum, but now I want a pair of Beyerdynamic DT250's!)

Back onto the trouble with the D-Link card, I'm very much regretting not spending the time to research the card, and look around for alternatives. If I had of, I would have bought from Cormain, who specialise in ADSL networking gear. They don't sell gear they can't recommend. Aaron from Cormain is very active in the Whirlpool forums, but without trying to peddle his own goods. I bought my ADSL2+ router from those guys, and I haven't regretted any part of the purchase, from delivery, price, and finally, the actual performance of the device.
(Netcomm NBPlus4W is a great router for the price!)

I know this probably sounds like a huge ad for these three stores, but it is more of a reminder to myself than to others that buying from specialty stores will always result in a better experience.


1 Comment
 

Expression Studio 2 Beta + Silverlight 2 Beta 1

6 March 2008 Tags  , , ,

I'm not sure if xBlend 2.5 was announced recently, but I happened to see it in one of the slides from the Mix08 keynote, thanks to Long.

Expression Blend 2.5 March Preview supports Silverlight 2 Beta 1, and SL2B1 has a lot more WPF UI Elements in it. For me, this is really exciting, because I really didn't want to be creating buttons, list boxes, etc. If I'm going to create a control, it isn't going to be a 'fundamental' control. Before now, Silverlight 1.1/2 to me was awesome, but pointlessly tedious to develop.

Apart from that exciting news, Expression Studio 2 Beta has been released! The biggest thing that stands out for me is xWeb2 now has  PHP Support! That's a huge step in the right direction, and seemed to be one of the biggest complaints at Remix last year.


2 Comments
 

Building my HTPC (Part IV: AMD Style)

3 March 2008 Tags  ,

Well okay, technically not my HTPC, but my mothers. That's right, my mum has a HTPC. She saw our one, thought it was pretty darn neat and decided she needed one as well (how cool is my mum? :D)

Parts

800px-AMD_Logo.svgTotal cost, AUD$709! (why is this more expensive than the previous one? includes optical drive, wireless card and media centre remote.)

This time I've gone for the AMD route. Why? Price. While its a very similar price to what I paid for my HTPC, it has many more features. AMD mATX motherboards seem to be much better featured at up to $120 less.

Take the Asus P5E-VM HDMI (LGA775 - Intel) and the M2A-VM HDMI (AM2 - AMD). Both have HDMI/VGA output (the M2A-VM has DVI as well), both have digital sound output. Both boast HD-DVD/Bluray playback over HDMI. Both have respectable chipsets from their respective CPU makers. That's about where the similarities end.

The M2A-VM HDMI comes in at a tiny $99, whereas the P5E-VM HDMI will set you back upwards of $200! You can actually do a little bit of gaming (although, I wouldn't recommend too much gaming..) on the M2A-VM's intergrated video, the ATI X1250, whereas the GMA X3500 of the Intel board can just be plain nasty. Likewise, the video acceleration, which is what a board of this size is mostly likely to be doing, is far superior from the X1250. From my own experiences, hardware acceleration with Intel onboard graphics actually hampers playback speeds!

I mean, don't get me wrong, the P5E-VM HDMI is a very robust board, with a lot of features. Just the price over a very similarly equipped AM2 board puts it to shame. I wonder if its cheaper to make AMD boards due to licensing fees, or if having the memory controller on die like AMD do cuts costs that much..

AMD/Asus M2A-VM HDMI/ATI notes/issues

Despite perhaps being better value, the AMD HTPC gave me a lot more trouble than my Intel HTPC.

  • With 'incorrect' (default) LAN drivers, I was only getting 10mbps instead of 1gbps,
  • The latest video card drivers (8.2 at time of writing) conflict with SP1 so that DVD playback through WMP/WMC (but not VLC) is unwatchable, using the drivers on the CD that comes with the motherboard allows you to view DVD's however, those drivers that came with the motherboard instantly crash VMC when trying to view LiveTV…
    Catalyst 8.1 fixes the issue. Tore my hair out fixing that one.
  • The motherboard bios, by default, does not have power management enabled for the fan. Turn this one immediately, because without it, the fan on the heatsink can be freaking loud. That's the scientific measurement, it is 1.5 Freaking Loud Values (FLV). With Power Management on, it'll drop to 0.3->0.5 FLV's
  • Even though it has improved from the Socket 939 design, the mounting system for AMD's AM2 stock heatsinks is still pretty poor compared to Intel's push-pin method. That being said, you generally only need to do it once.

Final Notes

The only other part I didn't mention was the Windows Media Center Remote/IR Receiver. I picked up one of them for myself, as well as one for mum. The Logitech Harmony 525 I bought works flawlessly with it, and it makes navigating media so much easier than using a keyboard/mouse.

Just like the Intel HTPC, this system plays back the 1080p content I have flawlessly, although my mother only has a 720p TV, so it isn't as critical.


5 Comments