text: "IN TIME" (2011-109 min.). In the not-too-distant future, the aging gene has been switched off. To avoid overpopulation, time has become the currency with which people pay for necessities and luxuries. The rich can live forever, while the rest negotiate for their immortality. Will Salas (Justin Timberlake), a poor young man who comes into a fortune of time, ends up on the run from a police force known as "time keepers." Producer/director Andrew (Gattaca) Niccol also scripted. 7:30 p.m.


text:
Firestone Ride-Rite air helper springs, also known as Ride-Rite air bags, are designed to provide extra support to your vehicles suspension through the use of air pressure. Ride-Rite kits help keep your heavily loaded vehicle level which is essential for maintaining steering control and braking effectiveness. They also help reduce tire wear and keep your headlight beams on the road.
Ride-Rite kits use Firestones popular double convoluted air springs. They offer maximum load support for years. The air springs can be adjusted to changing loads, so if you are not towing your trailer or hauling a heavy load you can reduce the air pressure in the air springs and have minimal to no impact on the ride. Need to haul you 5th wheel or gooseneck trailer and don't want the rear of your truck to sag? Simply increase the air pressure in your air bags and you are good to go.
Firestone Ride-Rite Air Spring and Air Bag kits:
Firestone Ride-Rite kits are specifically designed to maximize the safe load carrying capacity and ride quality of your specific vehicle. Many of the kits today are "No-Drill" applications so you don't have to worry about drilling the frame and they can be installed in much less time. A pair of Ride-Rite air bags can provide up 5,000 pounds of leveling capacity. Firestone has Ride-Rite kits that mount on your leaf springs or axle, depending on the application.
At TruckSpring we have been selling and installing Firestone Ride-Rite kits for years. We are an authorized Firestone warehouse distributor and installer. If you have any questions before your purchase or need help installing your Ride-Rite kit, we can help. We have trained technicians and counter people that know the ins and outs of all the kits. Feel free to call us at 1-800-358-4751 or email us at firstname.lastname@example.com if you have any questions.
Since 1926, Michigan Truck Spring has been installing and using the same high quality
truck parts that you'll find on our website. In fact, we install everything we sell,
and have been selling online as TruckSpring.com since 2001.
Whether you're looking to overhaul your truck suspension, or make a minor repair,
our mission is simple - to make sure you have the quality parts you need, and to
become your trusted source for truck parts.
Located in the heart of the Midwest, Michigan Truck Spring employees are trained
technicians in truck parts and repair. We're here to help, whether it's selecting
the right product for your vehicle, an installation question, or a maintenance question,
we'll help you through your project. We work hard to make sure you get the right
parts for the job. You won't find a company more passionate about truck parts than
Michigan Truck Spring.
All rights reserved. TruckSpring.com is a trademark of Michigan Truck Spring, Inc.
Terms of use Privacy policy

subset: commoncrawl


text:
Do you want an easy way to give the rear of your vehicle a few inches of lift? These cast lift blocks can be installed easily and can be done in just a few minutes. The blocks are inserted between the rear axle and the OEM leaf springs. The zinc plated U-Bolts are custom designed for your make and model so they can replace the factory U-bolts.
If you need help finding the parts that are correct for your application, call our suspension experts at 1-800-358-4751.
Since 1926, Michigan Truck Spring has been installing and using the same high quality
truck parts that you'll find on our website. In fact, we install everything we sell,
and have been selling online as TruckSpring.com since 2001.
Whether you're looking to overhaul your truck suspension, or make a minor repair,
our mission is simple - to make sure you have the quality parts you need, and to
become your trusted source for truck parts.
Located in the heart of the Midwest, Michigan Truck Spring employees are trained
technicians in truck parts and repair. We're here to help, whether it's selecting
the right product for your vehicle, an installation question, or a maintenance question,
we'll help you through your project. We work hard to make sure you get the right
parts for the job. You won't find a company more passionate about truck parts than
Michigan Truck Spring.
All rights reserved. TruckSpring.com is a trademark of Michigan Truck Spring, Inc.
Terms of use Privacy policy


text:
Tall Tailored Twill Boot Cut Pants in Julie Fit
Tall Tailored Twill Boot Cut Pants in Julie Fit
$29 .88
Online Exclusive
 All the ease of a jean - with the look of a pant. Clean, comfortable and versatile, this boot cut pair is crafted with soft stretch cotton that smoothes and flatters for a tailored look that's refined enough for the office - and laid-back enough for the weekend. Our curvy fit, fits narrow at the waistband with a slightly curved shape at hips. Front zip with button closure. Wide belt loops. Five-pocket styling. Tonal topstitching. 36" inseam.
Style #337146
97% Cotton, 3% Spandex
Machine Washable


text:
- Compare Your Salary
- Evaluate a Job Offer
- Price a New Hire
- Give a Raise
- Benchmark Jobs
- Create a Comp Plan
Job (Number Reporting)
National Data (
XAll compensation data shown are gross, national 10th to 90th percentile ranges. Pay can vary greatly by location. To view local data, take the PayScale survey.)
|$22,125 - $47,413
|Total Pay
|$22,125 - $47,413
Precise Range (
XPrecise ranges are calculated based on validated data submitted by employees in this job at this company.) Estimated Range (
XWhen PayScale has limited employee-submitted data, we base estimated ranges on a broader set of relevant employee profiles to calculate the most accurate ranges for this job at this company.)
Country: United States | Currency: USD | Updated: 29 Oct 2014 | Individuals Reporting: 7
Thanks! We'll send you a welcome newsletter as soon as we can.
In the meantime, check out our research center.
Looks like your email already exists in our database.
Please log in here.
You are already logged in.
The Robots Are Coming! 5 Jobs That Will Be Replaced in the Future
If you're a working person, you probably already know that you're not indispensable. There's always someone coming up behind you on the ladder, with n...>
6 Reasons Why You Should Continue Your Job Search in December
If you think that December is a month to slack on your job search, you may be seriously mistaken. Don't lose out on what can be a great month to land ...>
State Supreme Court Hands Down $188M Judgment Against Wal-Mart
Hot on the heels of the recent Supreme Court decision against Amazon workers, the Pennsylvania Supreme Court just upheld the 2007 judgment for $188 m...>
Tell us about your current job and your skillset, and we'll let you know how much your employers are paying in your area.


text:
Thursday, December 25, 2014
Follow us:
Time Warner Cable video customers:Sign in with your TWC ID to access our video clips.
Sign in
Free Video Views Remaining
To get you to the stories you care about, we are offering everyone 10 video views per month.
Watch Video
Access to our video is always free for Time Warner Cable video customers who login with their TWC ID.
To view our videos, you need to
install Adobe Flash 9 or above. Install now.
Then come back here and refresh the page.
After Governor Andrew Cuomo laid out a plan for campaign finance reform in his State of the State Address, there has been little talk of the issue in Albany. Although Cuomo has raked in millions in campaign funds, he isn't spending the money to get his agenda passed. Our Nick Reisman has more on how the Governor is relying on others to get his message out.
ALBANY, N.Y. -- In January, Governor Andrew Cuomo told lawmakers he planned a new, expansive push on cleaning up the state's campaign finance laws. Music to the ears of good government advocates are proposals that would
Cuomo said, "Implement a public finance system based on New York City. It works well in New York City, it will work well in New York State."
And he proposed a tough disclosure law and an end to sky-high contribution limits.
"We need to lower the contribution limits for all offices, political parties, housekeeping accounts, because the limits are just too high," Cuomo said. But Cuomo is also sitting on a ton cash raised for a re-election that's well over a year away. He's got $22 million in the bank and he wants more. Cuomo this year is pushing for an aggressive fundraising schedule the same year advocates believe is the ripe for campaign finance reform.
"He's always exploited the system heavily in the past more so anybody else in state government, while at the same time, being a very frequent and vocal critic of the current system. So hopefully he will succeed in his promises which he's made the past couple of years and actually this year introduce a get a bill passed," said Bill Mahoney, a NYPIRG researcher.
Unlike his first two years in office, there's no independent group backing Cuomo's budget with an expensive ad campaign. Taking the place of the Committee to Save New York is a blanket wave of ads financed by the state Democratic Party.
The benefit of Cuomo's political apparatus running the campaign is apparent.
Mahoney said, "Obviously it gives him more control over the money. It can go directly to the housekeeping committee for the state party and he can receive unlimited amounts and he can spend it however he sees fit."
The Committee to Save New York's silence comes as Cuomo emphasizes a decidedly liberal agenda like raising the state's minimum wage, a proposal the group's monied business interests have opposed. For Cuomo's part, he wasn't concerned with the lack of support from the group.
"They support what they want to support," Cuomo said. "They don't support what they don't support."
Reproduction in whole or in part without permission is prohibited.
© 1999-2014 Time Warner Cable Enterprises LLC. All Rights Reserved.
Web design and web development by Tipit.


text:
From NAS-Central Buffalo - The Linkstation Wiki
This article
Based on work by Frontalot
at Linkstationwiki.org
What's the difference between OpenLink and FreeLink? Which one is right for me?
- Both firmwares replace the original Buffalo firmware when you flash them onto your Linkstation; all Linkstation firmwares (operating systems, so-to-speak) are Linux based.
- OpenLink is our effort to provide firmware which "opens" your LinkStation, thus providing full access to the LinkStation. The OpenLink firmware is built upon the most recent official LinkStation firmware release. It retains all the stock capabilities of the official LinkStation firmware while adding a number of binaries and libraries. OpenLink is close to the look-and-feel of the Buffalo firmware, but enhanced: You can log on as root (system administrator), tweak the configuration, and install additional software. This makes OpenLink the first choice for less experienced Linux users.
- FreeLink is our effort to provide firmware which "frees" your LinkStation The FreeLink firmware is built upon the most recent official LinkStation firmware release. It replaces the stock LinkStation Linux build with the latest Debian stable build. Debian is one of the most popular Linux distributions. Debian is highly regarded for its powerful package management system and huge software repository. The price for this is that you will lose the web based configuration tool shipped with the stock firmware - if you are familiar with Linux and your LinkStation, this should be no problem (otherwise you should consider this fact).
Can I install OpenLink or FreeLink on an HD-HG300?
- Because of a perceived increase in bricked HD-HG300's at a certain point in time, some people came up with the theory that there is a series of HD-HG300 LinkStations out there which are somehow inherently broken and can't be flashed. This is a theory, there is no proof of this. The thought is that some series of the 300 gigabyte HG Linkstations will always be bricked if you attempt to flash them with OpenLink or FreeLink, because these are thought to be defective. Kuroguy has revived one of these bricked boxes via JTAG, so if you brick your box, all is not lost. The serial numbers below are not number ranges, they are single serial numbers where the last three digits have been anonymised.
- The theory says you have have one of these LinkStations if your Serial Number is below:
- 15803350910xxxx
- 45803351010xxxx
- 45803351011xxxx
- 458011650810xxx
- 458011650910xxx
- 458011650911xxx
- 45801650910xxx
- See here for more information: Non Flashable HD-HG300
Will I lose my data when installing a new firmware?
- No and yes. There are three partions of the LinkStation by default (hda1 - 394MB) (hda2 - 271MB) (hda3 - remaining). The operating system is kept on hda1, hda2 is a swap partition. The hard drive partition arrangement and data on hda3, which contains the LinkStation's Samba, Netatalk, and FTP shares, is preserved between flashes. When you flash the firmware either with updated buffalo firmware (after all that's what the firmware updater is for) or OpenLink or FreeLink the data on /dev/hda1, which includes the operating system, will be completely erased.
How can I change my LinkStation's firmware? The firmware updater won't allow me to!
- The version number for the firmware updater is contained in the file linkstation_version.txt or /etc/linkstation_release.txt. Change this number to something higher than the existing firmware version. The linkstation_version.txt firmware version number is only used for comparison to the existing firmware version number; the real firmware version is stored inside the flash firmware. Take precaution when downgrading from modified firmware to official firmware because there is version specific information (for example, passwords for extracting the firmware) that Buffalo Technology may change with an update.
I'm trying to run the firmware updater and I receive the following error: The Network Address of the Computer and the LinkStation Differ, Hence an update cannot be completed. Please change one of the IP addresses so that the Network Addresses are the same. How can I run the firmware updater?
- Usually when the LinkStation is not connected to anything it will revert to its default IP address of 192.168.11.150. To be able to connect to it and run the update you will need to set your PC to be in the same range as the unit, e.g., 192.168.11.40. If you connect the unit directly to your PC and set the IP address on the PC, you should be able to open the config screen for the LinkStation and then run the update.
- Before trying the steps above, you should disable any network interfaces (physical and virtual - e.g. those installed with VMWare) that are not connected to the network to which the LinkStation is connected. The Firmware Updater seems to only use the first network interface it finds, and there is no means of selection on the GUI.
I can't install OpenLink/FreeLink/stock firmware! The firmware updater always fails halfway through. What's wrong?
- The Windows XP firewall is the number one cause of a failed firmware update. Disable all firewalls on or between your PC and LinkStation before running the firmware updater. If your computer has 2 network cards, disable the one which isn't connected to the LinkStation.
I wish to start from scratch because my stuff is royally screwed. Where should I start ?
- Look Here: Recover a non working "bricked" Linkstation
- After you're done with those instructions, if you wish to increase partition1's size to 1G or more and make the swap 512M or more to make room for more programs, use parted or fdisk to delete p2&p3&p4 that the Linkstation created and then increase the existing p1, then recreate p2(swap type) &p3. Once p2&p3 are recreated, use this to mkswap and other things:
- Convert your PPC LinkStation into a full-blown Debian system
I downloaded a custom firmware and now telnet no longer prompts me for a password. What's going on?
- Since we don't know the stock root password and cannot overwrite the existing passwd file with a firmware flash (yet), we need an easy way to gain root access. Thus we are forced to automatically open the root shell prompt, enabling the user to make some needed changes. Once you have gained root access by changing the password of root with "passwd", open up /etc/init.d/utelnetd with
- vi /etc/init.d/utelnetd
and change:
- /sbin/utelnetd -l /bin/bash &
- to
- /sbin/utelnetd -l /bin/login &.
- Reboot your LinkStation and you're good to go.
google for "vi quick reference" if you need any help with vi.
What is the password for the powerpc-hdhlan 1.x firmware image.dat?
What is the password for the mipsel-hdhlan 2.x firmware image.dat?
- 1NIf_2yUOlRDpYZUVNqboRpMBoZwT4PzoUvOPUp6l
What is the password for the powerpc-hdhglan 1.x firmware image.dat?
What is the password for the arm9-ls-gl 1.x firmware hddrootfs.img?
- IeY8omJwGlGkIbJm2FH_MV4fLsXE8ieu0gNYwE6Ty
What is the password for the arm9-ls-gl 1.x firmware initrd.img?
- YvSInIQopeipx66t_DCdfEvfP47qeVPhNhAuSYmA4
- If this doesn't work, then try one of these:
- 1NIf_2yUOlRDpYZUVNqboRpMBoZwT4PzoUvOPUp6l
- aAhvlM1Yp7_2VSm6BhgkmTOrCN1JyE0C5Q6cB3oBB
- IeY8omJwGlGkIbJm2FH_MV4fLsXE8ieu0gNYwE6Ty
Where can I get firmware to open the HSDGL LinkStation ?
- Telnet enabled firmware is available here (direct download)
How do I change the web interface from Japanese to English?
- Edit /www/cgi-bin/mellib.pl and go down until you see this:
- Change
- $defLANGE = 'JP';
- to
- $defLANGE = 'EN';
- and save, Afterwards, the buttons on the left in the Web Interface will be in English.
- This only works for ppc/mipsel based boxes. the arm9-boxes have a completely different webinterface.
- Thanks to mindbender for these instructions
Terastation Wiki FAQ: How do I change the web interface from Japanese to English?
- See Also: I followed all tips from the FAQ-section...i disabled my Firewall, i try to directly connect the LS with a crossover-cable....i can connect to it over the webinterface, the samba shares and over telnet...but the firmware updater does not find the Linkstation....what else could be wrong?
- Chances are that your running version 2.6 of the kernel - presently, you can only flash on v2.4. Please read this thread on the forum as this matter is currently under investigation
I used the Upgrade to the 2.6-kernel (ppc only) instructions, After a power failure my system seems to be back on Kernel 2.4 What is the best way to just reinstall or select the Kernel V2.6?
See Upgrade to the 2.6-kernel (ppc only)#System control phase


text:
National Animal Health Surveillance System
The National Animal Health Surveillance System (NAHSS) integrates animal health monitoring and surveillance activities conducted by many Federal and State government agencies into a comprehensive and coordinated system. Read more about NAHSS.
Surveillance Information For:
Information Sources
- U.S. Status for Reportable Diseases. Information reported to the World Organization for Animal Health (OIE) on the presence of animal diseases in the U.S.
- NAHMS - National Animal Health Monitoring System Reports and Information Sheets. National studies on the health and health management of livestock and poultry populations.
- NAHRS - National Animal Health Reporting System. Information on the presence of reportable animal diseases in the United States.
- National Animal Health Laboratory Network. This network of state animal health laboratories provides, among other things, laboratory data to meet epidemiological and disease reporting needs .


text:
Member AdminView All Activity View All Fans
Sveinur Trondarson@sveinur active 1 year, 3 months ago
Hi, who, do I turn to, if I want to book John Fogerty? I have tried yo search on the net, but I really can't find out who's the right agent. Is there anybody in this forum, that can tell me and – hopefully – provide me with an adress e-mail and snail-mail? View


text:
Buy Factory-Direct and Save on the Best Equipment
Why Smooth Fitness?
- Under New Ownership
- Free Shipping on Units $1299 & Up & no sales tax*
- Factory-direct lowest prices
- 60-day money-back guarantee
- Industry leading warranties
- Highly rated
Treadmills, Ellipticals, Fitness Equipment Accessories
Welcome to Smooth Fitness™, your destination for home gym equipment. By offering free shipping, fitness equipment warranties, factory direct pricing, and topping it all off with excellent and personal customer service, our business has helped people around the globe get fit for over 25 years. With our years of experience selling high-quality home fitness equipment around the world, Smooth Fitness™ is here to help you find what you need on your quest for health and fitness.
If you're not sure which home gym equipment best fits your needs, then please look through our buying guides for information that will help you figure out if you need an elliptical or treadmill, or something else entirely! We understand that your fitness goals are unique; just like people, no two workout plans or exercise motivations are alike.
When it comes to home cardio workouts, the treadmill and elliptical benefits are huge, but people with injuries or other physical limitations may be interested in our other options, like recumbent exercise bikes. For those of us who live in places where space is at a premium, options like our folding treadmills and compact ellipticals will complement the urban lifestyle nicely. If you live in more forgiving climes you could enjoy the fresh air all year round on a new exercise bike parked on the porch or in the backyard. Smooth Fitness™ gym equipment allows you to work out when, where, and however you want.
Are you ready to create your home gym, or upgrade what you have? We invite you to look through our website to learn about the benefits of each product. Contact us if you need assistance, and don't forget to check out our fitness blog for some great insights into working out, creating and maintaining a home gym, and much more. A home gym is a great asset for anyone to have; wherever you live, fitness equipment and home gym equipment can be ordered right here at Smooth Fitness!
© 2000-2014, Smooth Fitness™


text:
Reservation for Two: Romantic Restaurants for Date Night
Whether you are taking out your soulmate or a first date, these restaurants are sure to set the scene for a romantic evening. We bet you will fall in love at first bite!
Need some inspiration for Valentine's Day? Head to our Valentine's Day Hub or check out these adorable desserts.
By Sahara Borja and Farrah Shaikh
Quissience; Phoenix, AZ
Quissence, a gorgeous restaurant located in Phoenix's Farm at South Mountain property, offers the truest expression of a daily menu, creating their meals from the local market's offerings. The farm employs Phoenix's finest farmers, herdsmen, and artisans, who are working on a four-course "Lovers Menu" for you and your sweetheart.
Courtesy Quissience


text:
Ampersand Pastelbord, 24in x 36in, Gray
PastelbordTM by Ampersand - Gray
Versatile Pastelbord stands up to the toughest pastel work. Its fine grain tooth grips pigment so you can apply layer after layer of color. The durable surface lets you blend with confidence and, since water does not affect the surface, Pastelbord is ideal for combining color washes with pastel. Like the other Ampersand products, Pastelbord starts with a 1/8" hardboard panel. A buffered acrylic sealer provides a barrier between the board and the granular coating. The coating itself is pH-neutral and non-yellowing, making Pastelbord a truly permanent, museum-quality painting surface.
(1) 24" x 36" Board


text: As the birthplace of Julia Child, Pasadena was destined to be a foodie's paradise. With 500 restaurants, Pasadena is more than equipped to delight the food-savvy crowd, serving up diverse offerings that cover the gamut of food categories and international cuisines. From The Royce Woodfire Steakhouse at The Langham Huntington, the only Michelin-rated hotel restaurant in Southern California, to the 46-year-old Pasadena landmark Pie 'n Burger, it's all here. Dine on the culinary talents of tomorrow at Technique, teaching restaurant of the California School of Culinary Arts, one of only 15 Le Cordon Blue cooking schools in the country. Satisfy your sweet tooth with some See's Candy – it all started right here in Mary See's kitchen. Stroll from one trendy watering hole, like mega producer Gale Anne Hurd's Vertical Wine Bistro, to another. From a quick bite to a dining experience, from the traditional to the exotic, Pasadena's vast culinary scene has you covered.


text:
mouse over photo to zoom click for larger image
Chryssi Hoop Earring
Beaded hoops with fresh vibrant accents.
- Metal, resin, synthetic materials, and wood.
- Wire.
We're so sorry: this item sold out sooner than expected. For an equally chic substitute, please call our Personal Service Associates at 1.888.855.4986. Or click on Chico's Chat below for immediate assistance.


text:
FREE Standard Delivery for orders over £29
FREE Collect in-store in any of our 386 stores
Specialising in treats and food to put a spring in your pet's step, Vitakraft is a worldwide company that prides itself on bringing new, high-quality products to the market. Whether you're looking for some tasty treats to help with training, or the food to keep your pet happy day-to-day, be sure to check out Vitakraft's range at Pets at Home.
Product Code: 7103017P
Product Code: 28228P
Product Code: 7103202P
Product Code: 5844P
10 for £3.50
Parrot Rollinis more...
Product Code: 7103018P
Product Code: 18819P
Save 25% on Price
Product Code: 18810P
Product Code: 7103010P
Online - Short Dated:Buy 1 Get 1 Half Price


text:
Who Is the Next Bachelor?
Chris Harrison makes an annoucement during the Bachelorette finale.
Nick has a tough time describing his future with Andi when speaking with Andi's Father. Watch this preview from Season 10's Season Finale episode and don't miss all-new episodes of The Bachelorette MONDAYS 8|7c.
Chris Harrison makes an annoucement during the Bachelorette finale.
Nick makes a "below the belt" comment while speaking to Andi.
Josh and Andi make their first appearance together as a couple.
Her spurned suitor's behind the scenes maneuvers at the Men Tell All.
The final moments of Andi's journey on The Bachelorette.
His raw emotions of lost love as he leaves the show.
Their dramatic final scene together.
He's as vulnerable as can be before Andi makes her decision.
Andi has a blonde wig to keep her identity a secret.
Chris Harrison wants them to have a "frown off"
Filled with sand from the beach where he first said he loved her.
Take a closer look at the amazing locations in the Dominican Republic
Josh meets Andi's family on the next episode of The Bachelorette.
See who lied about what!
Nick asks for Andi's Dad's blessing on the next episode of The Bachelorette
From broken glass to pickles to really loud flush toilets, it's all here.
Romance, bliss... and tears. Premieres AUGUST 4 8|7c.
The most sensitive issue of the season, revisited.
Find out what they're having!
On how to build a relationship, the dreaded friend zone, and kissing Andi.
A woman from the crowd comes onstage to ask him out.
It all comes down to one decision: Will it be Josh or Nick?
Chris asks Andi if she's pregnant on the next episode of The Bachelorette.
Marquel confronts Andi on the next episode of The Bachelorette.
Chris Harrison grills Andi on the remaining two bachelors.
Will Andi go through with it?
He's in love with her, but she's not 100% sure she's there yet.
The kids from the Dominican Republic invite them to play.
Andi and Josh talk parenting styles.
The illustrated adventures of Andi the Bachelorette.
Andi's been waiting to hear those three little words.
Preview Andi and Josh's date on the next episode of The Bachelorettte.
Preview Andi's date with Chris on the next episode of The Bachelorettte.
See what happens before Andi's final decision.
Chris Harrison breaks the sad news to everyone.
A thank you for years of love and support.
A very public way of saying "I love you."
Chris Harrison and Andi discuss how to move on.
Their tearful goodbye after the rose ceremony.
Or are they more focused on Aaron Murray's football career?
Bella pulls no punches.
Preview Andi's hometown dates on the next episode of The Bachelorette.
Will Andi appreciate him showing up at he hotel room?


text:
Autoloading for better Performance

Many discussions have come up in the recent past about how ZF should increase the libraries base throughput. One of the sugguestions that comes up is whether or not requiring the autoloader, and consequently removing calls to require_once, is a good thing.

This page will explore these possibilities.

Mar 27, 2008

ON BEHALF OF <ac:link><ri:user ri:username="efbiaiinzinz" /></ac:link>

Currently when I have looked at the code and googled around and found a case where autoloading improved memory footprint of Zend framework by 800KB and 20% speedup and after reading the coding guidelines I have a suggestion.

Why not use the (spl_)autoload for entire zend framework ?

So that when you need to use some other class, you don't need to

a) add require_once in top of the file

or

b) add require_once in code before using that class to make sure it is loaded for usage

I know that this may improve zend framework readability if you use require_once at the top of the file or in code so it is visible that another class is being used, but shouldn't the framework be oriented on end-user/end-developer experience rather than framework-developer experience. And in case of memory footprint and cpu cycles, the lesser there are, the better it is, since more users can be served simultaneously.

My suggestion would be to use spl_autoload (not to interfere with end-user's own autoloading logic) to automatically load needed classes when they are used but not yet loaded into memory.

The function is already there, only thing needed to use it would be to add few lines before each class declaration (since central class Zend will become obsolete):

require_once 'Zend/Loader.php';

Or to make inclusion of Zend_Loader necessary means to use zend framework and make it register itself as autoloader by default.

When spl is not available, magic function __autoload() could be used and make it call ___autoload() function for non Zend classes, to give and user option to use own loading logic.

Good idea would be to make the autoloader load only Zend classes by default perhaps to prevent auto requiring some user's php files.

When autoloading is in place correctly, it would make memory usage significantly smaller and loading time also.

In lots of cases, user wants to use only few functions from class B that uses functions from class B and C and D and most probably the usage will not cover all classes (B, C and D) so including those files will just use excessive time and memory.

Statically loading the files means that in cases all the files are not used, they just waste resources:

reading in php code and translating it to opcodes/class representations in memory or passing a call to optimizer extension to load opcodes from cache, when that class is not actually used during execution, is just pure memory and cpu overhead.

I found some threads where autoloading usage was said to be investigated but it seems that that investigation has not gone any deeper and stopped at someone quoting "Premature optimization is the root of all evil."

In my optinion, when Zend framework is quite big already, consists of 1500 files (500 of them xml files, so 1000 php files) and is 12.4MB in size (6MB of xml files), this optimization is far from being premature, rather a long needed one.

Using autoloading would strip away all ot those require_once calls in code (thus reducing the php/optimizer calls and lesser opcodes) and in top of the files, making the refactoring and name changes easier, since instead of changing all require_once calls and the usages, only things to change will be the usages.

And the autoloading part won't make it slower as someone may think so, php should already be doing class existence checking on it's own when you do

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[$var = new ClassName();]]></ac:plain-text-body></ac:macro>

 If class is not loaded, autoloader existence is checked (if available, execute autoloader function and check class existence again), if class does not exist in memory, error is reported.

And since autoloader function usage is actually based on require/include calls, the optimizers/bytecode cachers can do their work just as well.

While googling I found were some statements made by Zend team/developers that some optimizers will not be able to optimize the classes/files since then the require_once call will not be made using hard coded string 'Zend/Db.php'; but rather using a filename stored in a variable which is derivated from class name 'Zend_Db' =>

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[$name = 'Zend/Db.php'; require_once $name;.]]></ac:plain-text-body></ac:macro>

Isn't the main work of optimizers/accelerators storing the compiled bytecode of a php file and when an invocation of include(_once)/require(_once) is made, feed the compiled bytecodes directly to php instead of letting php parse the file and generate bytecodes again and again or am I mistaken somewhere ?

I don't know exactly about zend optimizer, if such class loading will break some advanced optimization logic, but IMO hunting down few milliseconds and some bytes of memory compared to quite big speed and memory gains with autoload approach, the first one seems to be more af an premature optimization than the other.

A good example of a generic framework end-user view:

developer has a form, file upload form, to submit images to server

dveloper knows he needs to process images, so he

a) does require_once for the image processing class at the start of the file

b) does require_once for the image processing class when file upload was successful

c) lets the autoload function handle everything and just instantiates image processing class or uses it's static method

a) wastes resources (even when optimizers are used) since image processing class is loaded even when it's not actually used.

b) is almost ok, but requires user to enter a call to require_once with passing a string literal to it

c) user just invokes class and/or uses it's static methods and does not have to worry about loading it in the right place or about cases when he actually does not need to use it.

Right now ZF user can choose to enable the autoloader by including 'Zend/Loader.php'; and calling Zend_Loader::registerAutoload(); but still all the hard coded require_once calls remain in the framework, forcing user unwillingly to load some classes that he won't be using and thus impacting the performance of his application.

And a note from me as an autoload functionality user: When you have a class that extends another class

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
class A {
<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
class B extends A {

When aoutoloader is in place, neither A nor B are loaded and you invoke following code

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
$b = new B();

When your code resolves class B to B.php, includes it, PHP finds that class A existence is needed but is not loaded yet, autoload is invoked again, so you can resolve A to A.php, include it and then execution proceeds at B.php and then execution return to original location: $b = new B();

When of calling require_once 'B.php'; always before dealing with class B (to ensure B is loaded and then proceed with using class B), php does some overhead.

Since PHP does not have official coding standards "filename = classname + '.php' and one class per file ", it checks the class existence always when you invoke new B(); or do B::func(); ,even if you just did require_once few lines ago. Using autoloader will invoke require_once only one time per file to load the class from there.

I'm sorry if the story got a little too big and may be partially repeating itself but if you are reading this line, I hope you understood the point that I'm trying to make and that I'm trying to make zend framework even better by making it faster and making it consume just as much memory as needed. <ac:emoticon ac:name="smile" />

Mar 27, 2008

In my opinion, the autoloader is definetly needed to make the loading and file including as optimal as possible. Thus also improving the overall performance of the framework.

For example if a main class has many functions, some of which depend on one subclass, some of which on another subclass, some need both subclasses and some even more, then with using only require_once calls, its pretty hard to get the optimal cpu usage time and memory usage for each possible codeflow.

To make it as optimized as possible with require_once calls, one option is to add require_once 'subclass.php'; lines at the beginning of the function for each class that is being used in that function.

But if there is more complex logic in function (switch/case, if/else if), the most cpu and memory optimal solution would be to fully analyse the codeflow, see how many ways are there to pass through the function and add require_once calls to places where needed.

In worst case scenario, all require_once calls are put at the beginning of the file, thus including all classes that could be needed, which may also cascade to including other classes etc etc.

So instead of developing the class and it's main functionality, zend framework developers end up filling the code with require_once calls to optimize their classes to full extent. Or when hasty, just put the require_once calls at the top of the file, ending up having poor loading performance for that particular class (and other classes that at some point include that class).

Right now after looking at some main classes, there are some that use require_once calls to other classes in functions, some that do require_once calls for most common used classes at top of the class, some that require bunch of classes needed in all functions together at the top of the file.

To prove my point of autoloading usefulness, I made a benchmark test.

The testing involves measuring memory usage difference before and after class inclusion and time it took to load the file(s) plus how many classes were loaded during including that class.

Note: since php at my computer allocates new memory to script with the size of 256KB pieces, I had to juggle around a bit in the code to get more accurate measurements, but it's not exactly 100% accurate still, so memory usage accuracy can vary some KB's from actual result. But the class loading differences still say it all.

Memory 2, Time 2 and Classes 2 mark the results of modified zend classes in what all require_once calls are stripped out (the test script included Zend_Loader and registered it as autoloader for those modified classes).

Here is the result of the tests.

<ac:macro ac:name="section"><ac:rich-text-body>
<ac:macro ac:name="column"><ac:rich-text-body>

Class

Zend_Acl

Zend_Auth

Zend_Cache

Zend_Config

Zend_Currency

Zend_Date

Zend_Db

Zend_Debug

Zend_Exception

Zend_Feed

Zend_Filter

Zend_Form

Zend_Gdata

Zend_InfoCard

Zend_Json

Zend_Layout

Zend_Ldap

Zend_Loader

Zend_Locale

Zend_Log

Zend_Mail

Zend_Memory

Zend_Mime

Zend_OpenId

Zend_Pdf

Zend_Registry

Zend_Session

Zend_TimeSync

Zend_Translate

Zend_Uri

Zend_Validate

Zend_Version

Zend_View
</ac:rich-text-body></ac:macro>
<ac:macro ac:name="column"><ac:rich-text-body>

Memory

217144

35880

44800

58664

994048

2292016

74440

32136

25776

81664

37632

432656

1407488

303224

53240

101096

132712

55472

179488

56064

298208

178944

76768

279752

4276736

48312

228800

2391808

74888

71376

45640

24968

229960
</ac:rich-text-body></ac:macro>
<ac:macro ac:name="column"><ac:rich-text-body>

Time

0.00779333114624

0.000888884067536

0.000867998600006

0.00150343179703

0.0154058218002

0.0290764689446

0.00179680585861

0.000706338882446

0.000574767589569

0.00136516094208

0.00138756036758

0.0061589717865

0.0578015804291

0.0129796028137

0.00194305181503

0.00158960819244

0.00200163125992

0.00100400447845

0.00282403230667

0.00207567214966

0.00878624916077

0.0106440067291

0.00111131668091

0.00524481534958

0.188408219814

0.000896847248077

0.00573091506958

0.0316094994545

0.00167950391769

0.00167976617813

0.00141180753708

0.000612783432007

0.00451095104218
</ac:rich-text-body></ac:macro>
<ac:macro ac:name="column"><ac:rich-text-body>

Classes

2

1

1

1

4

6

2

1

1

1

1

1

49

13

3

1

1

1

1

2

7

10

1

4

92

1

3

10

2

2

1

1

3
</ac:rich-text-body></ac:macro>
<ac:macro ac:name="column"><ac:rich-text-body>

Memory 2

175792

35584

43000

58112

119288

1484256

40304

32064

25792

80432

37504

430656

167480

95784

45272

99776

130176

22072

179416

47432

144408

29440

76544

155392

150560

47768

147824

59920

40704

37168

45616

24856

193928
</ac:rich-text-body></ac:macro>
<ac:macro ac:name="column"><ac:rich-text-body>

Time 2

0.00287226438522

0.000882363319397

0.000876367092133

0.00122495889664

0.00192857980728

0.0166901230812

0.00090137720108

0.000702261924744

0.000592076778412

0.00136638879776

0.00144976377487

0.00612609386444

0.00298472642899

0.00150204896927

0.000940155982971

0.00157755613327

0.00203181505203

0.000476968288422

0.00284558534622

0.000866568088532

0.00268739461899

0.00063613653183

0.00114185810089

0.0022469162941

0.0023389339447

0.000974488258362

0.00274518728256

0.00105427503586

0.000808656215668

0.000772392749786

0.00143865346909

0.000623285770416

0.00358047485351
</ac:rich-text-body></ac:macro>
<ac:macro ac:name="column"><ac:rich-text-body>

Classes 2

1

1

1

1

1

2

1

1

1

1

1

1

2

1

1

1

1

0

1

1

2

1

1

1

1

1

2

1

1

1

1

1

2
</ac:rich-text-body></ac:macro>
<ac:macro ac:name="column"><ac:rich-text-body>

Memory improvement

19%

1%

4%

1%

88%

35%

46%

0%

-0%

2%

0%

0%

88%

68%

15%

1%

2%

60%

0%

15%

52%

84%

0%

44%

96%

1%

35%

97%

46%

48%

0%

0%

16%
</ac:rich-text-body></ac:macro>
<ac:macro ac:name="column"><ac:rich-text-body>

Time improvement

63%

1%

-1%

19%

87%

43%

50%

1%

-3%

-0%

-4%

1%

95%

88%

52%

1%

-2%

52%

-1%

58%

69%

94%

-3%

57%

99%

-9%

52%

97%

52%

54%

-2%

-2%

21%
</ac:rich-text-body></ac:macro>
<ac:macro ac:name="column"><ac:rich-text-body>

Class count improvement

50%

0%

0%

0%

75%

67%

50%

0%

0%

0%

0%

0%

96%

92%

67%

0%

0%

100%

0%

50%

71%

90%

0%

75%

99%

0%

33%

90%

50%

50%

0%

0%

33%
</ac:rich-text-body></ac:macro></ac:rich-text-body></ac:macro>

As you can see, in more than 50% of the cases, there is quite huge loading performance improvement: both memory and time, and as seen from class difference, it all comes from how many classes were included when the main class was loaded. The less classes loaded, the less time and cpu cycles spent. And it is the same for all installations, optimizer or no optimizer, bytecode cace or no bytecode cache. The more things php has to include, the more time it takes to process it and the more memory they take up.

So why the need to fill the code with require_once calls ?

When you instanciate the class or use it's static parts, php internally always checks if class is loaded and if not, calls autoloader. Doing always a require_once call at a function to make sure a class is loaded, each call to that function just duplicates the php's internal class existence checking (this time php has to check if that file was already loaded). Using autoloading, the require_once for a file will be called only once and exactly when needed, not a millisecond before. Thus giving the flexibility to load specific classes for the specific codeflow on the fly, exactly when needed, freeing the developers from having to fill code with require_once calls rather than coding the actual functionality.

And if not use the public class Zend_Loader, then at least some internal autoloading class/function would still improve things a lot.

I'm open to any remarks, comments and objections <ac:emoticon ac:name="smile" />

Mar 28, 2008

I think that your numbers are wrong.

Looking at Zend_Locale you say there is a 60% improvement of Memory and 100% in Class loading when we change from require_once at autoloader.

But Zend_Locale does not load any class which is not needed in the called function. How can the improvement then be 100% ????

Also to mention: autoloading is not available in CLI interactive mode... this could be problematic.

Mar 28, 2008

If you follow the table rows correclty, you will see, that you mixed up the lines.

The line you are referring to (100% improvement) is actually Zend_Loader. And I guess your comment in the jira case about not undersanding how locale could have improved so much was also because of mixing up table lines.

I'm not familiar with this wiki markup, so I did not know how exactly put the borders to that table to make that more readable. And neither were there borders in that table I posted to that jira case, so I apologize for that. So you have to be able to follow the lines correctly or if someone can repost it with a bordering, that would help too.

The class count difference between before and after require_once is actually in that specific case (Zend_Loader not Zend_Locale) is indeed 100% because Zend_Loader was already included before.

The memory usage difference (that should also be 100% because class was loaded already) comes from the inaccuracy of memory measurement. I will need to test the memory measurement more thorouglly to make it more precise.

But main measurements that are 100% trustworthy are the loading times and the class count difference before and after including. And they are measured as follows:

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
$classcount = count(get_declared_classes());
$start = getmicrotime();
require_once $classname;
$end = getmicrotime();
$classcount = count(get_declared_classes()) - $classcount;

Where getmicrotime is a function that returns precise current time.

Mar 28, 2008

I looked at the note about cli autoloading, read from php site and tested it on my machine.

I tried the cli version on my machine. At first it said cannot find Zend_Loader since include path was missing .\library to let php search for files in library directory when doing require_once 'Zend/Loader.php';.

I modified the include path at the top of the test script as such

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
//for windows
//for linux

And voila, autoloading works as a charm. Even in CLI.

Output of loading Zend_Mail:

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
C:\Prog\minuweb\zendtest2>c:\wamp\php\php.exe -v
PHP 5.2.4 (cli) (built: Aug 30 2007 07:06:31)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
with Zend Debugger v5.2.10, Copyright (c) 1999-2007, by Zend Technologies
C:\Prog\minuweb\zendtest2>c:\wamp\php\php.exe test.php

So instead of telling users to modify the php.ini, they would just need to add their system specific set_include_path command at top of the file before zend framework usage. Which is in my opinion less obtrusive than modifying php.ini and restarting the webserver and allows such users to use zend framework who don't have access to php.ini

Of course I haven't tested it on linux or on the minimal required php version for zend framework, so I'm not 100% sure this works on all platforms, I have to test it on linux system also and get the minimal possible version too to verify it works on all versions and opsystems (I have a hunch it will work, but better to test than assume). Everyone can have a go with following code:

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
//for windows
//for linux
require_once 'Zend/Loader.php';
require_once 'Zend/Mail.php';

to see if it works on your current system with cli.

Mar 28, 2008

Tested the autolaoding with setting include path in code for php cli on a fedora system, php 5.2.4 version, worked nicely also. With __autoload and also with spl_autoload_register also.

I downloaded 5.1.4 for windows also, gues what, autoloading works just fine. And so should it work for linux version also, so the cli is no obstacle at all. There is a remark that autoloading is broken yes on php page, but as tested, it actually does work correctly.

So CLI and CGI versions both work just fine with autoloading, as long as set_include_path is being used correctly.

Mar 29, 2008

You don't have to persuade me <ac:emoticon ac:name="wink" />

This is a decission which have to be done by the whole dev-team.

There was a reason in past why the decission was made NOT to support instant autoloading. Maybe because of some problems, or of the reason that components must be usable standalone. I don't know.

I just say that your measured values have to be handled with precaution because they are not accurate enough.

Mar 29, 2008

Memory usage is the most inaccurate one (give or take up to 20KB but still better that using 256KB blocks difference given by get_memory_usage), but the class loading time and count of class declarations in memory are very accurate.

The absolute class loading time may depend on exact system: computer cpu load and memory load, optimizers/caches used, cli or apache php module etc.

But the loading times improvement percentage remains roughly the same, the less calls done to load classes to memory and less unused classes loaded, the better performance improvement.

I read about the spl_autoload_register and it was introduced in PHP 5.1 and I guess that that was the reason at some time ago for not using autoloading, since at some time zend framefork was meant to be 5.0 compatible.

But since the PHP version requirement was lifted to 5.1.4 I guess it should be quite safe now to use it.

I see what you mean about keeping classes standalone, it would ultimately be nice if every class would stick only to it's subclasses thus keeping things staightforward and localized to each class.

But that would also mean lots of code duplicating.

When doing search for Zend_Loader in zend framework, 47 classes (some main classes, some subclasses) are currently using Zend_Loader already and there are more between-class dependencies than just Zend_Loader.

So in my opinion, some central zend classloader (that autoloads ONLY zend classes) approach is definitely better than not having such a thing at all.

Users classes would still remain being not autoloaded unless users wants them to be (through Zend_Loader), but overall performance of framework would improve a lot.

And currently I don't see any other way to get such a performance gain without autoloading or without hindering the end-user experience, since although you can fill the class functions with require_once calls in appropriate places to improve class loading, the end-user still needs to have all needed subclasses available. For example to create a pdf, many subclasses are needed by the user to put images and text into the pdf, but loading all subclasses at once means lots of time for loading and lots of unneeded classes being loaded just in case user or the code itself might need them.

I hope that dev-team will decide on using autoloading since I'd hate to be and remain to be the only one using such an optimized version of zend framework. <ac:emoticon ac:name="smile" />

Jul 28, 2008

The reason why we do not use autoloading by default currently is that, prior to PHP 5.2.1, autoloading had really poor performance when using an opcode cache. The 5.2 series introduced a realpath stat cache, which has made it possible for opcode caches to properly cache class definitions from autloading.

We fully plan to have autoloading by default with version 2.0 of ZF.

Jul 28, 2008

Nice to hear, looking forward to 2.0 then <ac:emoticon ac:name="smile" />, so I won't need to patch all the files for every release to make performance improvements.

Until then, performance hungry users will need to patch the files on their own.

Or is there some place where I can put up the modified versions of ZF that make use of the autoloading and have the performance improvements available for users who need them ?

Indrek Altpere

Jul 28, 2008

This is the sort of thing that a build tool, such as Phing, excels at. Instead of posting a forked version of ZF that is optimized for autoloading, create a Phing task that strips out the require_once calls and publish that.

Mar 29, 2008

I modified the pdf class and all its subclasses, stripped all require_once calls out from them.

Then modified the demo.php to measure starting time and classcount difference before and after pdf processing.

With current released version of Zend_Pdf, time it took to process the test.pdf file and save as test2.pdf was 0.159 seconds and number of classes included was 93 (in above tests, difference with static include was 92, so one more class was being loaded at some place during execution, possibly in some function).

Time it took to load all the initial 92 classes was 0.135 seconds. So effective processing time was 0.024 seconds, only 15% of all spent time, making it averagely 0.0015 secons per class loading.

With the modified version, the total time was 0.072 seconds and classes loaded were 52. Taking the previous processing time 0.024 seconds, we get that this time only 0.048 seconds was used for loading classes. 2.8 times better loading time, making average classloading time 0.00092 seconds (seems that some classes in those not loaded classes were quite big to affect the average so much).

And that was all when parsing of pdf was needed, when just creating a new one, and doing the same logic for it in that pdf demo file, classes loaded dropped to 48 and time of execution to 0.056 seconds.

Note: it seems that the php cli execution is somewhat faster when compared to php execution in apache when looking at loading times, possibly because apache uses another php.ini or something else. But the improvement percentages stay the same.

So in conclusion, the autoloading does not just improve the time to include the main class, but makes things faster and as optimal as possible even during real executions.

Apr 03, 2008

Hmm, issue has been raised here for 8 days already, I have provided examples that show definite impovements in real usage, but so far it's basically been sort of monologue here except for comments made by Thomas Weidner, ending in statement that dev-team needs to be the one persuaded.

So far, no tests and/or comments made by dev-team, neither for nor against the suggestion. <ac:emoticon ac:name="sad" />

Is anyone except me even interested in such performance gains and optimizing the Zend Framework ? <ac:emoticon ac:name="cheeky" />

Apr 03, 2008

We have opened this wiki page because we see this as important.

But you should also keep the reality... we are only a handfull of people and when you see at the amount of mails only from the mailinglist and other work in the background we have you should give us some days for digging for details.

We will not give quick responses but we will give qualified ones... but they need a little time. <ac:emoticon ac:name="wink" />

This issue will be worked on for the next release... but it is a task for the complete framework, not only the 2 parts you showed here.

So please be patient for our response. <ac:emoticon ac:name="smile" />

Apr 03, 2008

Thank you for your reply <ac:emoticon ac:name="smile" />

I know this needs some thorugh testing and some well thought out solution: whether to use some zend specific autoloader internally or use zend_loader etc. And after all require_once calls are removed, tests need to be run to make sure everything works fine.

I myself did simple regex replace that removed all require_once calls in php files for that pdf testcase and all worked fine because almost all cases are like "require_once 'Zend/Class/SubClass.pdf';"

In db adapter there was some other case where class name was built together to a variable and require_once was done for classname being held in variable, but since classname was already built together, then when creating new class like new $class(); autoload was still invoked nicely.

Of course the regex did not remove the comments before require_once calls and it would be better to manually check and remove needed lines to make sure too much isn't removed. Most tedious will be huge class collections like Pdf, Gdata etc. Lots of robotic work to do <ac:emoticon ac:name="cheeky" /> (reason why I used regex to get it done faster).

I'm hoping to hear some nice arguments and see some other test results other than mine <ac:emoticon ac:name="smile" />

Than you for your time and effort <ac:emoticon ac:name="smile" />

May 19, 2008

1.5 months after last comments, almost 2 months after topic creation:

Does anyone have any comments/ideas if and when and how this autoloading will be integrated into zend framework ?

And if it will be integrated and has been already tested a bit, can someone show more graphs about performance improvements ?

Jul 25, 2008

With ZF 1.5, and spl enabled, all you have to do in your main "index.php" is :

set_include_path('.' . PATH_SEPARATOR . '../library');

require_once 'Zend/Loader.php';

<ac:emoticon ac:name="smile" />

Jul 27, 2008

Please read the first post more thoroughlly but I'll point out some main points again just in case.

In the table with results of improvement, check the "Class count improvement" column.

As I have pointed out, the problem/issue is that currently zend classes are full of static includes in beginning of class files. So there are very many cascading require_once calls.

Look at the two big class-sets, Zend_Pdf and Zend_Gdata. The initial class count shows, how many classes were loaded into memory by just doing require_once 'Zend/Gdata.php'; or require_once 'Zend/Pdf.php'; in php code.

92 classes for one include (Zend_Pdf) is too much in my opinion.

Just using the autoloader in index or whatever bootstrap file your application has, does not help a bit, because, it does not remove those statically written require_once calls.

It will help only to load your own classes in better way, but not zend classes.

Including Zend_Pdf would still cascade to doing require_once for 92 different classes. Taking 4MB of php memory and 0.18 seconds to load up.

Zend provides autoloader, but the framework does not leverage it's benefits itself.

And when you look at the post that gives more statistics for when I ran the zend provided pdf testcase, "With the modified version, the total time was 0.072 seconds and classes loaded were 52."

You can see that although the testcase uses quite different possibilities and Pdf subclasses, it only actually needs to use 52 classes instead of 92. So all other classes being loaded are pure overhead of memory and time.

And only way to remove that overhead, is to remove each and every one of those require_once calls from all zend classes (except the autoloader class of course since that would need to use it to automatically load files).

What bothers me, is how come I haven't seen any activity here other than one guy who is developing the Locale and some other classes.

It has been exactly 4 months since I brought that issue to attention.

It took me under an hour to remove all of require_once calls in all zend php files (except autoloader).

Few more hours to gather statistics that speak for themselves.

So far, no results it seems, 1.6 RC1 is out, and as I checked just now, the starting of Zend/Pdf.php contains still such 19 static require_once calls, which cacade up to 90+ require_once calls:

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
require_once 'Zend/Pdf/Exception.php';
require_once 'Zend/Pdf/Page.php';
require_once 'Zend/Pdf/Cmap.php';
require_once 'Zend/Pdf/Font.php';
require_once 'Zend/Pdf/Style.php';
require_once 'Zend/Pdf/Parser.php';
require_once 'Zend/Pdf/Trailer.php';
require_once 'Zend/Pdf/Trailer/Generator.php';
require_once 'Zend/Pdf/Color.php';
require_once 'Zend/Pdf/Color/GrayScale.php';
require_once 'Zend/Pdf/Color/Rgb.php';
require_once 'Zend/Pdf/Color/Cmyk.php';
require_once 'Zend/Pdf/Color/Html.php';
require_once 'Zend/Pdf/Resource/Image.php';
require_once 'Zend/Pdf/Image.php';
require_once 'Zend/Pdf/Resource/Image/Jpeg.php';
require_once 'Zend/Pdf/Resource/Image/Tiff.php';
require_once 'Zend/Pdf/Resource/Image/Png.php';
require_once 'Zend/Memory.php';

It just keeps me wondering, why this autoloading hasn't been done at all, or even discussed thoroughlly a bit more.

One reason would be because of tons of bureucracy, since this change would encompass all classes (but comparing 4 months to 1 hour to make it happen, seems like a ton of bureucracy).

Other reason could be that no one bothers to do it. Everyone is busy adding more gadgets. Sort of like adding new bumpers to a car and making it look better, while the engine still needs a little more work.

If you want, I can remove those require_once calls from latest downloadable zend and make all class file include only autoloader class at the beginning. Should take 1.5 hours tops. So you can check the performance difference for yourself.

Regards,

Jul 27, 2008

yes you're right, it removed the requires in my bootstrap but that's all. I will try to automate the process of removing the requires in every class <ac:emoticon ac:name="smile" />

It's crazy why they did not implement autoload yet.

Maybe you should post a suggestion somewhere else than the wiki ? I don't know if it's read (I found this page using Google...). On features for example, people could vote for this "feature" which matters to me more than a api gadget...

Jul 27, 2008

Voting is implemented in the issue tracker. Maybe you should post this issue there.

Jul 27, 2008

I did post to JIRA as a feature/improvement request on the first day I downloaded Zend framework and saw what was going on (plus one file handle bug also which has been corrected now), but my post was bumped off here, for "further discussion" (seemingly monologe mostly).

Edit: if I reposted it back to JIRA (where it was bumped off in the first place), unless lots of people see it (last time seeminly no-one did who would grasp the situation in its seriousness) it is just gonna sit there for 4 or more months also, because I cannot vote for JIRA issue I myself created. Issue sat in JIRA for a week or two, then it was put here, now it's been 4 months, no progress...

So far I have been doing all of the examples and explanations, basically given exact direction how to get from point 1 to point 2 and why would that be good to get there, but seems that I'm the only one actually interested in improving the performance of the core of Zend.

Only one Zend guy actively commenting has been Thomas, but nothing from him lately.

Makes me wonder what point does this wiki serve if noone reads it or even if reads, discards the information as trivial because the one who posted is not from Zend(or for who knows what reasons).

I wonder if this improvement even ends up in framework within this year ? Because it seems I'm fighting with Zend (well, nothing to fight if noone listens) to improve their own product. If this would be a major change and bring only 2-5% speedup, sure, would be questionable to implement, but given the differences table, all pointed out black and white, implementation time 1 hour to few at tops, I just don't get it.

Jul 28, 2008

Just for clearification:

I am NO Zend guy, I am also a (normal) community member.

And I have so much work in my sparetime with several things like I18N, the new CS or the new Zend_File_Transfer that I can not force all things which I reply to but are not my own work.

I am really not the right person to blame.

Greetings

Thomas, I18N Team Leader, NOT an employee of Zend

Jul 28, 2008

How come you were able to misunderstand me the third time during this discussion ?

First it was mixup of you thinking I was blaming the size of zend framework on locale and locale xml (it was actually in JIRA case I think), when actually I was referring to in-memory size, the memory that php code and class definitions take.

Second was when you thought that I was again blaming Zend_Locale by posting odd improvement statistics, when actually those statistics that seemed odd for Zend_Locale were ok for Zend_Loader which was already included before and you had just read the wrong row from the table.

Now third time you think I'm blaming you for being the only one who has even bothered to write anything here in wiki.

I'm glad that anyone even bothers to reply here seeing that almost no-one does so.

I don't expect you to do the coding, but you could at least point some right people here at this wiki page instead of being so overly defensive about your own code and yourself when I'm not blaming Zend_Locale or you in anything, but instead suggesting huge improvement benefits for whole framework.

But now to think, I do have 1 point against you, you have known the benefits and improvements of using the autoloading for Zend for like 3-4 months, you possibly know the right persons to contact about this to put the ball rolling, and yet you seem to have done nothing of sorts. Only times you seem to reply actively is when you think that I have currently been blaming you or your work.

If you have been so busy for last 3-4 months so you couldn't let anyone know, could you spare me few additional minutes and give me the names or emails of the right persons so I can contact them on my own, since it seems I'm more interested in improving the Zend framework than you (seemingly very active community member) are.

Note: I myself am full time Java developer who's using php from free time for extra work, plus an university student.

Indrek Altpere

Jul 27, 2008

ok here is what I did. It took me 15 minutes !

I downloaded all the files of the ZF on my PC, replaced "require_once" by "// require_once" and uploaded everything again (yes I'm not a hardcore linux user) and implemented in my bootstrap (index.php) :

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
include 'Zend/Loader.php';

and the count of get_included_files() (in one of my controllers that does already many things) went from 71 to 49, and I got a 25% performance gain in page generation time. That is great with just one line of code <ac:emoticon ac:name="smile" />

I did not do as many tests as Indrek did but that's really great for me.

Julien

Jul 27, 2008

It took me longer since I did the replacements manually to verify what and where were removed, in conclusion, one regex replace would have done the same job, but I wanted to be sure I wouldn't break anything <ac:emoticon ac:name="wink" />

Using the autoloader like that in bootstrap seems to be best option, since then users would be obligated to do only one require_once for zend classes, from there all classes would be autoloaded.

No need even for require_once 'Zend/pdf.php'; anymore, just use $pdf = new Zend_Pdf($filename); and all works. Most optimal memory and time usage for class loading there is.

Oct 16, 2008

I strongly agree with most of the comments here - require_once is bad for performance and adds thumb overhead to your code. Usually after downloading ZF I run something like

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
find ./ -type f -name "*.php" | xargs -l sed -i 's/require_once /\/\/ require_once /g'

in it's library directory. This will afair remove >3500 require_once lines - I'm obviously not using all single ZF components, but right now I didn't meet even one issue by doing so. I'm also using extended autoloaders to support ezComponents and / or Horde in combination with ZF, no problems even there.

So, I would opt for:

making autoloader usage obligatory for ZF 2.0

removing all this require_once lines from ZF code

Cheers,

Thomas Gelf

Oct 16, 2008

We already plan to support both of these for 2.0. <ac:emoticon ac:name="wink" />

Oct 16, 2008


text: 1 Fine wine gone badnoodles14 | 06/04/2011 | See all noodles14's reviews (1)Having been a huge fan of this franchise over the years, through thick and thin, dalliance and divorce, I was eager to play this latest installment.I am genuinely saddened to say the needless changes made to the previously fine control system has rendered the game virtually unplayable. Having looked forward to this release for some time I am part dissapointed a potential classic has been ruined, and alot angry at those responsible. A phrase exists-'if its not broke dont fix it'. Someone should tell this to the people at EA Sports.Oh, and one last thing! The caddy is one of the most infuriating people to have ever passed into my existance. Diabolical


text:
yeah, another video by Aliena. love her
yeah, another video by Aliena. love her
Ok i have said this befor if you find this useful but the best way to prevent whirling strike is have the tank get his back against the wall while he tanks icehowl. This way he will not be knocked back and icehowl will never get a chance to hit range.
Thank you for this video Aliena. I am just wondering if it is possible to avoid getting the paralytic toxin altogether. I have noticed that due to the increased damage, it is extremely hard to run close enough to the Dreadscale tank to drop the debuff without dying in the process. I have a terrible time with this problem due to the distance that I must maintain from other raid members, and I have died while running toward the tank (who has also died because I was running and not healing). As a resto shaman I must remain still long enough to cast my bigger spells so if it is possible to just avoid the toxin in the first place that would be amazing.
tried this in 10 man, and wiped at 4% it is VERY tight in terms of enrage timer.
READ THIS: Posting & Chat Rules
Hey, I was wondering how you deal with the stacking buff on Gormok from the snobols? It seems to be a huge problem for us and we just can't heal it trough. Had the same in 10 man but after we luckely got trough phase 1 we didn't had any real problems.
So I was wondering if there is any way to remove the buff.
Also keep up the good work and thanks in advance,
Angry: US-Illidan. We are recruiting!
Been having a lot of trouble with this encounter on 25man.
On 10man it was much more simple for both DPS, healing, positioning wise.
We get P1 with about 1Mil HP left when the worms enter the arena, so we burn him down quickly. We also avoid on DPSing the adds that are on the melee, just keep dots running on them, attacked such as Heart Strike and Cleave will dmg them as well. We finish them off when P2 starts.
The trouble comes on P2, we waste about 10-15 sec trying to find a spot (as ranged) that is in range of the worm and out of range of everyone else.
After everyone are positioned we start getting the poision debuff on several targets, and unless you are about 15 yards from the tank with the fire debuff you will probably be stunned. No matter how fast you react. If a ranged that is about 30 yards of the tank gets it he's dead meat. We tryed using BL to get the worms down before P3 but all the time with positioning and constant moving i really dont see how its possible. Sometimes we get poison debuff without a fire debuff. so there is nothing to do be get stunned. Im really lost here, seen this fight from a Tank POV would be better with all do respect.
Just a quick question for those that may be able to help. My guild currently only runs 10 man content, we occasionally pick up a 25 man ulduar pug but predominantly only have access to the t8.5 items through tokens or VoA. We cleared the new bosses in ToC when they unlocked every wednesday night (and with exception of the champions) typically have everything down to a 1-2 shot. We don't have much in the way of Ulduar hard mode gear as we are still working on Yogg due to some roster issues. We decided however to go into 10 man TogC this weekend and give it a few go's. We currently have 1 warrior MT, DK OT, 3 Healers (Disc priest, Paladin and a Shaman) 2 rogues, a ret pally, Boomkin lock / hunter depending on who is free (last night we took the boomkin insead of the lock).
We found that even with 2 stacks of impale we were losing tanks fairly quickly, our best attempt was getting to phase 2 but gormok still had 50% health left. Both myself and the other melee classes are currently DPSing the snobolds as it takes quite a while for just two of our ranged to get them down, so resultantly even if we get to phase 2 it's a wipe.
Should we be keeping our melee on gormok at all times and letting the ranged burn down the adds as they pop up?
Also just wanted to point out I don't know if it was hotfixed in normal mode too but Gormok is NOT disarmable in heroic, whereas he was for us in regular last week.
May I inquire the amount of healers you run with for the heroic beasts? I can't find any info about your raid setup for your video and my eyes can't see the grid too well
Thank you!
We had 6 in that vid. 5 would probably do though.
What would be a great 10 man make up for this? What kind of and how many tanks, what type and how many healers, and any specific DPS classes needed? My group currently runs with a Warrior and Pally Tank, Priest and Druid Healer, and Dps consists of 3 mages, a elemental shaman, a DK, and a shadow priest. Any suggestions on the group make up?
Quite a lot of stuff in one big ramble there Meteorius. Here's a few answers:
- You can't disarm him in heroic mode
- Impale hits harder and harder over the course of the fight because of Rising Anger, the buff gormokk gets when he throws off a snowbold. The dot, while a big factor in tank deaths, is not the only thing you need to be thinking about, but the impale hit itself. Going to 4 stacks is risky, but you can mitigate that risk with good coordination of cooldowns. "whatever works best for you"
- Going with 2 healers is risky in 10 man. If one of them gets a snowbold it's very bad. Going with 3 is a safer option.
- Fire is hot. Don't stand in fire.
We were doing some experimental attempts at heroic 25 man last night (not a good attendance night unfortunately, and the disconnect boss decided to join in too). We found going with 3 tanks we could get a very stable rotation and consistantly get to phase 2 with no tank deaths, but we are worried that the overhead of 3 tanks will screw us over in phase 3.
Yea, sorry for the ramble and tons of questions, lol. I just need to get my group up to speed for this raid and can use all the advice I can get :-D
Raiding is Hard. Sometimes there's fire. Don't stand in the fire.
Read my blog http://bigshinyshield.blogspot.com...or don't.
We've done fairly well on Uld hardmodes 10 and 25, and on toc 10H but for some reason are having a frustrating time on Northrend Beasts H25. We are getting thru gormok using heroism and have no snobolds up when Acidmaw and Dreadscale activate. The first part of the worm fight seems to go pretty well with 6 heals and 3 tanks we just have the tank getting burning bile run the debuff to ppl with toxin. It seems to work okay, although there is some disagreement still with how we do this. (IE is it better to run the aoe thru the raid to clear toxin off people, or should the tank move to a position outside the raid but behind the melee so ppl can still run to him and not have to be infront of the boss to clear their own debuffs?) either way we are mostly fine until the submerge and then everything goes straight to hell.
I believe that ppl just dont know where to be when the worms re-emerge. They dont want to grp up too much and dont want to be infront of the boss, that much we know. Nevertheless it seems like we STILL have ppl clumping up in the transition, and healers unprepared for the tanks to pick their targets back up. Id like to know if there is any predictability to where the worms will re-emerge so that our raid can be more or less in position, spread out and ready to go as soon as possible. Most of the time we have deaths due to mass burning bile, or an immediate tank death upon pick up.


text:
Featured Stories
Car Talk Star Tom Magliozzi is Dead at 77
This Is What It's Like to Drive BMW's i8, the Car from the Future
The 50 Best Manly Movie Quotes
The 100 Greatest Video Games of All Time
12 Gorgeous Pictures from the ISS
This Is Your Brain on Magic Mushrooms
This Is How Wine Gets Made in the 21st Century
Which Battery-Powered Chainsaw Should You Buy?
The Popular Mechanics Boot Selector
These Helmets Will Save the NFL from Itself
Enter to Win the Jetsetter Sweepstakes - worth $25,000!
©2014 Hearst Communication, Inc. All Rights Reserved. Being Green /Why did I get this ad?


text:
Do you have questions about this product?
get answers from real customers and in-house experts with AnswerBox.
Know the answer? Answer this question
1 answer
Do you have a question about this product?
(based on 44 reviews)
Ratings Distribution
5 Stars
4 Stars
3 Stars
2 Stars
1 Stars
of respondents would recommend this to a friend.
Best Uses
Reviewed by 44 customers
Sort by
Displaying reviews 1-5
Back to top
Previous | Next »
(1 of 3 customers found this review helpful)
excellent product
By Cristina
from Switzerland
Comments about Perricone MD Cold Plasma Body:
This is a great product. The skin does not feel fatty, one get dressed immediately. The skin is hydrated and smooth the whole day. Even my husband uses it to treat his rough dermatitis skin. It helps. You recommend to use it with NO SUN Tanner, but I cannot find this product anymore. That is a pity.
Bottom Line Yes, I would recommend this to a friend
Was this review helpful? Yes / No
- You may also flag this review
(16 of 16 customers found this review helpful)
Suggestions to Dr Perricone!
By 46 and counting
from Colorado
Suggestions:1) Pleeeaasee add some kind of fresh/floral scent to this body lotion! I think a lot more women would use it...women like to smell good! (not fishy). I have taken to spraying my favorite perfume into the bottle and shaking it up...it helps, but no completely.2) The pump is horribly designed, unless the objective is to get the lotion all over your bathroom. It is very stiff and you must cup your hand all around it in order for it not to go everywhere. Please redesign the pump!
(5 of 5 customers found this review helpful)
By j
from ct
When I put this on my legs the smell of fish was so bad I had to take another shower. This stuff is awful!
Bottom Line No, I would not recommend this to a friend
(2 of 2 customers found this review helpful)
Wonderful product!
By Steampunk Lisa
from Oklahoma City, OK
I use it all over, but notice it more on the backs of my arms. Smooths away dry skin bumps!
Cold Plasma Body Works
By Susan
from Pennsylvania
I use daily on the back of my legs, buttocks & arms. I began to notice firmer appearing skin, but one must keep one's weight to a healthy BMI. I have used many cellulite products and only Cold Plasma Body (and Vichy) have actually produced results. It is minimal, but it is an improvement in texture and tone.


text:
Continued uncertainty in Wyoming
At its April 11, 2014, meeting, the Wyoming state board of education decided not to implement the Next Generation Science Standards, instead turning to a state department of education committee for further guidance. As NCSE previously reported, a footnote in Wyoming's budget for 2014-2016 precludes the use of state funds "for any review or adoption" of the Next Generation Science Standards, and one of its authors acknowledged that the NGSS's treatment of climate change is a reason for the prohibition.
The latest on NCSE's YouTube channel
Climate in a new Harris poll
A new Harris poll finds that nearly half of Americans believe that global climate change is occurring and that human activity is responsible for it.
Update on South Carolina's mammoth debate
The South Carolina House of Representatives rejected the Senate's version of House Bill 4482 — which refers to the Sixth Day of Creation — on a 72-30 vote on April 9, 2014.
A preview of Paleoclimate
NCSE is pleased to offer a free preview (PDF) of Michael L. Bender's Paleoclimate (Princeton University Press, 2013).
News Alerts
Subscribe to NCSE's free weekly e-newsletter.
Evolution and Climate Education Update


text:
Department of Electrical Engineering
271 Marshall W. Alworth Hall
1023 University Dr.
University of Minnesota Duluth
Duluth, MN 55812
Phone: (218) 726-6147
Fax: (218) 726-7267
Email: email@example.com
Department Head
Dr. Jiann-Shiou Yang
Office: MWAH 272
E-mail: email@example.com
Phone: (218) 726-6290
Executive Secretary
Ms. Shey Peterson
Office: MWAH 271
E-mail: email@example.com
Phone: 218-726-6830
Our Mission Statement
The mission of the Department of Electrical Engineering is to provide a high quality educational opportunity for students by delivering a program with a strong hands-on laboratory and design component in conjunction with a thorough foundation in theory and to provide students with the tools and skills to be a life-long major contributor to their profession and society as a whole.
- Summary of EE Strategic Plan (pdf)
- Program Educational Objectives (pdf)
- Student Outcomes (pdf)
- Enrollment and Degree statistics
A Welcome Note From Our Department HeadThe Department of Computer Engineering was established by the University of Minnesota Board of Regents in 1983, and accepted its first students in September of that year. The Department changed its name to Electrical and Computer Engineering on December 15, 1994. (Read More...)
Maps & Directions | Parking | Contact UMD | Site Map | Privacy | DMCA


text:
Benefits Information
County Office StatusMarion County office status and news links.
Human Resources
Inmate/Offender RostersJail inmate roster, work center roster, non-sentanced inmates booked in last 24 hours, offenders on parole and probation.
Job Openings
Policies and ProceduresThe Administrative Policies and Procedures of Marion County represent those policies that have countywide application. They are established by the Board of Commissioners upon recommendation of county departments and contain summary statements of administrative policy.
Press Releases


text:
Influencer Analysis is a competitive communication service from 123 Social Media.
Through expert analysis, proprietary methodology, and cutting-edge tools, we provide actionable communication plans for interacting with the right people at the right time.
In a nutshell: we help corporations find and interact with
Thought Leaders Industry Reviewers
Consumer Groups Top Bloggers Prospects
Investors Competitors Employees


text:
Military Professionals
MBA. Your Way.
Admissions | Academics | Advising
The Isenberg MBA offers military personnel the freedom to complete a degree on your own terms, in the learning environment that best suits your individual needs. Pursue your degree full-time at the UMass Amherst flagship campus, completely online, or in a blended format at one of our Massachusetts satellite locations. We understand the unique challenges facing military personnel and are committed to supporting you throughout your academic career.
Military Benefits
- Waiver of the application fee for all active military, their spouses, and U.S. veterans.
- Isenberg TA scholarships available for the 2013-14 academic year.
- Credit for graduate level business/management related military training.
- Dedicated academic advisor for military students, trained to understand your particular needs throughout the application, enrollment and academic process.
- Program flexibility for military service commitments, such as deferred admission.
Try a Class
Learn about our Try a Class option. Take up to two MBA classes before applying and see why our program is a good fit for you. Or view the Courses: Browse & Enroll page to see our current course listing.
UMass Amherst is a Yellow Ribbon Program participant
Visit UMass Amherst Veteran's Services or the Department of Veteran's Affairs.
How do I waive the application fee?
Before applying to the program, send an email requesting an application fee waiver. After you receive an email confirmation, submit your application. If you are an ACPE military physician, contact MaryBeth Kimball at firstname.lastname@example.com.
How do I know if my business/management related military training qualifies as graduate level credit?
Visit the American Council in Education (ACE) website to determine whether your military training courses qualify for credit. Once you determine which courses qualify, send an email, including the link to the ACE Course Exhibit web page to be reviewed by an advisor. See additional transfer criteria at our Transfers and Waivers page.
Assistance & Services
Isenberg MBA
Dedicated Advisor: Kyle Bate, USAF (Ret)
(413) 577-3305 | firstname.lastname@example.com
UMass Amherst Veteran Services
(413) 545-5792 | email@example.com
UMass Education Benefits and Enrollment Verification
Contact: Judy Gagnon
(413) 545-5792 | firstname.lastname@example.com


text:
Do you regift? Why or why not?
I regift stuff that MIL gives DD. Most of the time, DD doesn't even see what MIL gives her. I've repeatedly asked MIL not to buy certain stuff for DD, but she buys it anyway. So... I give it to friends.
And I've repeatedly told MIL that I don't like to bake but she is always buying me baking/cooking stuff. She got me a BabyCakes Cake Pop machine and some accessories. I can't imagine spending time in front of that thing while trying to take care of my infant DS and my almost-5yo lol, so I asked a friend if she wanted it. (She knows that I get stuff from my MIL that I don't want so I told her it was from MIL. She didn't care! She's been wanting one and she got it for free from me.)
So what about you? Do you re-gift? Do you care if someone regifts something to you?


text: Exterior and landscape lighting enhances the architecture, gardens, walkways, and patios or decks. Outdoor lighting fixtures help to alleviate the darkness of the night. It also helps to balance the light coming from the interior lighting and/or other sources eliminating unwanted shadows. Landscape outdoor lighting fixtures come in variety of types and are usually divided to low voltage lights and line voltage type landscape lights. Landscape light fixtures can shine light horizontally towards an object or shine up or down on an object giving it richness and dimension. The entry is the first impression of the building or house, by illuminating the entry area, landscape lighting fixtures give a design preview of what's to come and can brighten up the space while adding the illumination needed for safety . Exterior and Landscape lighting provides an amazing opportunity to create magic and fantasy to an otherwise dark and shadowed canvas.


text:
14 Must-Try Tomato Recipes
Come taste summer: These super-simple recipes make the most of the season's best. See how the Good Housekeeping test kitchen prepares tomato recipes.
Mexican Veggie Stacks
These Mexican Veggie Stacks deliver a heaping helping of chili-spiced, grilled vegetables, including fresh corn, tomatoes, onions, and zucchini.
Get the recipe for Mexican Veggie Stacks


text:
Mega Movers: Extreme Ocean Salvage DVD
Sale Price: $19.99
To Order by Phone Call 1-800-933-6249
- Additional Details
- Format: Color, DVD-Video, NTSC
- Rating: Not Rated
- Number of Discs: 1
- Run Time: 50 Minutes
- Region: Region 1
- Aspect Ratio: 1.33:1
- Language: English
- Studio: History Channel
- DVD Release Date: July 29, 2007
What goes down must come up, at least when the Mega Movers are around! This episode showcases an amazing array of ship recovery operations.
- The ultimate in heavy lifting.
- Engineers are put to the test relocating everything from 19th century churches to massive factories.
- Unbelievable salvage operations on the high seas push even the Mega Movers' limits!
If you're the type who can't leave anything behind, you may have to call in the MEGA MOVERS. Whether it's a 19th century church, a railroad bridge or an entire beach there's nothing our experts can't relocate. Of course, when it comes time to lift a structure from its foundations and head down the road (at a fraction of a mile an hour), every creak and groan can provide a vital clue, and a mistake of an inch could spell disaster.
Some of the most magnificent ships in history met their fates at the bottom of the sea. It's always been assumed that they were lost forever, consigned to an eternal watery grave. But then the Mega Movers got involved.
It's time to test your seas legs as MEGA MOVERS plies the waves in search of sunken treasure: history's greatest ships. All hands are on deck as a 580-ton English warship surfaces for the first time in 400 years. And a particularly challenging salvage in the Baltic brings the crew back for repeat attempts before the 17th century Vasa finally sees the light of day. Then see how they brought the Normandie up from the bottom of New York Harbor before she could irreparably pollute the waters. And learn the incredible story of a single man who salvaged 28 scuttled WWII-era German ships from the Scapa Flow.
It's a deep subject, it?s EXTREME OCEAN SALVAGE!


text:
Wedding Cakes near oketo,ks
Other Wedding Vendors near oketo,ks:
|Wedding Band (6)
|Wedding Beauty & Health (28)
|Wedding Catering (35)
|Wedding Ceremony Music (4)
|Wedding DJ (30)
|Wedding Dress & Attire (34)
|Wedding Event Rentals (10)
|Wedding Favors & Gifts (14)
|Wedding Flowers (36)
|Wedding Invitations (32)
|Wedding Jewelry (30)
|Wedding Lighting & Decor (4)
|Wedding Officiant (36)
|Wedding Photography (97)
|Wedding Planning (20)
|Wedding Rehearsal Dinner (6)
|Wedding Transportation (5)
|Wedding Travel Agents (9)
|Wedding Venue (92)
|Wedding Videography (8)
You've chosen the maximum (5) items in this category. Compare your items or remove and replace with another.Compare Now
0 Vendors Selected. Select up to 5 vendors to compare in one of the following categories: Venues, Bands, Catering, Photography or Videographers.
BellaRoca Cakes11 Reviews
Lawrence, KS | 785-289-8947
Becca's review: I could not have imagined a more perfect wedding cake! Our guests loved the cake and went back for seconds. Working... (more)
Mad Eliza's Cakes & Confections6 Reviews
We are Mad about Cake!
Topeka, KS | 785-478-0880
When we set out to create Mad Eliza's, we did so with a passion for perfection to creating cakes and confections that are visually stunning, with...(more)
Classic Cakes & More19 Reviews
Parker, KS | 913-757-4519
Classic Cakes & More has been designing cakes for over 35 years. We offer many different cake flavors, plus fruit fillings, cream cheese mints &...(more)
Mary Gilpatrick
Louisburg, KS
Topeka, KS
Hen House
Olathe, KS


text:
Jessica Decker
Category: Designers/Studios,
Posted by: Ai Van
Location: New York
Posted: Jan 25th 2014
I am inspired by the work of Art Director Jessica Decker. She uses various graphic elements such as vintage fabric, hand-drawn type, cute animals, and fancy faux bois. She's especially fond of bright hues and old-school signage. In this cover, she plays with the display of utensils to guide the reading of her text. The columns are placed elegantly and the hierarchy is also marked by the different sizes of font she uses. The woody background adds a warm feeling to the cover and makes it more vibrant.


text:
Sun-powered water purification system created by Purdue scientists
October 28, 2013
Discovery Park launches global soundscapes research center to capture vanishing sounds of nature
October 29, 2014
Purdue University ecologist Bryan Pijanowski gained international attention for an Earth Day effort to capture soundscapes from citizen scientists. Now, he is launching a research center aimed at preserving the sounds of the Earth and highlighting their bellwether role in alerting scientists to environmental habitat changes by species.Read Full Story
Forestry and natural resources professor selected to lead Purdue Climate Change Research Center
October 22, 2014
Purdue University forestry and natural resources and biological sciences professor Jeffrey Dukes has been selected as the new director of the Purdue Climate Change Research Center in Discovery Park.Read Full Story
Student team wins Ford grant to further work on a hybrid renewable energy system
October 8, 2014
WEST LAFAYETTE, Ind. - A team of Purdue University students working on a hybrid renewable power system for use in remote communities in need of electricity has been awarded a 2014 Ford College Community Challenge (Ford C3) grant.Read Full Story


text:
Consider It...
Awes Art
Wes Lang
Signed with Print $500.00
Awes Music
Norman Hathaway
The coolest man alive. $7.00
Awes Art
Julia Chiang
Custom paintings $50.00
Awes Art
Mat Brinkman
Imposing $23.00
Awes Comics
Frank Santoro
Intimate love story set against art $19.95
Awes Comics
Anya Davidson
Beavis and Butthead meets James Joyce's Ulysses $19.95
Awes Comics
Seiichi Hayashi, Ryan Holmberg
Lyrical and experimental $27.50
Awes Art
Chris Martin
30 years of drawings $60.00
Awes Photography
John Corbett
Inside and Out $27.50
Awes Comics
Ryan Holmberg, Shigeru Sugiura
Manga masterpiece $22.95
Awes Comics
Primal comics $19.95
Joe Bradley
Joe's Big Book $35.00
Eddie Martinez
Original drawing inside. $500.00
Eddie Martinez
Body of Work $39.95
In the Good Name of the Company
Jan Tumlir, Christopher Michlig, Brian Roettinger
A monumental collection $34.95
Carroll Dunham
Drawings come alive $15.00
Jesse Pearson, Richard Kern
Stoney viewing $29.95
Wes Lang
American iconographer's first monograph $34.95
Ryan Holmberg, Osamu Tezuka
Talking rabbit manga $24.95
Prints & Posters
Billy Grant, Matthew Thurber
Mind meld! $8.00
Matthew Thurber
The Long Goodbye for the Tumblr generation $22.95
Prints & Posters
Rory Hayes
Brilliant and rare print $300.00
Prints & Posters
Sublime lithograph $30.00
Prints & Posters
King Terry
Ooh, look at my crotch! $8.00
Prints & Posters
S. Clay Wilson
Not for the faint of heart. $20.00
PBox World
by Dan Nadel
Store is Closed
August 10, 2014
Clear out the warehouse!
PBox World
by Dan Nadel
The Pbox Bibliography
June 13, 2014
Maybe a definitive list?
PBox World
by Dan Nadel
Quick Note
March 20, 2014
Just checking in.
The Living Experience
by Leon Sadler
Gelshots: Advice for animals
March 19, 2014


text: 5 must read for all new mums!!!zoeNryansmummy | 28/04/2010 | See all zoeNryansmummy's reviews (5)i picked this up yesterday and soon as i started reading it i culdnt put it down. I've now finished it and was pleasently suprised to find that i really really enjoyed it!! I'm a bit of a stickler when it comes to books, know what authors i like and tend to stick to them, but i'm glad i took a chance. I have 2 smallies and though their older than the babies in the book it bought back all the feeling i had when they were newborns!! oh the trials and tribulations of a new baby, post baby weight and the dreaded baby group cliques!!!