text:
All-Weather Floor Mats
Cargo/Trunk Liner
WeatherTech CupFone®
Seat Protector
Seat Back Protector
AVM® Cargo/Trunk Mat
Side Window Deflectors
Gift Bags
WeatherTech Water Bottle
Floor Mat Drink Coasters
Double High Pet Feeding System
Single High Pet Feeding System
Extra Pet Bowls
Pet Barrier
Personalize your WeatherTech experience by selecting the make, year & model of your vehicle.
Vehicle Not Listed Above?View our product request form.
Photo Gallery
All-Vehicle Mats (AVM) are advanced semi-universal Trim-to-Fit vehicle floor mats designed to trap fluids and debris from your car, truck, SUV or minivan's interior and protect it from unwanted dirt, grime and moisture.
Read More
All-Vehicle Mats (AVM) are advanced semi-universal Trim-to-Fit vehicle floor mats designed to trap fluids and debris from your car, truck, SUV or minivan's interior and protect it from unwanted dirt, grime and moisture.
Read More
Vehicle Not Listed Above?
Click Here to still Purchase this Universal Product
The WeatherTech AVM (All-Vehicle Mat) is made to fit virtually all vehicle flooring due to its unique shaping and Trim-to-Fit features. The degree of research and design that went into the production of this mat has significantly contributed to its sustained rank as being the highest rated all-vehicle floor mats among affordability, dependability and practicality.
We spared no expense when it came to the durability and dependability of our AVM mats. The AVM Trim-to-Fit mat is made from our advanced rubber-like Thermoplastic Elastomer (TPE) compound that is an OEM approved, virtually odorless latex-free material, that contains no harmful PVCs, cadmium, or lead and is 100% recyclable! It also stays flexible in even the coldest of temperatures. The AVM's Trim-to-Fit shape helps deliver superior coverage for front and rear driver and passenger floors.
The AVM mat is the first universal-style Floor Mat to incorporate specifically designed driver and passenger mats. The mats also feature a tall outer ridge and reservoir to help trap fluids and debris from the vehicle's flooring.
To ensure proper safety, the AVM Trim-to-Fit Mat features the patented MatGrip retention device, as well as molded-in nibs for a secure mat-to-floor interface. The combination of the high quality materials and ideal floor measurements, provided by the easy to use trim lines, ensure the AVM Trim-to-Fit Mat maintains the desirable attributes expected of a WeatherTech product.
Remember – before you place your order, this is a trim-to-fit universal-type floor mat. If you wish to have a custom mat for your vehicle, please see our FloorLiner or All-Weather Floor Mats.
Front mats:
2 cm thick
48 cm wide by 69 cm long
Can be trimmed to 41 cm wide by 61 cm long
2-Piece Rear mats:
2 cm thick
47 cm wide by 43 cm long
Can be trimmed to 42 cm wide by 38 cm long
1-Piece Over the Hump Rear mat:
2 cm thick
142 cm wide by 41 cm long
Can be trimmed to 132 cm wide by 36 cm long
**1-Piece Rear mat only available for select vehicles
Please note that the on-screen color representations are not necessarily precise representations of actual product colors due to variance in monitor calibrations.
AVM All-Vehicle Mat Sales Video
AVM® Semi-Universal Trim to Fit Mats: Up-Close Look
WeatherTech Europe Srl warrants that our products will be free from any defects in materials and workmanship for the life of the original purchaser and only for the original vehicle they were installed in. That does not mean that a product that simply and naturally wears out from normal use is a candidate for a warranty replacement or a refund. Like tires, brake pads or the shoes on your feet, everything wears out and when it does, that does not mean you did not receive good value for your money.
We are reasonable people and we believe in true customer satisfaction. We will work with you for a fair resolution to any issue you may have. Fair is defined as being fair to both you the customer and to WeatherTech. We do not charge extra for our products to our vast majority of customers so we can accommodate ridiculous warranty claims by the few. Our decision is final and will consist of either replacement of your product at no charge or charge you a prorated amount for a replacement, meaning we may extend a discount to you to purchase an exact replacement. Our goal is to keep our customers happy for a lifetime and always reach a fair resolution to any issue. Proof of purchase is required.
Exclusions to this warranty include wear due to severe abrasive conditions, chemical contamination, such as spilled gasoline, bleach, vehicle accidents, misuse, abuse, incorrect installation, incorrect use, etc.
You are now leaving Standards web-site and are going to a web-site that is not operated by the Americaneagle.com. Americaneagle.com is not responsible for the content or availability of linked sites.
Please be advised that Americaneagle.com does not represent either the third party or you, the member, if you enter into a transaction. Further, the privacy and security policies of the linked site may differ from those practiced by the americaneagle.com.
You will now access:


text: Judge. b. Mississippi. University of Southern Mississippi, B.S., in Accounting, summa cum laude, 1976; M.S., in Accounting, 1977; M.A., in English Literature, University of Tennessee, 1979; J.D., with distinction, Duke University School of Law, 1982; Order of the Coif, Duke Law Journal Editorial Board. Admitted to District of Columbia Bar, 1982. Served as Law Clerk to the Honorable Charles Clark, Chief Judge, U.S. Court of Appeals for the Fifth Circuit, 1983-84. Practiced law as an Associate Attorney, Sutherland, Asbill and Brennan, Washington, DC, 1982-83, and summer 1981; Miller and Chevalier, Chartered, Washington, DC, 1985-88. Served as Tax Counsel, U.S. House Committee on Ways and Means, 1988-94; Chief Minority Tax Counsel, U.S. House Committee on Ways and Means, January 1995; Attorney-Adviser, U.S. Treasury Department, February-April 1995; Deputy Tax Legislative Counsel in the Office of Tax Policy, United States Treasury Department, April 1995-February 1998. Recipient of Treasury Secretary's Annual Award, U.S. Department of the Treasury, 1997; Meritorious Service Award, U.S. Department of the Treasury, 1998. Appointed by President Clinton as Judge, United States Tax Court, on March 8, 1998, for a term ending March 7, 2013. Served as Chief Judge from June 1, 2012, to March 7, 2013. Reappointed by President Obama on August 7, 2013, for a term ending August 6, 2028, and served again as Chief Judge from August 7, 2013, until May 31, 2016.

subset: commoncrawl


text:
Applying is easy and you can get started online.
Apply now
Find classes and events that enrich your faith and strengthen your congregation.
Find opportunities
Your support ensures that future church leaders can pursue their call to ministry today.
Give now
The administration of Luther Seminary works toward the common purpose of making the seminary a place to learn, teach, work and study.
The Rev. Dr. Robin J. Steinke serves as the seminary's president. She leads the Enterprise Leadership Team, which includes seminary vice presidents for: Academic Affairs; Finance and Administration; Human Resources and Organizational Development; Seminary Relations; and Student Affairs and Enrollment.
The Luther Seminary Board of Directors is the governing body of the seminary. Pastors and lay leaders from across the country provide leadership in establishing policies and priorities.
The Luther Seminary Board of Trustees provides key leadership in developing the financial support necessary to fulfill the seminary's mission.


text:
by Joe Ward
2 February 2009
Prerequisite knowledge
General experience building applications with Flex Builder is suggested. The examples in this article were built with Flex Builder and the Flex 3.2 SDK.
User level
Required products
Flex 3 (Download trial)
Sample files
Additional Requirements
- Pixel Bender Toolkit 2.0 for Macintosh (DMG, 77 MB)
- Pixel Bender Toolkit 2.0 for Windows (ZIP, 48.8 MB)
- pixel_bender_basics_flex_air.zip (ZIP, 60K)
Note: The examples in this article include the following projects: ChannelScrambler, CheckerFill, GaussianBlur, GrainBlend, HardLightBlend, MultiplyBlend, and ScreenBlend. The SWF content for the examples are displayed in this article. To examine the examples more closely, download the sample files and open the files in the Pixel Bender Toolkit and Flex Builder.
Pixel Bender is a graphics processing engine supported by Adobe Flash Player 10, Adobe After Effects, and (soon) Adobe Photoshop. The language is based on fragment shader languages, such as OpenGL Shading Language (GLSL), used to optimize pixel drawing operations in 3D rendering. In Flex, you can use Pixel Bender programs to create filters, blends, area fills, and line fills.
Pixel Bender effects can be applied to any display object, including images, vector graphics, and even digital video. The execution speed is extremely fast; effects that would have taken seconds per frame to execute in ActionScript can now be achieved in real time (see Figure 1)
Figure 1. Pixel Bender effects can be applied to any display object.
Pixel Bender programs, called kernels, are written and compiled using the Adobe Pixel Bender Toolkit. The compiled bytecode produced by the toolkit can be loaded into a Shader object and used by your SWF content. The Pixel Bender Toolkit is installed automatically when you install Flash CS4 Professional.
Documentation for using Pixel Bender in Adobe Flex Builder is available in the Programming ActionScript 3.0 chapter Working with Pixel Bender shaders and in the ActionScript Component and Language Reference in the Shader class section. This documentation contains a detailed description of the objects you can use with Pixel Bender in Flex and Flash. Documentation on the Pixel Bender language is available from the Help menu of the Pixel Bender Toolkit.
If you want to see what's possible, as well as learn some new tricks, I recommend reviewing examples of Pixel Bender programs. In addition to the examples provided in this article, you can find a public repository of kernels hosted by Adobe at the Pixel Bender Exchange. The authors of these kernel programs have kindly agreed to share them with the wider Flash developer community. Perhaps your kernel will be the next one posted? There is also a forum for discussing Pixel Bender programming. Also visit the Pixel Bender Technology Center.
Pixel Bender language overview
Before jumping into kernel coding, take a brief look at the Pixel Bender language. You probably won't become an expert in the language just from reading this article, but the following discussion should help you understand programs written in the Pixel Bender language. For far more detail, refer to the Adobe Pixel Bender Language 1.0 Tutorial and Reference Guide, available from the Help menu of the Pixel Bender Toolkit application.
Pixel Bender uses procedural syntax similar to languages such as C, Java, and ActionScript. It includes built-in data types and functions targeted at image processing. If you are already familiar with ActionScript, then learning to write Pixel Bender kernels should be reasonably straightforward. The main differences in syntax between ActionScript and Pixel Bender language include:
- Type declarations for variables go in front of the variable name, instead of after it. The var keyword is not used. Thus, instead of declaring an integer value with:
var foo:int;
you use the syntax:
int foo;
- New objects cannot be created at runtime. Thus, the
newkeyword is not supported (or needed).
- Pixel Bender uses the data type, float, instead of the data type, Number, for representing real numbers. The term float stands for floating-point (which just means that the decimal point can "float" to any position in the number).
- It is important to remember that when you type a floating point number in a Pixel Bender program, you must include a decimal point. Otherwise, the Pixel Bender compiler will treat the number as an integer rather than a float value. Unlike ActionScript, Pixel Bender does not do any implicit data conversion. So if, for example, you type 1 instead of 1.0, you will get an abstruse error message from the Pixel Bender Toolkit.
- Pixel Bender includes built-in vector data types. A vector type can be recognized by the number appended to the base type name. For example, a float3 type is a vector containing three elements of type float.
- The following statement illustrates a typical use of a vector data type in Pixel Bender:
float4 rgbaPixel = float4( 1.0, 0.3, 0.2, 0.8 );
- The statement above declares a new vector variable named
rgbaPixeland assigns it a color value. The expression,
float4( 1.0, 0.3, 0.2, 0.8 ), defines a literal float4 vector constant, which is assigned to the
- Pixel Bender supports vector swizzling.
The members of a vector can be accessed using dot notation and one of three sets of elements names:
r,g,b,a; x,y,z,w; or
s,t,p,q. Swizzling lets you rearrange the elements simply by reordering the element names. For example, the following statement swaps the red and green color channels of a pixel vector when assigning the pixel value to another variable:
pixel4 mixedUp = rgbaPixel.grba;
You can also repeat channels:
pixel4 allRed = rgbaPixel.rrra;
and drop channels:
pixel2 redAndBlue = rgbaPixel.rb;
Note: The choice of which set of element names to use with a vector variable is up to you. For example,
myVector.r is the same as
myVector.x. A good practice is to use the rgba set for colors, and the xyzw or stpq sets for positions. You cannot mix names from more than one set in the same reference.
- Pixel Bender also supports built-in matrix data types. A matrix data type is similar to a vector, but contains a two dimensional array of numbers. The float3×3 matrix type, for example, contains three vectors of three elements.
- Pixel Bender in Flash Player does not support loops, custom functions (other than the
evaluatePixel()function), or arrays.
Note: When developing Pixel Bender kernels for Flash Player or AIR, be sure to enable the Turn on Flash Player Warnings and Errors option (under the Build menu of the toolkit window). With this option enabled, the compiler will inform you immediately when you are using unsupported Pixel Bender language features. (Otherwise, the toolkit won't report the errors until you try to export the kernel for Flash Player.)
The typical Pixel bender kernel performs the following tasks:
- Samples a pixel from the input image
- Applies a calculation to the sampled pixel color
- Assigns the modified value to the output pixel
The following simple Pixel Bender kernel does each of these tasks. The program defines a kernel named ChannelScrambler:
<languageVersion : 1.0;>
kernel ChannelScramblerFilter
< namespace : "com.adobe.example";
vendor : "Adobe Systems Inc.";
version : 1;
description : "Changes the color channel order from rgba to gbra.";
input image4 inputImage;
output pixel4 outPixel;
void evaluatePixel()
pixel4 samplePixel = sampleNearest( inputImage, outCoord() );
outPixel = samplePixel.gbra;
The kernel declares an input image, named
inputImage, and an output pixel, named
outPixel. In the
evaluatePixel() function, the pixel at the output coordinates currently being processed is accessed using two built-in functions,
sampleNearest() and
outCoord(). Next, the sampled pixel is assigned to the
outPixel variable, using swizzling to reorder the color channels.
This kernel produces the following result shown in Figure 2.
Figure 2. The result of the Channel Sampler.
The required elements of a Pixel Bender program include the languageVersion tag:
<languageVersion: 1.0;>
and the kernel name declaration:
kernel ChannelScrambler{...}
Inside the kernel, there must be a single output declaration, such as
output pixel4 outPixel, and an
evaluatePixel() function. A kernel may have any number of inputs, including no inputs at all. However, the way you use a kernel in Flex creates additional requirements on the number of inputs. A shader used as a blend requires two inputs, a shader used as a filter requires one input, and a shader used as a fill does not require any inputs at all.
A Pixel Bender kernel is run once for every pixel in the output image. No state information is saved between runs, so it isn't possible to collect an average pixel value by accumulating the pixels sampled in each run. Each run of the kernel must compute all the information it needs—although you can pre-compute information in ActionScript and pass it in as an input or parameter.
To access the pixel values in an input image, you must use the sampling functions. Sampling is accomplished with the following built-in functions:
sampleNearest()returns a vector containing the channel values of the pixel closest to the specified coordinates. (There is also a
sampleLinear()function that behaves slightly differently.)
outCoord()returns the coordinates of the current output pixel.
As Pixel Bender processes an image, it executes the kernel for every pixel in the output image. The
outCoord() function returns the coordinates of the current pixel. The Pixel Bender coordinate system is similar to that used by Flash Player and AIR. The origin is registered at the top, left corner. Positive values increase to the right and down. Pixels are always square.
You are not limited to sampling the pixel directly at the
outCoord() position. For example, you could use the following sampling statement to sample the pixel that is 10 pixels right and 5 pixels down from the current pixel:
pixel4 inputPixel = sampleNearest( inputImage, outCoord() + float2( 10.0, 5.0 ) );
The expression,
outCoord() + float2( 10.0, 5.0 ), adds a two-element vector to the vector of coordinates produced by the
outCoord() function. An equivalent way to code the same expression is:
float2(outCoord().x + 10.0, outCoord().y + 5.0).
If the sample coordinates go beyond the bounds of the input image, then a color vector containing all zeros is returned. For example, if the input is of type image4, then sampling an exterior pixel will return a completely transparent black pixel. If the input is of type image3, then it will return a black pixel (without an alpha channel). The Pixel Bender coordinate space theoretically extends to infinity. There are, of course, practical limits on the range of coordinates that can be expressed, as well as limits on the usefulness of sampling data that does not exist.
Working with pixels
Once you have a vector representing a pixel, there are a number of ways to work with the color values. For example, if you have a pixel4 variable named
pix, you can address the individual color channels, or combinations of channels in the following ways:
- Red channel:
- Green channel:
- Blue channel:
- Alpha channel:
- Red and alpha channels:
- All the color channels with red and blue swapped and no alpha channel:
A single color channel is a 32-bit floating-point number, normally between
0.0 (black) and
1.0 (white). The output color values can be outside this range, but they won't change the rendered appearance. In other words,
pixel3(-1.0, -1.0, -1.0) is just as black as
pixel3(0.0, 0.0, 0.0) when rendered as a bitmap. (However, if you run multiple filters on the same image, the difference can be significant since the second filter will see
(-1.0, -1.0, -1.0) not
(0.0, 0.0, 0.0) when sampling that pixel.)
You can perform arithmetic on a pixel vector with either scalar or vector values. When using scalar values, the operation is applied to each channel. For example, the following operation will divide the value of each channel in half (including the alpha channel):
pixel4 pix = sampleNearest( inputImage, outCoord());
pix = pix / 2.0;
The same operation could also be written using vectors:
pix = pix * pixel4( 0.5, 0.5, 0.5, 0.5 );
Although Pixel Bender images have 32-bits per channel, graphics in Flash Player and AIR only have 8-bits per channel. When a kernel is run, the input image data is converted to 32-bits per channel and then converted back to 8-bits per channel when kernel execution is complete.
Inputs are declared with the input keyword:
input image4 sourceImage;
Inputs can be declared using the data types: image1, image2, image3, or image4. The different inputs in a kernel can have different numbers of channels. The number of channels in the output image produced by the shader is determined by the data type of the output pixel, not by the data types of the inputs.
You can declare more inputs than are required for the way a kernel is used in Flex. However, the Flash Player or AIR runtime will only automatically assign image data to the required inputs. You must assign an image to the extra inputs before assigning the kernel as a blend, filter or fill. For example, if your filter kernel used an additional image to create a textured effect, you would have to assign the texture as an input to the kernel before assigning the ShaderFilter containing the kernel to the filter array of a display object (more on how to do that later in this article).
In addition to input images, you can supply other values to a kernel as parameters. Parameters are declared with the parameter keyword and can be any data type, except image (or region—which you can't use in kernels written for Flash Player or AIR anyway). You can declare metadata for parameters to specify the default, minimum, and maximum values. You can also supply a description. The metadata is declared between angle braces (
<>) and can be accessed in ActionScript code. It is always a good idea to define a reasonable default value for a parameter.
The following parameter statement declares a float3 parameter with metadata:
parameter float3 weights
defaultValue : float3( 0.5, 0.5, 0.5 );
minValue : float3( 0.1, 0.1, 0.1 );
maxValue : float3( 0.9, 0.9, 0.9 );
description : "A three element vector of weight values."
To access parameter values in ActionScript code, you use the
data property of the ActionScript Shader object containing the kernel. The current, minimum and maximum values of the above parameter can be accessed in ActionScript with the following statements (assuming that
myShader is a Shader object containing a kernel with this parameter):
var currentWeights:Array = myShader.data.weights.value;
var minWeights:Array = myShader.data.weights.minimumValue;
var maxWeights:Array = myShader.data.weights.maximumValue;
Since the parameter is a float3 vector type, the ActionScript arrays returned will contain three elements. If the parameter was a scalar type, such as float, then the arrays returned would contain a single element.
Exporting and loading a kernel
Use the Export Kernel Filter for Flash Player command from the Pixel Bender Toolkit to compile and export the kernel for use in the Flash Player and AIR runtimes. Kernels are exported with a file extension .pbj (see Figure 3).
Figure 3. Exporting the kernal from the Pixel Bender Toolkit
To load a Pixel Bender kernel in a Flex application, you must either embed or load the compiled kernel.
The Embed tag instructs the ActionScript compiler to embed the Pixel Bender kernel when it creates the SWF file. You must include the MIME type declaration, as shown in the following example:
[Embed(source="channelscrambler.pbj", mimeType="application/octet-stream")]
var ChannelScramblerKernel:Class;
To use the kernel, create an instance of the class, in this case, ChannelScramblerFilter. The following code uses an embedded kernel to create new Shader and ShaderFilter objects, which are applied it to an Image instance:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" applicationComplete="applyFilter()"
width="476" height="281" backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#FFFFFF, #FFFFFF]">
//Embed the PixelBender kernel in the output SWF
[Embed(source="kernels/channelscrambler.pbj", mimeType="application/octet-stream")]
private var ChannelScramblerKernel:Class;
private function applyFilter():void
var shader:Shader = new Shader(new ChannelScramblerKernel() );
var shaderFilter:ShaderFilter = new ShaderFilter( shader );
camellia.filters = [ shaderFilter ];
<mx:HBox width="410" height="100%">
<mx:VBox height="100%">
<mx:Image source="images/camellia.jpg" scaleContent="false" autoLoad="true"/>
<mx:Label text="Original" width="200" textAlign="center"/>
<mx:VBox height="100%">
<mx:Image source="images/camellia.jpg" id="camellia" scaleContent="false" autoLoad="true"/>
<mx:Label text="Channel Scrambler" width="199" textAlign="center"/>
Using the Embed tag is typically the simplest method of loading Pixel Bender kernels, but you can also load kernels at runtime. The following example shows how to use the URLLoader class to load a kernel:
function loadFilter()
var urlRequest:URLRequest = new URLRequest( "channelscrambler.pbj" );
var urlLoader:URLLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
urlLoader.addEventListener( Event.COMPLETE, applyFilter );
urlLoader.load( urlRequest );
function applyFilter( event:Event ):void
urlLoader.removeEventListener( Event.COMPLETE, applyFilter );
var shader:Shader = new Shader( event.target.data );
var shaderFilter:ShaderFilter = new ShaderFilter( shader );
camellia.filters = [ shaderFilter ];
Using Pixel Bender kernels in AIR applications
You can use Pixel Bender kernels in an AIR application exactly as you would in a browser-targeted application. If you load a kernel dynamically, the kernel must be included in the application package. In Flex Builder, kernel files in the source directory are typically included automatically when you export the AIR file. (If you embed the kernel, it is already included in the application SWF file, so it doesn't need to be added to the AIR package.)
The examples in this article are all targeted at the browser so that you can view the examples live. To convert one of the examples to an AIR application, you just need to create an application descriptor. For example, the following shows a minimal application descriptor for the ChannelScrambler example:
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://ns.adobe.com/air/application/1.5">
<filename>Channel Scrambler</filename>
<name>Channel Scrambler -- Flex-based AIR Example</name>
<description>Illustrates how to use Pixel Bender Kernels in Flex and AIR.</description>
<copyright>© 2007 Adobe Systems Inc.</copyright>
<title>Channel Scrambler</title>
<installFolder>Adobe/AIR Examples</installFolder>
<programMenuFolder>Adobe/AIR Examples</programMenuFolder>
Note that the namespace specified in the xmlns attribute must target AIR 1.5. If you target 1.0 or 1.1, only Flash Player 9 APIs will be available to the application.
Using blends
A blend combines the colors in the display object to which the blend is applied with the colors below the object on the Stage. The Flash Player API supports several built-in blends, defined in the BlendMode class. As a learning exercise, we duplicate a couple of the built-in blends. Then we create a blend that can't be easily achieved using the built-in options.
To apply a blend to a display object, create a Shader object with the loaded kernel bytecode and assign it to the
blendShader property of the display object. A blend kernel must have two inputs. The first input is the foreground display object (whose
blendShader property is set). The second input is whatever is behind the foreground object. If you use additional inputs, perhaps for creating masks or textures, you must assign an image in the form of a BitmapData object to these inputs yourself before applying the blend.
In a multiply blend, each color in the foreground object is multiplied by the color of the background object. This blend darkens the result, except in the scenario where one of the images is pure white as shown in Figure 4.
Figure 4. Pixel Bender effects can be applied to any display object.
The following kernel declares two inputs, named foreground and background, and an output, named result. In the
evaluatePixel() function, the pixel at the current coordinate is sampled in each image using the
sampleNearest() function. The pixels are then multiplied together.
<languageVersion : 1.0;>
kernel MultiplyBlend
< namespace : "com.adobe.example";
vendor : "Adobe Systems Inc.";
version : 1;
description : "A simple multiply blend";
input image4 foreground;
input image4 background;
output pixel4 result;
void evaluatePixel()
pixel4 a = sampleNearest( foreground, outCoord() );
pixel4 b = sampleNearest( background, outCoord() );
result = a * b;
Note: When you multiply two vectors in the Pixel Bender language, each corresponding pair of component values are multiplied together. Thus, if
a and
b are float2 vectors, for example, the statement:
a * b
is equivalent to the two statements:
a.x * b.x
a.y * b.y
The following ActionScript code is used to load and apply the blend:
//Embed the Pixel Bender kernel in the output SWF
[Embed(source="kernels/multiplyblend.pbj", mimeType="application/octet-stream")]
private var MultiplyBlendKernel:Class;
private function applyBlend():void
var shader:Shader = new Shader( new MultiplyBlendKernel() );
camellia.blendShader = shader;
A screen blend inverts the colors, multiplies them together, and then inverts the result. This has the opposite effect as applying the multiply blend. The screen blend lightens the result, except in the scenario where one of the images is black (see Figure 5).
Figure 5. The screen blend lightens the result.
<languageVersion : 1.0;>
kernel ScreenBlend
< namespace : "com.adobe.example";
vendor : "Adobe Systems Inc.";
version : 1;
description : "Screen blend";
input image4 foreground;
input image4 background;
output pixel4 result;
void evaluatePixel()
pixel4 a = sampleNearest( background, outCoord() );
pixel4 b = sampleNearest( foreground, outCoord() );
result = 1.0 - (1.0 - a) * (1.0 - b);
As you can see, this kernel is almost identical to the multiply kernel. Only the mathematical operation used to produce the result has changed. This example uses the same ActionScript code, except it is loading and applying a different shader.
A hard light blend is a combination of the multiply and screen blends. If the foreground pixel is lighter than 50% gray, then a screen blend is performed. Otherwise, a multiply blend is performed (see Figure 6).
Figure 6. A hard light blend is a combination of the multiply and screen blends.
<languageVersion : 1.0;>
kernel HardLightBlend
< namespace : "com.adobe.example";
vendor : "Adobe Systems Inc.";
version : 1;
description : "Hard light blend";
input image4 foreground;
input image4 background;
output pixel4 result;
void evaluatePixel()
pixel4 a = sampleNearest( background, outCoord() );
pixel4 b = sampleNearest( foreground, outCoord() );
float gray = (b.r + b.g + b.b)/3.0;
if( gray < 0.5 )
result = a * b;
result = 1.0 - (1.0 - a) * (1.0 - b);
The hard light blend is a bit more complicated than the previous two. First, the gray level of the pixel in the foreground image is calculated by averaging the color channels. Then, an if statement is used to select either a multiply or a screen blend operation.
Again, this example uses the same ActionScript code, but it loads and applies a different shader.
Now for something that is a bit more difficult to achieve with the built-in blends. The next filter uses a noise texture and
sin() functions to generate a wood grain or marbling effect. The effect depends on the characteristics of the noise texture and generally looks best with Perlin-type noise (see Figure 7).
Figure 7. A hard light blend is a combination of the multiply and screen blends.
The shader works by sampling the pixels values from the noise image. Instead of using the noise pixels directly in the image, the shader feeds the noise value into a series of sin() functions. The background is multiplied by the result. A turbulence parameter is used to control the curviness of the resulting effect:
<languageVersion: 1.0;>
kernel GrainBlend
< namespace : "com.adobe.example";
vendor : "Adobe Systems Inc.";
version : 1;
description : "Creates a wood grain or marbling effect"; >
input image4 background;
input image4 noise;
output pixel4 dst;
parameter float turbulence
maxValue : 500.0;
minValue : 0.0;
defaultValue : 150.0;
void evaluatePixel()
pixel4 a = sampleNearest(background, outCoord());
pixel4 b = sampleNearest(noise, outCoord());
float alpha = a.a; //save the original alpha
if( (b.a > 0.0) && (a.a > 0.0)){
float seed = outCoord().x + (((b.r + b.g + b.b)/3.0) * turbulence);
float grain = (0.7 * sin(seed) + 0.3 * sin(2.0 * seed + 0.3) + 0.2 * sin(3.0 * seed + 0.2));
dst = sampleNearest(background, outCoord()) * (grain + 0.5);
dst.a = alpha; //restore the original alpha
else {
//Just copy the background pixel when outside the area of the noise image
dst = sampleNearest(background, outCoord());
The ActionScript code used for this example loads and applies the shader in the same way as the previous examples. In addition, the example creates a slider to control the turbulence parameter:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" height="297" width="662"
applicationComplete="init()" backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#FFFFFF, #FFFFFF]">
import mx.events.SliderEvent;
//Embed the Pixel Bender kernel in the output SWF
[Embed(source="kernels/grainblend.pbj", mimeType="application/octet-stream")]
private var GrainBlendKernel:Class;
//Create the Shader object
private var shader:Shader = new Shader( new GrainBlendKernel() );
private function init():void
//Set the slider values based on the parameter metadata
turbulence.minimum = shader.data.turbulence.minValue;
turbulence.maximum = shader.data.turbulence.maxValue;
turbulence.value = shader.data.turbulence.defaultValue;
turbulence.liveDragging = true;
turbulence.addEventListener( SliderEvent.CHANGE, updateFilter );
//Apply the blend
noise.blendShader = shader;
private function updateFilter( event:SliderEvent ):void
shader.data.turbulence.value = [turbulence.value];
noise.blendMode = BlendMode.NORMAL;
noise.blendShader = shader;
<mx:VBox height="100%" width="100%">
<mx:HBox width="100%" height="100%" horizontalAlign="center" verticalAlign="top">
<mx:Canvas width="195" height="194" backgroundColor="#663300"/>
<mx:Label text="Background" textAlign="center" width="196"/>
<mx:Image source="images/noise.jpg" width="195" scaleContent="false" autoLoad="true" height="194"/>
<mx:Label text="Perlin noise" width="196" textAlign="center"/>
<mx:Canvas width="195" height="194" backgroundColor="#663300">
<mx:Image source="images/noise.jpg" id="noise" scaleContent="false" autoLoad="true" width="195" height="194"/>
<mx:Label text="Grain blend" width="196" textAlign="center"/>
<mx:HBox width="100%" horizontalAlign="center" verticalAlign="middle">
<mx:Label text="Turbulence"/>
<mx:HSlider id="turbulence" width="100%"/>
The example uses a slider to control the shader turbulence parameter. The minimum, maximum and starting values of the slider are set according to the parameter metadata. Then, the
updateFilter() method is used to change the parameter value whenever a change event is dispatched by the Slider object. Because a shader object is cloned when you set the
blendShader property of a display object, you cannot simply change the parameter value of the original Shader object. You must also reassign the updated Shader object to the
blendShader property.
For simplicity, this example uses a bitmap for the noise texture. You can also use the
perlinNoise() function of the BitmapData class to create a suitable texture.
Using filters
Shaders used as filters are applied to a single image. In addition to creating a Shader object, as we did for blends, you must also create a ShaderFilter object, passing in the Shader containing the kernel:
var shader:Shader = new Shader( loadedBytes );
var shaderFilter:ShaderFilter = new ShaderFilter( shader );
The ShaderFilter object "wraps" the shader and allows you to use the shader like a built-in filter, by adding it to the
filters array of a display object:
displayObject.filters = [ shaderFilter ];
The object to which a shader is applied is automatically set as the first input of the kernel. If a filter kernel takes additional images as inputs, these must be set before the filter is assigned to a display object.
We've already looked at a simple filter, ChannelScrambler, so let's go straight to a more complex example, the Gaussian blur.
A Gaussian blur is an example of a convolution filter. (Convolution is a fancy word for a filter that computes a weighted average of nearby pixels.) Although the Flash Player API includes a built-in class for creating convolution filters of arbitrary size, programming a Gaussian blur in Pixel Bender is a good exercise that demonstrates several important aspects of Pixel Bender (see Figure 8).
General-purpose convolution filters aren't easy to achieve in Pixel Bender because the Flash Player and AIR runtimes do not support loops in kernel code. So, instead of using a for loop, we have to write an individual program statement to sample each pixel in the neighborhood. This example kernel creates a Gaussian blur that can have a sampling radius between 1 and 6 (corresponding to convolution matrices ranging in size between 3 × 3 to 13 × 13).
The filter takes advantage of the fact that a Gaussian blur is separable, which simply means that you can perform the operation in two passes. One pass blurs the image horizontally, and the other pass blurs the image vertically. This saves several calculations, since for each final pixel, only about 4 times the radius pixels have to be sampled, and weighted and averaged, rather than 2 times the radius2 pixels. For example, at the largest radius supported by this filter, 26 input pixels are sampled for each final output pixel in both the vertical and horizontal passes combined. If the filter computed the blur in a single pass, 169 input pixels would have to be sampled for each output pixel. The visual and mathematical results are identical.
To overcome the lack of a for loop, the kernel treats each integer radius value separately. For each allowed radius value, the two pixels located at that distance to either side of the current pixel are sampled. The Gaussian weights are the same for both pixels, so they are added together. Once all the necessary pixels are sampled, the weight and scale factors are applied.
The following kernel code is used for the horizontal pass (a similar kernel is used for the vertical pass):
<languageVersion: 1.0;>
kernel HorizontalGaussianBlur
< namespace : "com.adobe.example";
vendor : "Adobe Systems Inc.";
version : 1;
description : "The horizontal convolution of a Gaussian blur"; >
input image4 src;
output float4 result;
parameter int radius
minValue : 1;
maxValue : 6;
defaultValue : 6;
void evaluatePixel()
pixel4 center, band1, band2, band3, band4, band5, band6;
float2 pos = outCoord();
//Sample image in bands
if( radius > 5 )
band6 = sampleNearest(src, float2(pos.x - 6.0, pos.y))
+ sampleNearest(src, float2(pos.x + 6.0, pos.y));
if( radius > 4 )
band5 = sampleNearest(src, float2(pos.x - 5.0, pos.y))
+ sampleNearest(src, float2(pos.x + 5.0, pos.y));
if( radius > 3 )
band4 = sampleNearest(src, float2(pos.x - 4.0, pos.y))
+ sampleNearest(src, float2(pos.x + 4.0, pos.y));
if( radius > 2 )
band3 = sampleNearest(src, float2(pos.x - 3.0, pos.y))
+ sampleNearest(src, float2(pos.x + 3.0, pos.y));
if( radius > 1 )
band2 = sampleNearest(src, float2(pos.x - 2.0, pos.y))
+ sampleNearest(src, float2(pos.x + 2.0, pos.y));
band1 = sampleNearest(src, float2(pos.x - 1.0, pos.y))
+ sampleNearest(src, float2(pos.x + 1.0, pos.y));
center = sampleNearest(src, pos);
//Apply weights and compute resulting pixel
if( radius == 6 )
result = (band6 + (band5 * 12.0) + (band4 * 66.0) + (band3 * 220.0) + (band2 * 495.0) + (band1 * 792.0) + (center * 924.0))/4096.0;
if( radius == 5 )
result = (band5 + (band4 * 10.0) + (band3 * 45.0) + (band2 * 120.0) + (band1 * 210.0) + (center * 252.0))/1024.0;
if( radius == 4 )
result = (band4 + (band3 * 8.0) + (band2 * 28.0) + (band1 * 56.0) + (center * 70.0))/256.0;
if( radius == 3 )
result = (band3 + (band2 * 6.0) + (band1 * 15.0) + (center * 20.0))/64.0;
if( radius == 2 )
result = (band2 + (band1 * 4.0) + (center * 6.0))/16.0;
if( radius == 1 )
result = (band1 + (center * 2.0))/4.0;
Both kernels must be applied as filters for the complete effect. It does not matter which order the filters are applied in. The ActionScript code shown below uses a slider to control the radius parameter:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" width="334" height="287" applicationComplete="init()"
backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#FFFFFF, #FFFFFF]" viewSourceURL="srcview/index.html">
import mx.events.SliderEvent;
//Embed the Pixel Bender kernel in the output SWF
[Embed(source="kernels/verticalgaussianblur.pbj", mimeType="application/octet-stream")]
private var VerticalBlurKernel:Class;
[Embed(source="kernels/horizontalgaussianblur.pbj", mimeType="application/octet-stream")]
private var HorizontalBlurKernel:Class;
//Create the shaders
private var vBlurShader:Shader = new Shader( new VerticalBlurKernel() );
private var hBlurShader:Shader = new Shader( new HorizontalBlurKernel() );
//Create the filters
private var hBlurFilter:ShaderFilter = new ShaderFilter( hBlurShader );
private var vBlurFilter:ShaderFilter = new ShaderFilter( vBlurShader );
private function init():void
//Initialize the slider using the radius parameter metadata
radiusSlider.value = hBlurShader.data.radius.value;
radiusSlider.minimum = hBlurShader.data.radius.minValue;
radiusSlider.maximum = hBlurShader.data.radius.maxValue;
radiusSlider.addEventListener( SliderEvent.CHANGE, updateFilters );
//Apply the filters
camellia.filters = [ hBlurFilter, vBlurFilter ];
//Reapply the filters when the slider is changed
private function updateFilters( event:SliderEvent ):void
hBlurShader.data.radius.value = vBlurShader.data.radius.value = [radiusSlider.value];
camellia.filters = [ hBlurFilter, vBlurFilter ];
<mx:VBox height="100%" width="285" horizontalAlign="center">
<mx:Image id="camellia" source="images/camellia.jpg" scaleContent="false" autoLoad="true"/>
<mx:HBox width="100%" verticalAlign="middle" horizontalAlign="center">
<mx:Label text="Gaussian blur"/>
<mx:HSlider id="radiusSlider" liveDragging="true" snapInterval="1"/>
The example sets the radius of each filter to the same value. As with blends, the shader filters must be reassigned to the display object after changing parameter values.
Using fills
To use a kernel as an area fill, create a Shader object containing the kernel bytecode and pass that to the
beginShaderFill() function of the display object
graphics property when drawing the object. Like bitmap fills, shader fills are registered to the origin of the display object. This registration can be adjusted by using a translation matrix.
Shaders used as area or line fills are not automatically assigned an input image. (If you need an image as part of the fill algorithm, you must explicitly assign an image to the input before calling the
beginShaderFill() method.)
The next fill example creates a checker pattern. The size and color of the checker squares are controlled by kernel parameters (see Figure 9).
Figure 9. The size and color of the checker squares are controlled by kernel parameters.
The checker algorithm uses the modulo function to compare the current pixel position to multiples of the checker size:
float vertical = mod(position.x, checkerSize * 2.0);
This modulo function returns the remainder produced by dividing the
x coordinate by
checkerSize multiplied by
2. If, for example,
checkerSize is equal to
10, then we get the pattern
0-19, 0-19, 0-19,... as x increases across the image. So whenever the result is less than the checker size, the kernel draws color A, otherwise it draws color B. That creates stripes. To produce the checker pattern, we have to apply the technique in both the horizontal and vertical directions, like this:
float vertical = mod(position.x, checkerSize * 2.0);
float horizontal = mod(position.y, checkerSize * 2.0);
The remaining question is how to combine these results. The logical XOR operator (^^), which only returns
true when just one of the inputs is
true, is perfect here:
( vertical < checkerSize ) ^^ ( horizontal < checkerSize )
The following example displays the full kernel code:
<languageVersion : 1.0;>
kernel CheckerFill
< namespace : "com.adobe.example";
vendor : "Adobe Systems Inc.";
version : 1;
description : "A checkered field generator";
output pixel4 dst;
parameter float checkerSize
defaultValue : 10.0;
minValue : 1.0;
maxValue : 75.0;
parameter pixel4 colorA
defaultValue : pixel4(0.0, 1.0, 1.0, 1.0);
parameter pixel4 colorB
defaultValue : pixel4( 0.0, 0.0, 0.0, 1.0 );
void evaluatePixel()
float2 position = outCoord();
float vertical = mod(position.x, checkerSize * 2.0);
float horizontal = mod(position.y, checkerSize * 2.0);
dst = (( vertical < checkerSize ) ^^ ( horizontal < checkerSize )) ? colorA : colorB;
The ActionScript code used for this example is slightly more complex than the previous examples, both because more parameters are used for the kernel and because the parameters themselves are more complex.
In the example, the
init() function is called when at the applicationComplete event. This function creates the Shader object and uses the metadata of the kernel parameters to set up the initial values for the controls. It then calls the
drawShape() function, which draws a circle using a shader fill.
To update the fill, the
drawShape() function is called again whenever a change event is dispatched by one of the controls. The function sets the kernel parameters based on the current control values, clears the current graphics, and redraws the shape:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" height="273" width="336"
applicationComplete="init()" backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#FFFFFF, #FFFFFF]">
import mx.core.UIComponent;
import mx.events.ColorPickerEvent;
import mx.events.SliderEvent;
private var filledShape:UIComponent = new UIComponent();
private var areaShader:Shader;
//Embed the Pixel Bender kernel in the output SWF
[Embed(source="kernels/checkerfill.pbj", mimeType="application/octet-stream")]
private var CheckerFillKernel:Class;
private function init():void
//Create the Shader object using the embedded kernel
areaShader = new Shader( new CheckerFillKernel() );
//Set controls using shader parameter metadata
checkerSize.minimum = areaShader.data.checkerSize.minValue;
checkerSize.maximum = areaShader.data.checkerSize.maxValue;
checkerSize.value = areaShader.data.checkerSize.value;
checkerSize.liveDragging = true;
checkerSize.addEventListener( SliderEvent.CHANGE, updateFilters );
colorA.selectedColor = vectorToColor( areaShader.data.colorA.value );
colorA.addEventListener( ColorPickerEvent.CHANGE, updateFilters );
colorB.selectedColor = vectorToColor( areaShader.data.colorB.value );
colorB.addEventListener( ColorPickerEvent.CHANGE, updateFilters );
shapeHolder.addChild( filledShape );
private function updateFilters( event:Event ):void
areaShader.data.checkerSize.value = [ checkerSize.value ];
areaShader.data.colorA.value = colorToVector( colorA.selectedColor | 0xff000000 );
areaShader.data.colorB.value = colorToVector( colorB.selectedColor | 0xff000000 );
private function drawShape():void
with( filledShape.graphics )
beginShaderFill( areaShader );
drawCircle( 125, 75, 75 );
private function vectorToColor( pixelChannels:Array ):uint
return (pixelChannels[3] * 0xff << 24) |
(pixelChannels[0] * 0xff << 16) |
(pixelChannels[1] * 0xff << 8) |
pixelChannels[2] * 0xff;
private function colorToVector( color:uint ):Array
var result:Array = new Array(4);
result[3] = ((color >> 24) & 0×000000ff)/0xff;
result[0] = ((color >> 16) & 0×000000ff)/0xff;
result[1] = ((color >> 8) & 0×000000ff)/0xff;
result[2] = (color & 0×000000ff)/0xff;
return result;
<mx:VBox height="100%">
<mx:HBox id="shapeHolder" width="100%" height="160">
<mx:HBox width="100%">
<mx:Label text="Square size"/>
<mx:HSlider id="checkerSize"/>
<mx:HBox width="100%">
<mx:Label text="Color A" width="33%"/>
<mx:ColorPicker id="colorA"/>
<mx:Spacer width="33%"/>
<mx:Label text="Color B" width="33%"/>
<mx:ColorPicker id="colorB"/>
In the earlier examples we incorporated a slider to set the kernel parameters. The color picker controls used in this example are not quite as straightforward. Parameter values are accessed in ActionScript as an array. In the case of a scalar parameter, such as checkerSize, the array holds a single value. For vector types such as colors, the array contains an element for each element of the vector. Since the
colorA and
colorB parameters are of type pixel4, there are four values in the array, one for each channel in the pixel. A color in ActionScript, on the other hand, is represented as a single 32-bit uint value containing all the channel information. In addition, the alpha channel is the first channel in a uint color, but it is the last channel in the Shader object parameter array. The example functions,
vectorToColor() and
colorToVector(), translate the colors between the two forms so that we can transfer color selections between the ColorPicker objects and the shader parameters.
vectorToColor() function works by multiplying each color channel returned by the Pixel Bender kernel by 256 (hexadecimal value 0xff). The resulting value is then shifted to the corresponding argb position within the 32-bit uint value using the bitwise left shift operator (
<<). Finally, the four channels are combined into a single uint with the bitwise OR operator (
| ) and returned.
colorToVector() function performs the inverse operation. For each channel, the function does a bitwise right shift operation (
>>), masks out the bits that belong to any other channel with the bitwise AND operator (&) and divides the result by 256 (0xff) to scale the value between 0 and 1 (decimal). The results are assigned to the appropriate element of an array, in the order expected by Pixel Bender, and then returned.


text:
Relatively few RIAs service 401(k)s and other employer-sponsored retirement plans even though the market beckons as a huge growth opportunity, according to a new study.
A recent TD Ameritrade Institutional Advisor Survey found that advisors want a deeper understanding of the rules and more guidance in pulling together components they need to service the U.S. retirement plan market.
Nearly eight of 10 survey respondents said that RIAs as a group were well-positioned to increase their share of the $5 trillion in defined contribution retirement plan assets. Market brokerages, insurers and mutual fund companies have long dominated this market.
Yet 62% of RIAs service 10 or fewer plans, including nearly 19% who work with no plans, according to the survey. Other industry research indicates that only 6% of retirement plan advice specialists are RIAs, TD Ameritrade said in a statement.
Maritz Inc. conducted a telephone survey with 300 RIAs on behalf of TD Ameritrade between Nov. 4 and Nov. 15.
The U.S. retirement market has grown to about $22 trillion, and analysts expect the market to reach $24 trillion by 2017, according to the study.
TD Ameritrade noted that Department of Labor rules that mandate greater fee transparency and changes in the definition of "fiduciary" could tilt the playing field in favor of RIAs.
The survey found that nearly half of respondents were currently directing time and resources toward the retirement business. Another 19% said they did not currently have plans, but likely would in the near future.
"RIAs recognize the retirement plan business is a tremendous growth opportunity for the industry and a chance to gather additional assets they are not capturing today," Skip Schweiss, managing director at TD Ameritrade Institutional and president of TD Ameritrade Trust Company, said in the statement.
"There's no denying the retirement business has more moving parts, but with a little help and guidance advisors believe they can assemble an important new growth enterprise."
RIAs could have a substantial cross-selling opportunity when it comes to the retirement business, TD Ameritrade said. Half of the advisors surveyed said 10% or more of their clients were business owners, a group that potentially could steer their company's retirement plan to the RIA.
The survey identified several concerns that have prevented many advisors from entering the retirement plan market:
- 60% cited a lack of time or resources
- 42% cited compliance and regulatory requirements
- 38% said they lacked business relationships with third-party administrators or recordkeepers
- 30% were not sure of the opportunity
- 25% said they lacked the tools needed to service retirement plans
The survey underscored that RIAs have business-owning clients and that they have the expertise to service them, TD Ameritrade said.
Still, half of the advisors said they would like to develop a firmer understanding in the areas of retirement plan compliance and regulation. More than half wanted more education about the retirement market.
Fifty-eight percent asked for referrals on which third-party plan administrators and recordkeepers they should work with, while more than a third said they wanted ongoing practice management support.
With the right support and resources, more RIAs said they would be more likely to stake a claim in the retirement market, the survey showed.
"Imagine a business where your clients add new money every two weeks, rain or shine," Schweiss said. "That's what the retirement plan market is, and for many advisors it remains an untapped source of new growth."
Check out SEC to Keep Close Eye on Advisors Who Are 'Highly Successful' at Rollovers on ThinkAdvisor.


text:
ENGG 299: Advanced Special Topics in Engineering Sciences
Cannot be used to satisfy any A.B. degree requirements
A special topics course in lieu of, or supplementary to, a 200-level course, as arranged by a faculty member, to be used in satisfaction of degree requirements. The course must be approved by the graduate programs committee in advance of the term in which it is offered. No more than one such course may be used in satisfaction of requirements for any degree. Requests for approval must be submitted to the program director no later than the eighth week of the term preceding the term in which the course is to be offered, to permit action prior to the term's end. Proposed courses should include full syllabus, resources and student evaluation methods. Courses that do not have a 100-level prerequisite should use ENGG 199.


text:
Enhance Your Presence on SearchSearch is evolving beyond ten blue links to bring your content to people in much richer and faster ways. Learn how structured data markup can drive users to your content and services with rich results on the Search results page.
Add Mobile Search Features
Firebase App Indexing
Send users from Search to your app with Firebase App Indexing, formerly Google App Indexing.
Optimize your AMP pages for Google Search.
Analyze your performanceMonitor your presence on Search —both apps and websites —and debug errors where appropriate.
More resources
To learn more about how Google Search can help you grow your business, check out our videos.
Use our code labs to get hands-on experience integrating with Google Search products for developers.
Need help that's not so technical?
Check out the Search Engine Optimization (SEO) Starter Guide to learn the basics of how to appear on Google.


text:
Southeastern will open the season in the underdog role after being picked to finish eighth in the Great American Conference according to the league's preseason poll released on Tuesday.
The Savage Storm garnered 46 points in the poll and finished four points behind Ouachita Baptist in seventh.
SE is coming off a 23-20 season with a 15-15 record in conference play that saw the team miss the postseason for the first time since 2002, not counting the 2005 season in which no conference tournament was held.
Southeastern returns five position starters from last season, including first team all-conference performers Evan Ramsey and Chevis Springer.
Ramsey was the team's leading hitter with a .356 average and 35 RBI which also earned him all-region recognition.
The Storm return just one pitcher from last year's squad in Canyon Conley who made just five appearances and three starts, and will be welcoming eight new additions to the staff.
Southern Arkansas was picked to win the conference with 100 points and 10 of the 11 first placevotes, with Arkansas Tech second with 88 points and the remaining first place vote.
Southwestern Oklahoma State was third in the poll, followed by Arkansas-Monticello, Henderson State and Harding.
OBU finished seventh, followed by SE, then Northwestern Oklahoma State, Southern Nazarene and East Central.
Southeastern will open the 2014 season on Feb. 1 in Laredo, Texas for the first two games of a three-game series against Texas A&M-International. Game one of the opening-day double-0header begins at noon.


text:
A Florida man broke his Vero Beach neighbor's mailbox, threw the mail in his yard and then ran over the mailbox with his bicycle twice because he was angry that an errand was taking too long, the sheriff's office said.
"If you gonna put on a show you've got to do it good," the man, Nicholas Katsanis, 52, said when an Indian River County Sheriff Deputy asked about the mailbox incident.
According to his Dec. 8 arrest report, Katsanis was upset after his neighbor took 45 minutes to go to the store for him.
Another neighbor called to tell the mailbox owner that Katsanis had broken the mailbox by pushing it back and forth, the report said.
The neighbor also said Katsanis had thrown all of the mail in the yard and then threw the mailbox in the street, according to the report. Katsanis then used his bicycle to run over the mailbox twice, the report said.
Katsanis told the deputy that he was upset because the neighbor would not answer his phone calls. He said he regretted the incident and offered to pay for the mailbox, the report said.
Katsanis was arrested for criminal mischief. It wasn't immediately known if he had an attorney.


text:
Customers from Alaska, Hawaii and Canada — For the best shipping rates, please call 1-800-653-8528 to place your orders!
Our selection of surplus parachutes, harnesses and cord is constantly changing. Our new and used parachutes and other gear are from the U.S. Army, China, Britain, and other countries. Parachutes are available in various sizes, shapes, and colors.


text:
May 12, 2011
MINNEAPOLIS - Tune in Sunday, May 15 from 1-2 p.m. ET to "FLW Outdoors" on VERSUS for complete coverage of the National Guard FLW College Fishing National Championship on Kentucky Lake. The one-hour show highlights the University of Florida's second consecutive national championship victory.
The Gators, consisting of Jake Gipson and Matthew Wercinski, targeted riprap off steep banks where the largemouth bass were moving up to feed. Working together, Gipson threw a Strike King KVD 1.5 square-bill crankbait while Wercinski fished on the outside with a Zoom Baby Brush Hog. Later in the day, the two would target secondary pea gravel points. The plan worked well on day one, but the Gators made their big move on day two, catching a 14-pound, 12-ounce limit.
On the final day, Gipson and Wercinski sealed their fifth victory and second national championship with a 14-pound, 4-ounce stringer. For their efforts, they received $50,000 cash, a Ranger 177TR with a 90-horsepower engine wrapped in school colors for their school's bass club and $25,000 for the University of Florida - for a total prize package valued at $100,000. In addition, the duo received an automatic berth into the 2011 Forrest Wood Cup.
Rounding out the top five teams were Louisiana State University-Shreveport - Zach Caudle and Joe Landry (13 bass, 37-2, $20,000); Auburn University - Shaye Baker and Jordan Lee (13 bass, 36-3, $10,000); North Carolina State University - Ben Dziwulski and Kevin Beverley (11 bass, 28-13, $10,000) and Christopher Newport - Ryan Ingalls and Joe Wilkerson (10 bass, 25-8, $10,000).
"FLW Outdoors" airs on VERSUS in high-definition (HD) Sundays from 1-2 p.m. ET. Hosted by Jason Harper, "FLW Outdoors," is broadcast to more than 500 million households worldwide through agreements with WFN (World Fishing Network) and Matchroom Sport. FLWOutdoors.com also provides an online guide listing upcoming episodes of "FLW Outdoors" and a preview of the upcoming show. In addition, each episode of "FLW Outdoors" is available on demand in its entirety on FLWOutdoors.com/flwondemand.
About FLW Outdoors
FLW Outdoors is the largest tournament-fishing organization in the world, offering anglers worldwide the opportunity to compete for millions over the course of 191 tournaments in 2011. FLW Outdoors has taken fishing mainstream with the world's richest fantasy sports game, FLW Fantasy Fishing at FantasyFishing.com, where competitors can play for free as well as sign up for Player's Advantage to gain an edge.


text:
by Matt
(Unity, Saskatchewan, Canada )
We had our great pyr run away last night. Unfortunately, it got to about -34 C. Still no sign of him a day later. What is the lowest temperature they can withstand overnight without shelter? Also, he's only 6 months old, basically a giant puppy. Thanks in advance.
Comments for Temperature Outside - Tolerance
Click here to add your own comments
Join in and write your own page! It's easy to do. How? Simply click here to return to Great Pyrenees Questions.
Jan 25, 20 02:51 PM
*ADOPTION PENDING* These two handsome boys, Wolf and Spirit, are a bonded pair of white fluffies looking for a farm on which to retire. One looks to be
Jan 24, 20 11:54 AM
*ADOPTED* Mindy went to a hobby farm with chickens, goats, cats, and companion dogs. She has fit in like a dream, and they could not imagine life without
Jan 22, 20 06:18 AM
Can I own a pack of un-neutered great Pyrenees and expect them to gaurd my livestock without being distracted, or is their away I can make rotation so
Jan 19, 20 07:00 PM
DOB: April 2018 Akbash Cross Note that the reason these big whites come in is usually because no one has done the work with them. We do work with them
Jan 19, 20 03:11 PM
My Pyr is 11 months old, and she barks at all the neighbors and children. What do I need to do to make her more social?
Jan 17, 20 06:49 AM
I bought a Great Pyrenees pup at 7 weeks. I already have a 3 year old neutered Australian Shepherd. I have been trying to house break her for months.
Jan 14, 20 02:15 PM
great pyrnees 12 yrs old, hearing loss, trouble getting up and down back legs, Just wondered if its getting time for old girl to go home, ???
Jan 13, 20 06:44 PM
George has found the life he deserves with alumni Umka. He gets to hang out with livestock and put smiles on people's faces because he is such a doll.


text:
Righteous Fury
I think it safe to say that most of us on the Right feel just like Mark Levin:
You know folks, I'll be honest with you. I just told a friend of mine — even though I sit behind this microphone and I try to be civil and so forth — I can barely contain my fury about what's going on in this country. I'm just being honest with you. I can barely contain it. I'm so frustrated by this tyranny, you have no idea. Now we can analyze it, we can intellectualize it, we can parse it and so forth and try to unravel it. But I'm just telling you, from an emotional point of view, it is just so damned infuriating to see the greatest country on the face of the earth run by a bunch of lilliputians, who are constantly attacking it from within.
No discussion on the news programs about an imperial president exercising an authority he does not have under our constitution. Nothing. No discussion about all the lives saved and all the people protected as a result of the Second Amendment. Nothing. They continue to perpetuate the lie, the big lie that somehow, some new regulation, some new government fiat would have prevented what happened in Newtown, Connecticut. And then they pretend that they're for law enforcement. They pretend that they're hard on crime when they're not.
We have evidence over one decade after another of how the very same people pushing for gun control against law-abiding American citizens support radical left-wing judges who are soft on criminals, support weakened sentencing rules, decriminalizing this and that. Since when was Obama strong on fighting crime? Since when has Obama supported law enforcement? But here he is, you know, 'we have to stop gun violence.' No, we have to stop violent criminals.
Now, there's a fury in me — I'm just being honest with you — that I'm trying to contain. Biden, the moron Senator from Delaware, taking his train back and forth and back and forth on Amtrak. Oh wow, what a guy. Anyway, so they may do by executive fiat — I'm trying to read between the lines — a national gun database. Now, why would we need a national gun database? Well, listen, we need to know who has the weapons, at all times, and how many weapons they have and what weapons they have. How come? Why? The guy that killed all those people in Newtown, Connecticut, we know who he was and we know who had the weapons, his mother. So what does this national database have to do with anything? Nothing. Absolutely nothing. Oh, okay, but we need one anyway, right? To prevent what exactly? To prevent what?
(Mark Levin Show, January 10, 2013)
The whole segment can be heard over at The Right Scoop; the transcript courtesy of Real Clear Politics.
Resistentiam Tyrannis nunc.
Resistentiam Tyrannis saecula.
[Resistance to Tyranny now.
Resistance to Tyranny forever.
13 January 2013 @ 20:15 20:15
Calling Biden a moron? Wow, he is working to be civil. What I would call him could not be printed on this family friendly blog, and it would render it NSFW afterwards as well.
M. Thompson permalink14 January 2013 @ 00:03 00:03
In other words, we're mad as hell, and we aren't going to take it anymore.
indyjonesouthere permalink14 January 2013 @ 14:34 14:34
Progressives are on high dosage utopiates. They believe in no higher power than progressives and are damn sure they can institute heaven on earth. There is no antidote to such ignorance and arrogance. Only firepower keeps them at bay.
Comments are closed.


text:
It's now been announced officially that Dutch PWA competitor, Peter Volwater has signed with MauiSails. The wave and slalom all rounder moves from his previous home at North Sails to join the likes of designer Barry Spanier and PWA veteran Phil McGain.
Volwater's always been a consistent performer, finishing 6th overall in Slalom for the 2008 season. MauiSails will no doubt be looking for the flying Dutchman to better himself and focus on the podium in 2009.
Volwater has commented:
"It's official I am joining Maui Sails and its a special celebration for the company Maui Sails - with 30 years of sail making! Congratulations to the crew and thanks for this great opportunity!
With Barry I got a chance to try the new TR5 racing machines and was impressed with the speed and stability. I look forward to working together with the team and now I'm off to Perth, Western Australia with a brand new quiver of sails."
Peter Volwater is sponsored by MauiSails and F2.


text:
Equal Rights campaigned to
Workers with disabilities are often paid much less then fully-abled workers. Often times this is well below the
President Obama recently committed to raising the minimum wage for federal contractors to $10.10 an hour. However this will possibly exclude workers with disabilities. While numbers are unclear there are an estimated 50,000 contractors with disabilities working for LESS THAN MINIMUM WAGE! Furthermore, Obama should use this moment to reform the the 1938 Fair Labor Standards Act (FLSA) that…
My name is Nick and I was born with one hand. I've always been treated fairly and I've never felt exploited or demeaned for having a disability. I'm one of the lucky ones. What Goodwill is doing to employees with disabilities could technically happen to me. Under the 1938 Fair Labor Standards Act (FLSA), my employeer could legally pay me less because I type slow with one hand. Goodwill is using a…
A lot of noise was made about Obama's move to raise the minimum wage for federal contractors. However, many individuals with disabilities…Read More
Is the Obama Administration treating disabled workers like second-class citizens?
This is one near and dear to my heart. Take a read & please sign. There are a lot of ppl not getting proper pay for becoming disabled.…Read More


text:
23-year old brunaocr from Brazil received the surprise of a lifetime when he won the Japan Football Challenge. The Grand Prize for the FIFA.com trivia contest, which tested users' knowledge of football in Japan, was a trip for two to the Final of the FIFA Club World Cup Japan 2012 including flights, accommodation and match tickets. We met up with the young Sao Paulo local to talk about his experience in Japan.
FIFA.com: So brunaocr, first off, what were you doing when you discovered that you had won the contest?
brunaocr: I remember it vividly. I had just arrived home after having been out at a bar with friends. I checked my emails and saw the message headline from FIFA. I suddenly got goose bumps. I read the message then got up and ran to tell my mom I was going to Japan! She didn't believe me of course and asked for proof. I called my friend immediately to tell him we were going to Japan. I want to take this opportunity to thank FIFA.com for creating such a significant moment in out lives. Thank you!
You're very welcome! How was your trip?
The trip to Japan was the first time that I have travelled outside of Brazil. I was totally dazzled. Japan is a sensational place with such a different culture to my own. The stadium in Yokohama was so different to what we have in Brazil.
As a Brazilian it must have been particularly special to watch Corinthians play Chelsea in the final.
You're wrong about that! [Laughing] I am crazy about their biggest rival, Sao Paulo. I was there to cheer for Chelsea! Unfortunately I didn't provide luck to my Chelsea countryman David Luiz and Ramires.
What was the atmosphere like at the game?
The temperature was so cold but the celebrations and support didn't stop for a minute.
Did you ever imagine that winning a contest on FIFA.com would send you overseas to watch a game of football?
The thought that I could win never crossed my mind. So much so that I decided to play the quiz just to test my knowledge. And then, on 12 October, on Children's Day in Brazil, I received an e-mail informing me that I had won. For a grown-up kid, there couldn't have been a better gift!
Were there many Brazilians at the tournament?
Yes, there were so many! The majority of the guests at our hotel were in fact Brazilians. But as a Sao Paulo fan in the midst of all those Corinthians supporters, the tone always turned to our great Brazilian rivalry.
What were the top three highlights of your trip?
The moment I picked up our tickets for the final, arriving at the stadium in Yokohama and the way we were received by the Japanese people who were always so hospitable to us.
Now it's the world's turn to visit Brazil for the FIFA Confederations Cup 2013. What can visitors expect?
Visitors to Brazil can expect to be welcomed and received in the best way ever. With certainty, they can also expect to see the best football in the world, Brazilian football!


text:
I decided yesterday I still wanted to be able to say I love you when they were at school so I decided to whip up a quick batch of Rice Krispie treats(they take five minutes not including cooling time but only 5 hands on minutes) & for my several mommy friends that saw me running around at the near end of the school day you know 5 minutes was about what I had.
Take the treats cut them into squares and place them on squares of Saran Wrap...like so(perfection is not necessary, I'm chanting this in my head as I see this not so square treat):
Wrap it up into a sweet little bundle:
Add washi tape(use a lighter color):
Write a quick little note or words of encouragement on the washi tape with a permanent marker:
Place all your wrapped treats into an air tight container and you are ready for a week or so of lunches depending on the amount of children you have!
Be Awesome,
PS As I was doing this I had my children all thanking me for them-I know they knew I had been thinking of them and I love them. To adjust a quote a bit "show love and if necessary use words" (but say I love you to them as much as possible too)


text:
SPEECH TITLES AND/OR TOPICS Click Here for Detailed Description
Celebrity | Current Events | Media | After Dinner Speaker | Author | Economy | Ethics | Healthcare | Moderator | Politics
John Stossel joined Fox Business Network (FBN) in 2009. He is the host of "Stossel" (Thursdays at 9 PM/ET), a weekly program highlighting current consumer issues with a libertarian viewpoint. Stossel also appears regularly on Fox News Channel (FNC) providing signature analysis.
Prior to joining FBN, Stossel co-anchored ABCs primetime newsmagazine show, "20/20." There, he contributed in-depth special reports and recurring segments on a variety of consumer topics, from pop culture to government and business. His "John Stossel specials" asked tough questions facing Americans today: "Sick in America" delved into the debate between private vs. government health care; "Stupid in America" exposed the government school monopoly; "John Stossel Goes to Washington" revealed government growth under both parties, while "Hype" exposed media distortions.
John Stossels economic programs have been adapted into teaching kits by a non-profit organization, "Stossel in the Classroom." High school teachers in American public schools now use the videos to help educate their students on economics and economic freedom. They are seen by more than 12 million students every year. Stossel has received 19 Emmy Awards and has been honored five times for excellence in consumer reporting by the National Press Club. Other honors include the George Polk Award for Outstanding Local Reporting and the George Foster Peabody Award. The Dallas Morning News named him the "the most consistently thought- provoking TV reporter of our time" and the Orlando Sentinel said he "has the gift for entertaining while saying something profound."
Earlier in his career, Mr. Stossel served as consumer editor for "Good Morning America" and as a reporter at WCBS-TV in New York City. His first job in journalism was as a researcher for KGW-TV (NBC) in Portland, Ore.
John Stossel is a graduate of Princeton University, with a B.A. in psychology.
BOOKS Search For A Book


text:
Leica Gallery Istanbul
The gallery is located in the historic buildings of Bomontiada (The Historic Brewery in Bomonti) which offers a perfect mix of art, culture, music and gastronomy.
The Leica Gallery Istanbul aims to become a hub for the photography world in Turkey and to demonstrate the creative potential of Turkey to the international art scene. The Leica Gallery Istanbul's program includes internationally renowned photographers as well as local artists who create challenging work that either have gained international recognition or await discovery. It aims to spread a deeper understanding of photography to a wider audience extending the Leica tradition and vision in the region. As such, it will be a unique gallery in Turkey, dedicated to photography only. VIP lounge offers unique product sales rooms. Academy and customer services are offered by a classroom, a professional studio, a post processing work area with printing facilities.
Leica Gallery Istanbul
Tarihi Bomonti Bira Fabrikası,
Birahane Sok., No:1/C
Bomonti, Sisli 34380
Istanbul, Turkey
+90 212 230 8898
E-Mail: email@example.com
Opening hours:
Tuesday - Sunday 11.00 am - 7.00 pm
Monday closed


text:
Page 1
|1 of 4
This page
FINDING NEW DIRECTORS The Law of Supply and Demand by ABRAHAM NAD/Publisher, Directorship What kinds of directors will we need in the 1980's and where will they come from? To answer these questions, we must look at where we stand today in developing the kinds of boards which will satisfy public expectations. In fact, determining whose public ex-pectations must be satisfied is a major question for the 1980's. This is not an academic question. The answer will significantly affect the kinds of board structures we will have in 1990 and how directors' re-sponsibilities will be defined. Pres-sures for change are being exert-ed continuously-by the federal government, by religious groups and social-action organizations, and by shareholders holding traditional views of the fiduciary responsibility of directors and officers. Groups such as the Business Roundtable, the Am-erican Society of Corporate Secre-taries, and the American Bar Associa-tion also have been heavily involved in the ongoing debate over the direc-tion of change. Enter the SEC There is no question, however, that the principal impetus for change has come from the Securities and Exchange Commission. The SEC has been aided and abetted by Congress—particularly in the Foreign Corrupt Practices Act of 1977, a law which most people now agree does considerably less to eliminate overseas bribery than it does to put the SEC into the accounting and auditing departments of every domestic company reporting to the commission. But the SEC has been active in the courts as well No one should forget the Texas Gulf Sulphur case of the late I960's, or BarChris, Stirling Homex, or Penn Central. The commission also has used with considerable effect the power of consent decrees, and it has been able to persuade companies to make substantive changes in the composi-tion, structure, and operations of their boards. In many cases, it has required them to establish audit committees with very specific duties. In addition, the SEC's corporate governance inquiry, which began in April 1977 and is continuing, has been a major force for change. Two annual rounds of rule changes for proxy statement disclosure have taken place already, and a third-round report is expected from the commission this year. The State of the Art Today Under pressure—although voluntarily in many cases, with no hint of pressure—corporations themselves have changed the way their boards work. General Motors, for example, established a nominating committee in 1972, becoming one of the first corporations to do so. Of such committees today, General Motors has one of the most highly devel-oped. in 1968, Texas Instruments adopted a board structure which is now well known. And others, such as Connecticut General Insurance Company, Mead Corporation, and Armco Steel, are continuing to evolve the role of their boards of directors and are establishing suitable com-mittee structures. But generalizations can be mis-leading, considering the number and diversity of publicly owned corporations in the U.S. Even within the ranks of the Fortune 500 indus-trials, practices vary considerably with respect to the size of boards, the proportion of insiders to outsiders. 4.1
Object Description
Finding new directors: The Law of supply and demand
Nad, Abraham
Boards of directors
|Illustrations not included in Web version
Tempo, Vol. 26, no. 2 (1980), p. 43-46
|Originally published by: Touche Ross, & Co.
|Copyright and permission to republish held by: Deloitte
|PDF page image with corrected OCR scanned at 400 dpi
|Deloitte Digital Collection
|Digital Publisher
|University of Mississippi Library. Accounting Collection
|Date-Digitally Created


text:
Subscribe to Carbon News for a year of exclusive, latest news on the carbon markets, policy development and business action for just $600 (excl GST).
Carbon News publishes 48 weeks a year, bringing you:
Special bulletins covering breaking news.
Login access to our website.
Exclusive access to our data base of more than 14,000 stories, going right back to the start of the Emissions Trading Scheme.
Treat yourself to the advantage of a specialist, timely information service by subscribing right now - with our 7 day FREE TRIAL!
Latest announcements: file yours to firstname.lastname@example.com
Air NZ wins sustainable business award
25 Oct 19 - Air New Zealand has been recognised at the New Zealand Tourism Awards for its...
YHA celebrates carbon footprint reduction
23 Oct 19 - YHA New Zealand has reconfirmed its carboNZero certification by celebrating a...
Ports of Auckland buys world-first electric tug
5 Aug 19 - Ports of Auckland has signed a contract with Dutch company Damen Shipyards to...
Gene editing has crucial role in cutting emissions
30 Jul 19 - Gene editing has a crucial role to play in reducing emissions to deal with...
LGNZ gets clear climate message from school activists
26 Jul 19 - School Strike 4 Climate NZ organisers Sophie Handford and Raven Maeder...
|More News Direct