Multidimensional Arrays in perl

August 16th, 2012

Can any one explain me how to handle multidimensional array?

Well, let's just quickly review what an array is. An array is a variable that holds a list of scalar values.

my @array = (1, 2, 3, 'four');

To access a single element of this array, we use a subscript. In perl a subscript is enclosed in square brackets [ ]. To print the first element of @array we write:

print $array[0];

We use the scalar ($) prefix because we are referring to 1 value and we use a subscript of 0 because all arrays start with 0 as the first item (unless we change the value of mumble mumble mumble, which is deprecated).

Since an array can only hold a list of scalar values, it cannot hold an array (which is not a scalar) and multidimensional arrays are not possible in perl.

Let's take a short intermission here while we catch our breath.

This break is being sponsored by that wonderful little scalar - The Reference.

If you have done any assembler programming, you are familiar with indirect addressing. References are similar. (Okay, maybe not.) They allow us to refer to a scalar, array, hash, or any object indirectly.

What's more, they allow us to refer to these variables with a single scalar value. (Sort of like referring to a human as 'her' instead of 'that drop dead gorgeous blonde Gertrude Rose Bertrand'.)

Let's take a look at a reference to an array. To reference @array, we precede it with \:

my @array = (1, 2, 3, 'four');
my $reference = \@array;
print $reference;

prints:

ARRAY(0x1a6527c)

Note, that if we increase the size of @array by 1000 elements, the reference stays the same:

my @array = (1, 2, 3, 'four');
my $reference = \@array;
print $reference;
push @array, (1 .. 1000);
$reference = \@array;
print $reference;

prints:

ARRAY(0x1a6527c)ARRAY(0x1a6527c)

We can refer to an element of an array reference with the arrow (->) notation:

my @array = (1, 2, 3, 'four');
my $reference = \@array;
print $reference->[0];

prints:

1

Oh another thing, a reference refers to the original variable, if you change an element in a reference you also change it the original variable or object which is sometimes referred to as the referent.

my @array = (1, 2, 3, 'four');
my $reference = \@array;
$reference->[0] = 'one';
print "@array";

prints:

one 2 3 four

(*disclaimer:all variables in the preceding examples are fictitious. Any resemblance to real variables is purely coincidental. References will not be directly (or indirectly) liable for any similarities to real variables.)

This preceding break was sponsored by that wonderful little scalar - The Reference.

Well, now that your finished buying your popcorn and staring at that drop dead gorgeous blonde Gertrude Rose Bertrand. Let's look at a way to have multidimensional arrays and still use perl.

You may want to read a little about references before continuing. Perlref has some stuff in it you'll find useful. (I'm far to busy to mention them here!)

Since a reference is a scalar and an array holds a list of scalars, an array could hold a list references. Now, an array reference can refer to an element of the array it refers to with the arrow notation (->) just like we did with @array before the intermission.

Let's review:

my @array = (1, 2, 3, 'four');
print $array[0];

prints:

1

my @array = (1, 2, 3, 'four');
my $reference = \@array;
print $reference->[0];

prints:

1

And for more than one dimension:

my @array1 = (1, 2, 3, 'four');
my $reference1 = \@array1;
my @array2 = ('one', 'two', 'three', 4);
my $reference2 = \@array2;
my @array = ($reference1, $reference2);

# this refers to the first item of the first array:
print $array[0]->[0];

prints:

1

Okay. $array[0] refers to $reference1 and a reference to an array can use arrow notation to refer to it's elements.

$reference1->[0] refers to @array1's first element. Using a little algebra we can replace like terms. $reference1 = $array[0], so $reference1->[0] is the same as $array[0]->[0].

(Please, take a moment to write a nice email to your under appreciated algebra teacher. We'll wait for you.)

You wrote to Gertrude, didn't you? (Shame!)

Let's take a look at a reference to an array that has no name. A nameless array is (drum roll, please) anonymous. An anonymous array in perl is constructed using square brackets [ ].

Named:

my @array1 = (1, 2, 3, 'four');
my $reference1 = \@array1;

Anonymous:

my $reference1 = [1, 2, 3, 'four'];

So we could rewrite:

my @array1 = (1, 2, 3, 'four');
my $reference1 = \@array1;
my @array2 = ('one', 'two', 'three', 4);
my $reference2 = \@array2;
my @array = ($reference1, $reference2);
print $array[0]->[0];

As:

my @array = ( [1, 2, 3, 'four'], ['one', 'two', 'three', 4] );
print $array[0]->[0];

prints:

1

"Trust in the Algebra, Luke"

Perl allows us to drop the -> between subscripts, so we can also write this as:

my @array = ([1, 2, 3, 'four'], ['one', 'two', 'three', 4]);
print $array[0][0];

prints:

1

Perldsc has a section titled 'ARRAYS OF ARRAYS' that gives more examples of declaring and generating an array of array references (a.k.a. multidimensional arrays). Note that an array can contain references to arrays of differing sizes:

my @shapes = (
[qw/circle square triangle polygon/],
[qw/red green blue yellow fuschia/]
);

Data::Dumper provides a the Dumper sub which will print an array of array references. This is a great debugging tool:

use Data::Dumper;
print Dumper \@shapes;

Here's the output one array:

$VAR1 = [
[
'circle',
'square',
'triangle',
'polygon'
],
[
'red',
'green',
'blue',
'yellow',
'fuschia'
]
];

Finally, take a look at Perllol which describes Manipulating Arrays of Arrays in Perl and Perldata, especially the part about slices (and apple pie).

Additional Perl Array Information:
Perl Array: Quick Guide to Arrays In Perl
How can I extract the matches from the Perl match operator into variables?

V Belt Pulley Alignment

August 15th, 2012

I'm reproducing an article here (referred to in the link URL) so I make sure I have it even if something happens to the original.  This is NOT my own work.

 

V belt pulley alignment

(General information about the tutorial)
The fallowing was used GM 350 crate engine, aftermarket high flow short style water pump, aftermarket harmonic balancer, aftermarket alternator 100 amp internal regulator, rebuilt power steering pump and all pulleys & mounting brackets from a 72 Chevy C10 350 engine. Measurements you view in the attached pictures are not exact, all shims where installed prior to the pictures, just trying to show where to take measurements from and I was holding both the camera and tape at the same time when taking the pictures.

There is no way this tutorial is going to show all possible pulley configurations or correct damaged pulleys and brackets. But you should be able to see how this technique can be used to check your pulley alignment and figure out how to fix it if needed. You should be able to get your pulleys within alignment of plus or minus 1/32 of an inch. Even from the factory pulley alignment can be off.

What is needed is a straight edge that is parallel to all the pulleys to measure from.

(Making a straight edge)
I went to a hardware store and picked up a peace of angled aluminum ¾ in x ¾ in x 1/16 in thick x 36 in long. Make sure it isn’t bent, distorted, twisted or damaged in any manner you are making a straight edge.

Measure the distance between your water pump fan mounting bolts and the distance between water pump snout and the pulley that’s furthest a way form the pump. My measurements are 1-1/2 inch between mounting bolts and my Alternator to pump is aproximitly16 inches.

I added a few inches to the 16 in dimension and cut the straight edge material to approximately 19 inches long and laid out the 5/16 to 11/32 DIA holes a few inches from the end of the straight edge.

Ref pic # 1 I recommend to use a scrap peace of 2 x 4 wood to support the straight edge for cutting and drilling also start drilling the holes with smaller drill bits and work your way up to full size to prevent distorting the straight edge material. After Drilling make sure that any burs are removed so that the straight edge will sit flat on the mounting surface.

(Mounting the straight edge)
If you have your engine on an engine stand mount the straight edge on the fan spacer as shown in ref pic #2.

If you have the engine in the truck remove the fan and the fan shroud. You will also have to drill some additional mounting holes in the straight edge (making it shorter) to obtain clearance from the frame, cross member and hoses. This will require you to change the mounting position as you take the measurements. If you feel that there is not enough room between the radiator and the straight edge to take measurements remove the fan spacer and mount the straight edge to the front of the pulley with shorter bolts.

(Taking measurements)
Your drive belts should be loose enough that you can turn the water pump pulley by hand never turn this pulley using the straight edge it could bend the straight edge.

Turn the straight edge as shown in the ref pic’s #3, 4, 5, 6 & 7 taking measurements between straight edge and the drive belt edge keeping the tape measure square to the straight edge. If you have high performance pulleys (pulleys with deep groves) where the belt edge is not above the pulley, take the measurement at the belt edge run as close as possible to the particular pulley.

(What, where and how to shim)
Your measurements will probably be different than mine even if you use the same parts and pulley configuration. I prefer to use decimal numbers rather than fractions so all reference numbers below have been converted (top fraction # divided by the lower # then rounded to the third number past the decimal point). I also prefer to use a caliper or micrometer to measure my shim thickness not to say you can’t use a tape measure and fractions its just easer math. If you need to make a taper shim that will be described below the taper is so small you will need a caliper or micrometer to measure it.

Start with the most aft belt, on this configuration it’s the crankshaft, water pump and alternator pulleys (my ref numbers between the straight edge and belt edge are)
Crankshaft pulley -----4-3/8 = 4.375
Water pump pulley----4-3/16 = 4.188
Alternator pulley------4-5/16 = 4.313
Normally you will only have to shim behind one of the pulleys for the crankshaft or the water pump if required (subtract the smaller number from the larger and this is the shim thickness required). Recommend that you use manufactured shims for shimming the crankshaft or water pump pulleys if available, you can find them at JEG’S, Summit or performance shops. I will need a 0.187 thick shim = 3/16 thick shim behind the crankshaft pulley (ref pic # 10 manufactured 1/8 thick and 1/16 thick = 3/16 thick shim behind the crankshaft pulley).

Now for the Alternator pulley. On some Alternators you will not be able to move the a Alternator aft and this will require you to move both the crankshaft and water pump pulleys forward to match the Alternator. On this mount the Alternator can be moved aft with a washer or forward with shims between the block and the mount (ref pic’s # 8 & 10). If you do shim the Alternator aft make sure the bolt head clears the belt. Normally you will have to shim the Alternator forward if required. I needed to shim the Alternator forward, subtracting the ref number 4.188 water pump pulley from the alternator ref number 4.313 showing that I need a 0.125 shim = 1/8 shim between the block and Alternator mount. I found some 0.059 thick material in the shop and made two shims to use between the block and the mount (0.059 + 0.059 = 0.118 thick shim, close enough for me)

I Recommend that you do all the shimming required on the aft most belt pulleys before moving on to calculate the next belt forward because shimming the crankshaft or water pump pulleys may change how much shim is required for other pulleys.

Now, on to the power steering pump pulley alignment to the crankshaft pulley. The power steering pump can not be moved aft with shimming. Normally if shimming is required, it will be forward. I also have an additional problem with the power steering pump pulley. It will need to be moved forward and it is cocked not parallel to the crankshaft pulley so I will need to make a tapered shim. (Ref pic’s # 9 & 11 for where the shim will be installed, where the measurements will be taken and the math to calculate the shim).

Since my taper is from right to left, the first measurements (B) & (C) are taken between the straight edge and the edge of the pulley, (this is different measurements than above it’s to the pulley edge not the belt edge) subtract the smaller # from the larger #, and it showed that I had a .125 taper. The DIA of the pulley is 6 inches divide the .125 taper by 6 and generate a taper scale (this is just the taper not the total shim thickness)

Now take the measurement (A) between the straight edge and the belt edge (this measurement is straight up from the pulley shaft) then take the measurement between the straight edge and the crankshaft pulley belt edge, subtract the smaller # from the larger #, and it showed that I had a total shim needed would be .156 (this is the total shim needed with out the taper).

Putting the taper calculations on the total shim required. First subtract the taper scale # from the center of the pulley DIA .062 from the total shim .156 = .094 The shim is 1 inch wide that will be used, so calculate the taper at 1 inch = .073 tapering to .052 add .094 to both of the numbers = .167 LH edge to .146 RH edge (this is the total shim thickness required with the taper). I found some aluminum material in the shop that is .0625 thick so I will be making a shim stack of 3 with one of the shims having the taper.

Yes, there are different ways to calculate the total taper shim requirements just trying to show the relationships between the pulley shaft and the shim required.

After installing the shims for the power steering pump it was required to elongate the aft mount hole a small amount so the bolt could be installed.

(Shim general information)
You should be able to find shim material around your shop, hardware store or from performance shops for manufactured shims.

Shims can be stacked to obtain the total thickness required.

When creating the shims make them to a size that will cover the brackets mounting area.

Tapered shims more than .030 inch taper over 1 inch you probably have a bent or damaged bracket and should not be used if it cant be straightened.

If the shim thickness is up around ¼ inch or more you probably have the wrong bracket or pulley. Not to say you can’t make a shim that will work you just have to be careful that everything clears and that your mounting bolts are long enough.

After shimming the primary mount you will need to look at the secondary/support mountings to see if they need shimming or modification.

After all shimming is complete and you have re-checked your alignment recommend pulling all the shims out and painting them to prevent corrosion.

(The end maybe)
If anyone sees where clarification or additional information is needed in this tutorial please feel free to contribute

 

Name:  strate-edage-1.jpg Views: 4088 Size:  72.2 KB

Name:  strate-edage-2.jpg Views: 4041 Size:  68.5 KB

Name:  Strate-edge-3.jpg Views: 4046 Size:  94.0 KB

Carputer

August 8th, 2012

Headlight Restoration

August 1st, 2012

I've done a fair amount of research into restoring headlights over the past few years and never ended up doing the restoration since the information I found was incomplete, contradictory, or just plain wrong.  Recently I found a post (link and complete text below) that completely explains the issue as well as supplying the recommended solution.  For the sake of brevity, I'll extract the most relevant information, but the entire post from ray6 is worth a read.

Problem: Yellowing or hazing of headlights

Reason: Polycarbonate (trade name Lexan) is the material used on headlights starting in 1989.  Polycarbonate is susceptible to UV rays (sunlight) and will break down with direct exposure so the headlights are treated with a protective coating.  The discoloration is the coating breaking down over time (i.e. doing it's job).

Solution: Remove the failed coating (I will detail the steps I used for this below) and apply a new protective coating.  Unfortunately, it is not cost effective to reapply the manufacturers coating so the current recommendation (also by ray6) is Delta Kits Infinity 4.1 coating.  Here is a link to a youtube video with a nice example of the restoration process, though they use different materials. If the UV coating is not applied, your headlights will rapidly return to their damaged state and the restoration process will be much more difficult as you will have to remove the much more durable polycarbonate material rather than a coating.

Materials required for restoration:

  1. Wet/Dry sandpaper (400,1000,2000/2500,3000/3500)
  2. Rubbing Compound
  3. Polishing Compound
  4. Flexible Sanding Block
  5. Infinity 4.1 Coating
  6. Microfiber Towels
  7. Spray Bottle
  8. Foam Paint Brush

Restoration procedure:

  1. Remove headlight or tape off the area of the car surrounding the headlight
  2. IMPORTANT: whenever doing any sanding, the headlight and sandpaper should be wet.  You can dip the paper in water or use a spray bottle filled with water directly on the headlight.  Also, it's best to sand in a single direction (side to side) rather than random or in circles.
  3. Use the 400 grit sandpaper gently to remove the bulk of the failed coating.  Being too agressive with the 400 will result in deep scratches that will require a lot more work with the other sandpaper to work out
  4. Use the 1000 grit sandpaper to remove any remaining coating and begin to remove the scratches left by the 400 grit sandpaper.  At the end of this step, the surface should be very smooth, though still quite hazy.
  5. Use the 2000 grit sandpaper to continue the polishing process. As you use this, the haze will begin to fade some, though it will not be clear until the rubbing/polishing process.
  6. Use the 3000 grit sandpaper as the final sanding stage.  The more work you do here, the easier the rubbing/polishing process will be.
  7. Use the rubbing compound to really start to make the lens clear again.  Apply a small amount to a towel (I used microfiber) and rub it in until it disappears.  By the end of this step, the scratches should be gone from the lens, though it won't be crystal clear.
  8. Use the polishing compound to finalize the restoration process.  At the end of this step, the headlight should essentially look brand new.  If there are any scratches left, reapply rubbing compound then polishing to those areas.
  9. Make sure the headlight is clean and free of any foreign material then apply the Infinity Coating (mix according to instructions) using the foam paint brush.  Apply by first using horizontal strokes then cross wiping vertically.  Do this very quickly as the coating cures rapidly.  It will go on milky white and streaky - try to minimize the streaks, however note that they do flatten out some and the coating will turn clear as it dries.  It is recommended to apply two coats of Infinity 4.1 with appropriate dry time between coats (I waited 1-2 hours).

 

 

Post from ray6: http://www.autogeekonline.net/forum/show-n-shine/37701-headlight-sealant-spar-urethane-vs-opti-coat-2-0-a-23.html

-->

I see lots of questions on headlight restoration on this forum relating to which system is best or what's the best product.

I'd like to share some information about headlight restoration. Although I work for a headlight restoration supplies manufacturer, the products my company distributes are not available to the retail public, so you really can't buy these products unless you are in the restoration business, and in any case I'll keep it generic.

History
Starting in 1989, auto manufacturers started switching from glass sealed beam headlights to plastic headlight modules. Part of the change was pressure from the U.S. government on getting rid of the glass. Slow speed collisions with pedestrians were producing extensive injuries not due to the physycal impact per se, but more with cuts from broken glass. Another push was that manufacturers were being pushed to produce greater mileage, which requires streamlining, including headlights.

The plastic used for the outside covers of headlight assemblies is polycarbonate, trade name Lexan (also called bullet proof glass). Polycarbonate is tough and flexible and difficult to break.

Tali lights, turn signals, etc. are made from acrylic. Totally different material. Acrylic is a petroleum based product; polycarbonate is derived from natural gas.

If someone talks about acrylic headlights, be suspicious.

If you hit a piece of acrylic with a hammer it will shatter. If you hit polycarbonate, it will bend, and maybe crack. This is why it is used.

Although polycarbonate is a great material for forming complex shapes like headlights, it has two major faults. First, it will break down with UV exposure. Secondly, it is very porous so any water that gets into the polycarbonate can freeze causing micro cracks.

In order to protect the polycarbonate from moisture and UV exposure, the headlight is coated at the factory with a protective finish. This finish is a sealer, but mostly a UV adsorber. It is applied using closely controlled procedures such as electrostatic, dip, spray, etc. It consists of first a primer then the protective coating.

It is the breakdown of this coating you see as milky or yellow. The coating is doing it's job.

The UV adsorption works by convertying UV light to heat. As the molecules heat up, they eventually break their bonds with other molecules and are no longer connected. This connection is called cross-linking.

A general rule of thumb is that because the UV coating has a finite capacity to adsorb UV, the more coating (thicker) the longer the life. So this brings up an important point. If the new coating you're applying is very thin, how long can it last?

If it's just for your own headlights, there are many kits available from dozens of manufacturers, but almost all suffer from the same issue; they don't offer a real replacement coating to replace the one you removed.

Actual headlight restoration is a two step process; remove the old protective coating and replace it with a new one. The replacement coating is where nearly all D.I.Y kits and over the counter products fail. Without a new permanent coating, all your hard efforts in cleaning off the old coating are wasted time. You'll have to do it again, only this time you're down to the raw polycarbonate and the clean up is harder to do.

Headlights are very thick, about .1 to .25 inches thick depending on size and use. Off road vehicles will have a thicker coating. Some headlights have 3 tips on them that are used for headlight alignment.

When people say they want to do headlight restoration, I first ask, is it for your own use on your own car or do you want to do it as a service for a fee? There is a big difference. If you want to restore your own headlights, you can buy a kit, use toothpaste, rubbing compound, sanding, etc. It's all the same results, get the old coating off. What differs between processes is how long will it take you and how fine a finish will you get?

Will this procedure make your headlights look like new? Probably, if you get all the old coating off and don't leave any sanding scratches (and the headlight was restorable in the first place, no cracks or internal moisture). But here's the problem. You got the old coating off. You either hand sanded, machine sanded, chemically stripped, used compound, toothpaste,grandma's secret salsa recipe, etc. Now what? If you're willing to keep a layer of good quality wax on your headlights and wax after every carwash, your headlights will probably look like new forever. If not, you need something more permanent.

On the otherhand, if you are offering headlight restoration as a service for a fee, the D.I.Y. kits and procedures are a waste of time. Sure, many of the kits will get the coating off, but are nothing more than a box of abrasives and compounds and maybe a drill attachment.

Many include some sort of secret sauce (called a shine restorer, sealer, protectant, UV coating, final coat, etc.) are nothing more than some sort of synthetic wax/polish with a limited lifetime.

Headlight restoration is becoming a huge market. All plastic headlights will deteriorate with time so virtually nearly any car manufactured after 1989 is a potenial customer, even some trucks that use plastic headlights. They will all break down, sooner or later. Since there are over 120 million vehicles in the U.S., you can imagine how big the market is and it is growing each year.

A key point in deteriorating headlights is the unspoken safety issue. Cloudy headlights are a major safety hazard as countless studies have shown.

There is a growing network of "pro" headlight restorers out there. By pro I mean they restore headlights correctly by removing the old coating and replacing it with a new, long lasting one. Products and procedures may differ, but the end results are similar; a like new looking headlight with a real, long lasting protective coating, usually with a warranty of 1 to 3 years. We know this because we sell products to them every day. There aren't many, but the numbers are growing.

The field applied new coating can never match the original, because you can't duplicate the factory coating in the field, and even if you could (primer, cure, coat, cure with UV, IR) it would be cost prohibitive.

The reason you're not familiar with these products is they are not produced for the retail market and aren't available over the counter. If you are interested in restoring headlights as a business, you should consider the following:

Separate headlight restoration into 2 parts; remove the old coating, replace it with a new one.
Removing the old coating-
Can be done with a chemical strip, abrasive, razor blade, or a combination.

Goal: Remove the old coating in the shortst time and at the lowest cost.
Most pros don't use rotary devices like electric drills. They are hard to control and can cause damage. Battery operated drills are the worst because they were never designed for this task. You'll need extra batteries, probably a car charger, etc. so it can get expensive. Instead, pros will hand sand (usually in combination with a chemical stripper) or use a small R/A sander/polisher (3" is best) available from Metabo, Groits and others.
If sanding, abrasive quality does matter. More expensive abrasives are usually cheaper in the long run because they last longer. One of the best is 3M, but overpriced in my opinion. Others are Abralon, Norton, Mirka and Indasa. It may be difficult to buy these products locally, but redily available on the internet.

Applying a new coating-
There are probably 15 to 20 coatings available, all with advantages and disadvantages. It all depends on your application limits, customer expectations, cost and market. Different applications are wipe on or spray on.

All coatings need to be cured after application. This is done in different ways. Some are 2K, curing by chemical reaction, similar to fiberglass resin. Some cure by UV exposure, either from UV lamps or direct sunlight. Many cure by oxygen absorption, such as polyurethanes (MinWax/mineral spirits is an example).

A few manufacturers are Delts Kits, Dvelup, Speedokote, Momentive, Brite Lites, Semtec, Medallion, etc. They each have their pros and cons.

If you want to do headlight restoration as a business, do your research. What's the competition in your area? Do they offer a written guarantee? How much do they charge? A pro job will probably sell for $40-160 depending on the application. Doing multiple cars on a lot is much different than doing a Lexus for a high end detailer.

When someone advertises a restoration for $30-40 and they come to you, I wonder how they make money or are they the buff and run type (sand/polish/add wax/run)?

In choosing a system and product line, you don't have to buy someone's system, although this may help when starting out. But you do have to develop the skill set and get the proper tools.

In considering a process, ask yourself the following questions:

Am I going to be mobile? If so, I must carry a bodacious air compressor to use pneumatic tools such as furnished in #M's pro kit (it also doesn't have a real protective coating). If I'll be sanding with an electric sander, I'll need to carry a generator or an inverter hooked to my vehicles battery. Inverters are problematic because car batteries are not designed for this kind of load. You really need a deep cycle battery like the type used on boats and golf carts.

Does the coating require spraying? If so, I'll have to tape and mask the headlight. If it's windy or dusty, you'll have problems. If it's indoors, like in a shop, I'll need a resperator. Spray coatings are available, but fairly expensive when you consider that that 6 oz. can for $48 really only contains about 2 oz. of usable material; 2 oz. is propellant and spraying is about 50% efficient at best.

Do I need UV lamps to cure? UV lamps are expensive with short lifetimes and will require power. Sunlight may be used, but what about cloudy days?

Will the coating cure fast enough for my customer? If you're doing jobs on a lot you usually aren't concerned with cure time. Some of thebest coatings air cure, but take 30 to 60 min. to cure. Some 2K coatings will cure in less than 5 minutes.

What kind of warranty (if any) will I offer? You beter have a pretty good idea how long your coating will last before issuing a warranty. Your warranty has to be worse case, such as a PT cruiser (horizontal surface) in Florida (strong UV) parked facing south and outside 24/7. In Florida you would probably warrant it for 1 year. In Oregon, with all other factors being equal, it would probably last 5 years.

Referrals-
What most restorers find over time is that a large percentage of new customers come to them by referrals from previous customers. A satisfied customer is your best (and free) salesman.

So, if you've read this far, you are to be congradulated in your interest level.

If you're looking into headlight restoration, your best bet is to start at the keyboard and research. Try different products and procedures. One way to learn your art is to do restorations for free to friends and family. Also consider doing restorations for non-profits such as Goodwill, Salvation Army, etc. You can learn on their cars and deduct your going rate on your taxes. There are additional markets such as government fleets, taxi companies, trucking fleets, etc.

We have a customer that does restorations for all state vehicles in his state including emergency vehicles (like light bars on police, fire and ambulences). These are made of acrylic, but are even easier to restore than polycarbonate.
ray6

Resources for writing Android apps

May 1st, 2012