Wednesday, November 19, 2008


Welcome to my tutorial on Infrared Photography. I hope to be able to show you in this tutorial the joys of Infrared Photography. It is a technique that is either loved or hated by many and you don’t see a great deal of it out there for that reason. Some people say you can find out if your camera can do Infrared Photography simply by pointing a TV remote at the lens, pressing a button and if you are able to see a red light through the viewfinder then you are able to use that camera for Infrared Photography. However, I do have a camera here that A) I have not been able to see that light, but B) I have been able to use for Infrared Photography, although that camera is not my preferred choice.

I originally started out doing Infrared Photography with my Sony DSC F828. I loved the technique, so I went on to buy the Nikon D70s. From that I was able to do the colored version of Infrared Photography where you see almost a fantasy feel to the image of blue skies, white foliage and white grass with a tinge of red and yellow throughout the rest of the image.

Again, it is not everybody’s cup of tea but if you want to try Infrared Photography go for it. You can get your camera converted to do Infrared Photography permanently but it is expensive and that camera can no longer be used for normal photography without the aid of a filter. That is why I have one camera I mainly use for Infrared work and the rest of my cameras for normal work.

So in front of you, you can see there is a few different images, all Infrared images and yet they all seem to have a different result. We will go through them one by one.


Okay, so let’s start.

Here, you can see I have two images. The first one, this one on the left here, the greenish style image, is the original, just resized from the Sony DSC F828. I used a standard Infrared filter, it wasn’t a Hoya, but it was very suitable for that camera. The image was handheld facing towards cotton fields. Cotton fields are green, but as you can see, with the help of the filter and with the cameras ability, the cotton fields have come up white. Now I then took that particular image into Adobe and played around with the Levels as well as Hue & Saturation and I formed this (above right).

Now it’s very simply how you get that from the green, just your Hue & Saturation Adjustment layer as you can see here. And by ticking colorize, you can then play around with your different colors as you can see where they are coming in there. And then by playing around with your actual amount of saturation etc, you can form different effects within the image.

The image went on to take a blue ribbon on DPC and has since been sold exclusively for a CD cover.

Now we move onto the Nikon D70s. I have three images here in front of us.

The first one was simply the Nikon D70s with a Hoya R72 filter. Now you might have heard people speak of doing a Custom White Balance. That is crucial when you are dealing with this type of Infrared Photography. This red image is with the camera just set to Auto White Balance. And you can see it comes out quite red which is recognized as Infrared Photography but it is not the form that I like myself and I think a lot of you out there prefer the more colored version.

So all you do is get your camera with the filter on it and I hand point the camera at the grass. I do a Custom White Balance of that. I then stand the tripod back up. I always use a remote for my Infrared work as you are looking at long shutter speeds so you really have to alleviate any movement within the camera itself. Once I have done my Custom White Balance, that is generally what I will use for my White Balance for the rest of the shoot unless of course I am changing locations etc.

I will then remove the filter; I will use Manual Focus, which is essential as I find that through the dark filter the camera is just not able to focus on what you want it to focus on. So I stick purely with my Manual focusing. I compose my shot within the viewfinder. Once I have the focus and the composition how I want in general, I will carefully replace the filter and I will take the shot and that’s where we come to this one here (image on left).

You can see the shot is quite different to the one without the Custom White Balance. You can see the sky is a brownish/reddish color, the foliage is white. There is quite a good deal of contrast within this image. This image has just been resized for the purpose of this tutorial.

From there I then create this (image on right) and I will take you through step-by-step on how to get it from the brown skies to the blue skies.

Okay, let’s start by working on this image. You can see this image is quite a good image to start with but it does need a bit of help.

We’ll start by swapping the channels which is purely either clicking down here to your Adjustment Layers and going up to the Channel Mixer, or, you could go to Layer/New Adjustment/Channel Mixer. Now from here you can see that you’ve got your Output Channels, Red, Green and Blue. Start with your Red and highlight your value and change that to ‘0’. Go down to your Blue and type in ‘100’. It’s changed it to Green. We haven’t finished yet. Go to your Blue Channel, in the Red type in ‘100’ and in the Blue take that down to ‘0’. Okay, now we are getting somewhere. Click OK.

Now that is your most crucial step in this type of processing. As you can see when I turn the layer on and off, you can see the difference. It has swapped the channels around. What was red is now blue and what was blue is now red.

From there we need to start doing a little bit of tweaking and this is where it is going to vary depending on what image you are actually going to be working with. We will go to Hue & Saturation. Again make an Adjustment Layer; this gives you a little bit more flexibility down the track. Now we will look at our Blues for starters and we will increase it up to say ‘35’. Again each image is different. Our Cyan’s, which are quite predominant in the sky, we’ll take up to ‘19’. If you want to see how you are going just click the preview on and off. Now it is only subtle but we have more work to do yet.

Now some people like to leave the red and yellow hue that you can see in the image where my eyedropper is pointing over his shirt, in the tree, there is a tinge just across here, so what we can do is click on the reds or the yellows. Now when we have clicked on the yellow on the drop down menu, we will then take our eyedropper over to our image and we will click. And you can see up here it has now changed to blues and it’s shown you in the scale down here where that color is. So if I click on his shirt it’s changed it to yellows and you can see down here it is in the yellow area. So we will look at the yellows and we will drop the saturation. Now you watch his shirt. It is suddenly going down. Now you might find there are other little areas that are showing a bit of color that you don’t want within the image. Simply grab your ‘plus’ eyedropper and as you can see it says ‘Add to sample’. Click on that. Now just click around different areas and it will show you. See how it is changing the image? So we will just hit ‘Alt’ and that will put reset. That will take it back to what it was. So now we will quickly type, put these back in. Back up to ‘19’ and we will go to our yellows. Click our sample and drop that down. Okay. So again, all I have done is I have increased the Blue and the Cyan but I have removed the yellow. Now as I said there might be other colors in it. You can actually see a little bit of color here, I will just zoom into that so you can see it a bit easier. Can you see that yellow that is still showing up on the bike? Alright, so if I reopen my Hue & Saturation by double clicking on the icon, I will go to my yellows and I will click on the ‘Add’ and I will click on there (front of the bike) on that bit of yellow and you can see how it is removed, before and after (clicking on the preview). So I will click OK. So now we are down to basically a blue and white image which is a good starting point.

Now this image really does need a bit of contrast, so, we will make an Adjustment Layer/Brightness & Contrast and we will increase it up to ‘10’. Again before and after. Starting to make shape. Now to me, I am pretty pedantic and that blue really does need a little bit more punch to it.

So we will go to Selective Color Adjustment Layer. Go to our Cyan’s and start playing with the sliders. Now this particular image I know will take a ‘+50’ in the Cyan as you can see, below and above. So we will put in the ‘+50’. And it will take a ‘+50’ in the Magenta. And it will take a ‘-22’ in the Yellow as you can see. Now we are starting to get somewhere. I will also go to my Blues as that is really the only other color within this image. From here I will go to ‘-33’ (Cyan’s) and this one I will take to ‘+41’ (Magentas). The Yellow, by changing it around as you can see, it is only a subtle change but by adding Yellow it seems to give it a flat appearance. By putting it up here (in the Negative) it gives that little bit more punch. I will just take it to ‘-33’, I don’t like taking it to far. Okay. So we click okay. Now, before the Selective Color, and after (clicking the eye on and off). Makes a big difference.

Now we are going to add a little bit of Levels to give it that little bit more punch. So, get our Levels and we will slide this (the black triangle) down to about there ‘4’. Okay. And we will take this one (white triangle) just up a little bit ‘250’. Alright. Again it is only very subtle but it just, if you can look on that tree trunk it just makes that little bit of difference. Okay. Detail is everything when you are working on images like this.

Now, I like the image so far but I feel there are just some details within the bike that are lost. So I am going to duplicate my background layer and I am going to call it Highlight/Shadow. And here I am going to add Highlight/Shadow which can be found in Image/Adjustments/Shadow & Highlight. Okay. Now as you can see just by turning that feature on it has made a difference. When I click the preview on and off you watch the bike details. Can you see how it comes out a little bit more? I am not too worried about the rest of the image I am just looking at the bike detail. Okay. So I am going to click okay on that. But as I said I don’t really want it too affect the entire image, just the actual bike. So I am just going to bring up my Tool Bar here. And I am going to put a mask on this layer. Okay. So you can see your background layer and there is the Highlight/Shadow. And when I turn it on and off you can see the difference it makes. But I am going to add a mask to it. I am going to flood that mask entirely with black to hide it. Making sure my opacity up here is set to ‘100’ I just click once (on the image) and it has hidden the entire layer. Now by taking my brush and making my foreground white, I am going to paint white over the areas that I want that layer to have an effect on. In this case it is the bike. As you can see I am starting to bring up the details now. Now you watch when I click the layer off and back on. It has only affected the actual bike.

Now, I am going to add a little bit more Brightness & Contrast here. There is still a couple of little areas that need tweaking to my satisfaction. So, I am going to add Brightness & Contrast. Can you see how it makes a difference on the tree and the clouds and the bike? But, as you can see, it has blown a bit of the other areas, a little bit too much. Okay. So we will click OK and you can see it has already got its own built in mask. But, we don’t want it to effect the entire areas and instead of just painting black the areas we don’t want it to effect, it’s actually going to be easier this way to paint in the areas we want it to effect. So, again, we will flood the mask with black. So we have hidden the entire layer. Now, using our brush and white, we are going to paint in the areas we want it to effect. So using a brush and as you can see I always tend to use a good soft brush. That way I haven’t got any hard edges to it. I will increase my brush size and I will paint the areas I want to affect. In this case, the bike, the man, the trunk of the tree and a bit of these clouds at the back here. Okay. Just a little dab here and there just to give that little bit of punch, okay. Now, you watch when I turn this layer off and back on again. I feel there is a little bit too much over his face, so I will change my foreground color to black, lower my brush size and remove that over the face. Right. Again, before and after. Makes quite a difference.

Now as you can see there is a little bit over here so really that just needs to be flattened and then cropped. As you can see I am just going to remove that bit off the bottom, alright. Now let’s zoom in a little bit and you can see it has made quite a difference. Right, you can see nice detail around the bike; you can even see his shoe. You can see some reflections in the water. And yes, some of the leaves are blurred slightly. Because you are working with long shutter speeds, the slightest bit of breeze is going to be affecting the image and as we were standing on the edge of a cliff this was unfortunately part of the parcel. But, I can see a sensor spot here so I am just going to grab my Healing Brush and just dab it once on there to remove that. Okay.

Now, let’s resize it to ‘800’. I am going to Save For Web, so I am not going to worry about dropping it to ‘72’ as Save For Web will generally do that for me. Just zooming in a bit, as this was taken in RAW; no sharpening had been applied to the image. Okay. So, I am going to apply some sharpening with my Smart Sharpen. Now as you can see on my web sized images I tend to just use ‘.5’ radius, and the amount will be determined according to the image. On a small amount to a large amount as you can see. It’s quite a huge range there. I think probably about there will be fine. You can click on and off to see before and after. It’s quite a difference around the bike and the man. Click OK.

Do Save For Web, it brings you up to here and for DPC for my portfolio images I generally put at 200kb. So Optimize to File Size which you can find behind that triangle, type in your desired file size there and click OK. Then you can just click Save and save wherever you need to. Alright. So that’s the finished product.

So as you can see there is quite a difference between the beginning and the end of that type of photography. People say, ‘yes, it is all digital art’ but it is a combination of the processing as well as the technology within the camera. Nothing that is done in digital could not have been done in film photography; it’s just a different way of doing it.

So let’s go and have a look at some of the other type’s images you can achieve through this same style of photography.

Okay, these two particular images were taken in different towns and on different days, but, again different images, different effects. Now, this one here, surprisingly enough was taken on a very cold day, in Central Queensland, but, the water that’s hiding behind the sign that says ‘Danger No Swimming’ is actually a sewerage treatment pond. Behind it you can see the lights overlooking a Little Athletics Field, where children do athletics. And yet to look at it you wouldn’t think so and anybody living in this area has not been able to recognize it as such. So you can turn quite a dull, boring scene as something very pretty.

This particular one over here was done for another challenge on DPC but I didn’t enter this particular one. But I loved the moody effect the clouds gave it with the Sepia feel to it. And really those are basically the colors from the camera. There was a small amount of tweaking done as you can see in a couple of little areas but nothing dramatic. I tended to prefer this effect rather than swapping the channels to give the sky the blue hue.

Now, we have a couple of others here. You can see these two. This particular one was just of a grandfather and a child playing in a water channel after recent rain. And by swapping the hues it gives that fantasy effect.

Now, this one here was just a matter of playing with the White Balance in Raw Shooter. That is the program I use for my Nikon RAWs. And then playing with the Hue. And again, it gives a completely different feel to the image. It’s just a river in our town and yet you can create quite a unique feel to it.

And then there’s this one. Just basically of my daughter, sitting under a palm tree. She was in a green dress and again I played around with the channels, darkened the edges, tweaked a little bit here and there’s a different effect again.

So basically, what I am saying is, just like in standard photography, there is not just one direction you can go to with this type of field. It is purely up to your own imagination and individual tweaking to your own settings. Follow your own style and you will find you will achieve more and more than what you thought.

I hope you enjoyed this tutorial and I hope to be able to produce many more for you. Thanks for your time.

Introduction to JavaScript

JavaScript is a programming language that can be included on web pages to make them more interactive. You can use it to check or modify the contents of forms, change images, open new windows and write dynamic page content. You can even use it with CSS to make DHTML (Dynamic HyperText Markup Language). This allows you to make parts of your web pages appear or disappear or move around on the page. JavaScripts only execute on the page(s) that are on your browser window at any set time. When the user stops viewing that page, any scripts that were running on it are immediately stopped. The only exception is a cookie, which can be used by many pages to pass information between them, even after the pages have been closed.

Before we go any further, let me say; JavaScript has nothing to do with Java. If we are honest, JavaScript, originally nicknamed LiveWire and then LiveScript when it was created by Netscape, should in fact be called ECMAscript as it was renamed when Netscape passed it to the ECMA for standardisation.

JavaScript is a client side, interpreted, object oriented, high level scripting language, while Java is a client side, compiled, object oriented high level language. Now after that mouthful, here's what it means.

Client side
Programs are passed to the computer that the browser is on, and that computer runs them. The alternative is server side, where the program is run on the server and only the results are passed to the computer that the browser is on. Examples of this would be PHP, Perl, ASP, JSP etc.
The program is passed as source code with all the programming language visible. It is then converted into machine code as it is being used. Compiled languages are converted into machine code first then passed around, so you never get to see the original programming language. Java is actually dual half compiled, meaning it is half compiled (to 'byte code') before it is passed, then executed in a virtual machine which converts it to fully compiled code just before use, in order to execute it on the computer's processor. Interpreted languages are generally less fussy about syntax and if you have made mistakes in a part they never use, the mistake usually will not cause you any problems.

This is a little harder to define. Scripting languages are often used for performing repetitive tasks. Although they may be complete programming languages, they do not usually go into the depths of complex programs, such as thread and memory management. They may use another program to do the work and simply tell it what to do. They often do not create their own user interfaces, and instead will rely on the other programs to create an interface for them. This is quite accurate for JavaScript. We do not have to tell the browser exactly what to put on the screen for every pixel, we just tell it that we want it to change the document, and it does it. The browser will also take care of the memory management and thread management, leaving JavaScript free to get on with the things it wants to do.
High level
Written in words that are as close to english as possible. The contrast would be with assembly code, where each command can be directly translated into machine code.
Object oriented
See the section on 'object oriented programming' for details.

How is JavaScript constructed

The basic part of a script is a variable, literal or object. A variable is a word that represents a piece of text, a number, a boolean true or false value or an object. A literal is the actual number or piece of text or boolean value that the variable represents. An object is a collection of variables held together by a parent variable, or a document component.

The next most important part of a script is an operator. Operators assign literal values to variables or say what type of tests to perform.

The next most important part of a script is a control structure. Control structures say what scripts should be run if a test is satisfied.

Functions collect control structures, actions and assignments together and can be told to run those pieces of script as and when necessary.

The most obvious parts of a script are the actions it performs. Some of these are done with operators but most are done using methods. Methods are a special kind of function and may do things like submitting forms, writing pages or displaying messages.

Events can be used to detect actions, usually created by the user, such as moving or clicking the mouse, pressing a key or resetting a form. When triggered, events can be used to run functions.

Lastly and not quite so obvious is referencing. This is about working out what to write to access the contents of objects or even the objects themselves.

As an example, think of the following situation. A person clicks a submit button on a form. When they click the button, we want to check if they have filled out their name in a text box and if they have, we want to submit the form. So, we tell the form to detect the submit event. When the event is triggered, we tell it to run the function that holds together the tests and actions. The function contains a control structure that uses a comparison operator to test the text box to see that it is not empty. Of course we have to work out how to reference the text box first. The text box is an object. One of the variables it holds is the text that is written in the text box. The text written in it is a literal. If the text box is not empty, a method is used that submits the form.

BusinessObjects and Oracle9i OLAP


The release of Oracle9i AW (Analytical Workspace) makes it possible for the Business Objects semantic layer to integrate closely with Oracle OLAP technology. This is because AW allows Oracle OLAP data to be queried using standard SQL. Business Objects’ patented semantic layer, which enables users to create complex SQL queries using visual objects, is already the industry-leading SQL generation technology. As a result, Business Objects users can benefit from the performance and calculation power of Oracle OLAP without leaving the familiar BusinessObjects query-building environment.

Oracle relational views also make it possible for Business Objects to exploit several trends in the OLAP market place. OLAP is moving away from pure multidimensional databases, and hybrid OLAP/relational solutions are becoming much more common. A Business Objects solution can hold both multidimensional and relational data in a manner that is completely hidden from the end user. Furthermore, the focus is moving away from proprietary OLAP APIs and query languages towards languages that are already industry standards. SQL is a prime example of this—with a Business Objects/Oracle solution you can query your multidimensional data using the most common database query language.


Accessing Oracle cubes through the Business Object semantic layer has three big advantages:

• Performance. For common-size data sets, OLAP cubes provide better performance because they contain aggregated, pre-computed data that is instantly available to the query tool;

• Advanced OLAP calculations (see Using Oracle OLAP functions). The Oracle OLAP cube provides pre-calculated data and also allows users to compute advanced calculations such as growth ratios or trends on the fly;

• Transparent drill through from the cube to relational data (see Drilling outside the cube). With this solution, a single universe can encompass a cube and relational tables. This means that ausers can drill from aggregates to details within the same query-building environment.

Oracle9i and OLAP cubes

Oracle9i AW exposes Oracle OLAP cubes as relational views, which can be queried using standard SQL. Oracle exposes dimensions and rollups in a relational view. For BusinessObjects users to be able to profit from this capability, the BusinessObjects administrator must design a BusinessObjects universe (which transforms a visual query to SQL) around the cube view. The universe must handle rollups correctly, which imposes a non-standard approach to universe design. The next sections discuss the way in which the universe must be designed.

Universe design principles

BusinessObjects and Oracle 9i OLAP 4 of 15

In the example used throughout this paper, the view, OLAPCUBE, is derived from an Oracle cube using an AW query. The relational view contains Revenue (the measure) and two hierarchies—Time (Year, Quarter, Month) and Geography (Country, Region, City). The revenue in the Revenue column is aggregated according to the level, which means that any SQL statement returning data from the view must filter according to the values in the time_level and geo_level columns:


ALL ALL 5000

2002 YEAR ALL 2000

2003 YEAR ALL 3000

2002 Q1 QTR ALL 500

2002 Q2 QTR ALL 500

The problem that needs to be overcome occurs because the cube contains rolled-up data, and BusinessObjects generates SQL per object, whereas to handle rollups it needs to generate per object combination. For example, if you create a Year object (based on the year column in the table) and place it in a query, BusinessObjects builds a WHERE clause that restricts time_level to ‘YEAR’ (WHERE time_level = ‘YEAR’). But if you include the Year and Quarter objects, you want BusinessObjects to restrict time_level to ‘QUARTER’ (WHERE time_level = ‘QTR’). BusinessObjects default behaviour is to create a WHERE clause that returns no rows (WHERE time_level = ‘YEAR’ AND time_level = ‘QTR’).

To solve this you treat the cube view as the fact table in a snowflake schema, and surround it with dimension tables. You are not interested in the data in these dimension tables: they exist solely to force BusinessObjects to generate the correct SQL to filter the OLAPCUBE table.

The following sections:

• describe how to set up the universe;

• give examples of the SQL that the universe generates;

• explain how this SQL relates to the universe design.

You carry out the following tasks when designing the universe:



Include the relational view in the universe.

You access the OLAP cube data through the relational view.

Create tables hierarchies that correspond to the dimensional hierarchies in the cube. These hierarchies are build from Designer aliases on the SYS.DUAL table.

The dimension tables are used to generate the join conditions that restrict data in the relational view.

Join the dimension tables hierarchically using regular joins.

The joins between the dimension tables are used to generate the join conditions that restrict data in the relational view.

Join the dimension tables to the relational view using shortcut joins.

The shortcut joins are used to generate the join conditions that restrict data in the relational view.

Create dimension and measure objects

The user builds queries in the Query Panel using these objects


My Blog List