text:
Karl's Favorite Techdirt Posts Of The Week
from the good-news-bad-news deptHandling the "favorites of the week" post this week is Karl, one of our prolific commenter's who's known for calmly responding to questionable claims from other commenters with thorough, detailed insights and a firm grasp of the law and case law.
When Mike asked me to do a "Favorites of the Week" post, I joked that hopefully I'll be able to do "favorite posts" and not "bad news." A lot of the breaking news this week amounted to more of the same, and all bad: more third-party liability, the government lying about Wikileaks, ICE ramping up their seizures, even libraries teaching kids to hate a free press. Stuff like this is always going on, and it can't last forever, but after a while you get too saddened to think about it.
So, in 2011's spirit of optimism, I'd like start off with artists who are doing something right.
The obvious winner is Paulo Coelho, who heard that his books were banned in Iran, so he immediately offered them as a free download. This shows us that free public use of your art does not just make your work more valuable, it is also a tool to fight censorship and is a fundamental part of free expression. It's not about creating art for free; it's about keeping it from being imprisoned.
Honorable mention goes to Jono Bacon from the band Severed Fifth, who is using an open source model to "reinvent the music business." Now, the "reinventing" claim is a steaming pile of hyperbole, but it's awesome to see more artists realize that "open culture" is not their enemy. And this band is actually practicing what they preach: their album will be released under a CC-BY-SA license, which means that anyone can make money off of it... even you, faithful reader.
And I have to mention Deadmau5, who realized that a connection with his fans is more important than management relations. But it should be noted that Deadmau5 is not any sort of copyright abolitionist. In 2008, he took legal action against a Fruity Loops user called DirtyCircuit, who (unintentionally?) used uncleared Deadmau5 samples that were bundled with the software. As a result, Fruity Loops removed all melodic samples. I mostly like the Techdirt story because it led me to YouTube videos of Deadmau5 pranking his fans on Minecraft.
Of course, for every person who is doing something right, there are two who are downright clueless. They're not bad people, mind you; they just don't know what's going on.
Such was the case when Jim D'Addario defended his support of seizing music blogs. Mike responded by focusing on counterfeit goods, but, as I pointed out in the comments, that's the least worrisome thing about the seizures. Many of the seized domains had absolutely nothing whatsoever to do with counterfeit products. This shows another bad result when you conflate counterfeiting with file sharing: companies can't object to horrible file sharing laws without undercutting their support for anti-counterfeiting efforts. Assuming they're even aware of it at all, of course. I genuinely think Jim D'Addario has no idea music blogs were seized and I'm guessing a lot of the companies on the list didn't either.
As a side note: One of the "counterfeiting sites" that Jim D'Addario mentioned is Alibaba.com. When I went to that site, I found a ton of cheap, shoddy merchandise -- most of it is crap, some of it is probably "grey market," and a couple of things might be counterfeit. But ironically, the one thing I did not find is counterfeit D'Addario guitar strings.
Of course, Jim D'Addario is far from the most clueless man in the industry. As usual, that honor goes to the heads of the RIAA, who this week claimed that a .music gTLD would "enable wide scale copyright and trademark infringement." As Marcus Carab pointed out, their attitude seems to be "ALL MUSIC = crime unless it is explicitly and completely controlled by us."
But it's even more ridiculous than that. The ability to get a .music gTLD would be available only to official members of the music community, deliberately to ward off pirates and cybersquatters. Constantine Roussos, the man behind the dotMusic campaign, is also the man behind FightPiracy.org. He's certainly no friend of piracy or enemy of the recording industry, despite the RIAA's assumptions. When it took aim at Roussos, the RIAA set its phasers to "stupid."
There's one final story that I'd like to mention, to complete this compliment sandwich. That is how ACS:Law is continuing to screw the pooch in court. There's nothing particularly surprising about this, but it makes me smile. It's like a cross between Boston Legal and the Keystone Cops. Hopefully the USCG suits in Minnesota will crash and burn too.


text:
Compare vehicles
Click 'compare' to add up to 3 vehicles to compare against their specifications.Compare now
Key factsPrint summary
FULL SERVICE HISTORY, SAT-NAVIGATION, 1 OWNER FROM NEW, BLUETOOTH TELEPHONY, AIR-CON, CD/RADIO PLAYER/ DAB RADIO, AUX/USB PORT, MOT/SEP/2018, ELECTRIC WINDOWS, ELECTRIC MIRRORS, START/STOP BUTTON, 6 SPEED GEARBOX, LOVELY CAR, FINANCE AVAILABLE OFFERING RAC WARRANTIES AND MEMBERSHIP, WE CAN ARRANGE FINANCE, SEE OUR WEBSITE FOR APPLICATION DETAILS,,, WE TAKE YOUR CAR IN PART EXCHANGE,, ALL DEBIT CARDS ACCEPTED,,CALL US ON 02084649111. , Next MOT due 28/09/2018, Full service history, White, Welcome to Thecarsite, we are partners of the RAC.We offer RAC warranties and can arrange finance, £7,995 p/x welcome
This car comes with
DAB Digital Radio, Auto Start/Stop Function, Tyre Pressure Warning System (TPWS), 15in Heli Spoke Alloy Wheels in Silver with 175/65 R15 Tyres and Security Locking Wheel Bolts, Hill Assist, Start/Stop Button, Bluetooth Hands Free Function with USB Audio, Alarm, Window Lifts, Electrical, For Drivers and Front Passengers Sides, Including One-Touch Down/Up Functions on Drivers and Front Passengers Sides, Radio with Four-Line Display
- 201710130260404
- 2014
- 64
- £7,995
- 800
- 71,000
- Cars
- OMGZb5/Lan8=
Vehicle summary
|Body style
|Engine size
|1499 cc
|Fuel type
|Number of doors
|Number of seats
|Gearbox type
|CO2 emissions
|105 g/km
|Insurance group
|Standard manufacturer's warranty (miles)
|No details available
|Standard manufacturer's warranty (years)
|0 years
|Standard paintwork guarantee
|3 years
Performance & economy
|Fuel consumption (urban)
|49.6 mpg
|Fuel consumption (extra urban)
|74.3 mpg
|Fuel consumption (combined)
|62.8 mpg
|0 - 60 mph
|7.9 seconds
|Top speed
|130 mph
|Engine power
|134.14 bhp
|Engine torque
|162.27 lbs/ft
|1414 mm
|Height inclusive of roof rails
|No details available
|3821 mm
|2495 mm
|1727 mm
|Width including mirrors
|No details available
|Fuel tank capacity
|40 litres
|Minimum kerb weight
|1085 kg
|Interior features
|Exterior features
|Hazy Grey Interior Surface/Carbon Black Interior Colour
|Electrically Adjustable and Heated Exterior Mirrors
|Height Adjustment on Drivers Seat
|Rear Window Wiper
|Cloth Firework Upholstery
|Roof Spoiler
|Sun Visors with Integrated Vanity Mirror on Drivers and Front Passengers Sides
|15in Heli Spoke Alloy Wheels in Silver with 175/65 R15 Tyres and Security Locking Wheel Bolts
|Centre Console
|Auto Start/Stop Function
|On-Board Computer
|Body Coloured Bumpers
|Bluetooth Hands Free Function with USB Audio
|Heated Windscreen Washer Jets
|Two Mid-Range in Front Doors and Two Woofers under Front Seats
|Radio with Four-Line Display
|Start/Stop Button
|DAB Digital Radio
|Window Lifts, Electrical, For Drivers and Front Passengers Sides, Including One-Touch Down/Up Functions on Drivers and Front Passengers Sides
|Heated Rear Window with Automatic Deactivation
|Steering-Wheel Column Adjustment with Height and Reach Adjustment
|Cupholders, Two in Front, Two in Rear
|3rd Brake Light
|Dynamic Traction Control (DTC)
|Hill Assist
|Power Steering with Servotronic
|Tyre Pressure Warning System (TPWS)
|Head Airbags
|Anti-Lock Brake System (ABS) with Cornering Brake Control (CBC)
|Manually Adjustable Headrest for All Seats
|Electronic Brake Force Distribution (EBD)
|Three-Point Seat Belts with Pre-Tensioners
|Front and Rear Child Seat ISOFIX Attachment
|Front Foglights
|MINI Mobility System (MINI MS)
|Remote Central Locking
|Driver Airbag
|Electronic Differential Lock Control (EDLC)
|Front Passenger Airbag with Passenger Airbag Deactivation Switch
|Follow-Me-Home Function and Daylight Driving Lights
|Side Airbags
|Dynamic Stability Control (DSC) with Automatic Stability Control (ASC)
Please note
This includes MPG figures which are calculated under European Standards, in test conditions, and will vary under normal driving conditions. The information displayed above describes the typical specification of the most recent model of this vehicle. It is not the exact specification for the actual vehicle being offered for sale which may vary. Specifications for older models may also vary. Please contact us prior to purchase to confirm the exact specification of this vehicle.
Thank you for contacting us!
We will aim to get back to you as soon as possible.
There was a problem sending your email.
There may be a technical issue.
Please try again later.

subset: commoncrawl


text:
|A Page from the Access Database
When I was't enjoying holiday events with friends and family, I was working on my great database match-up project. With a couple of days of long hard work planned, I anticipated finishing it in time for New Year's Eve festivities.
Then at about ten o'clock in the evening New Year's Eve Eve disaster stuck. My family tree program totally freaked out, sent me a strange message, and then shut down. In most cases, a instance like this is not a cause for panic. Usually a deep breath, a wiping of the hands on the pants legs, and a click to reopen the program solves the problem. However, such was not the case on December 30th.
The family tree program opened, but gave me two messages. First that the program had not closed down correctly and that I might have to compact the file. (Compact file - what is that?!). Second that the file was already open or was an invalid file type. (umm - I just opened it, so how can it be already open and INVALID?!!! - it wasn't invalid two seconds ago). The file did open and all the data appeared to be present, but every time I tried to add something new the program shut down. Additionally all attempts to compact the file crashed the program as well. Something. Was. Wrong.
The next day I repaired the program with the original disc and then did some searching for the second error on the Internet. First I found this helpful post from Virginia Family Tree Genealogy. The post's author suggested exporting the file that wouldn't open. Seemed like a good idea. However, the program wanted to compact the file prior to export. When the compacting still wasn't finished 22 hours later, I decided it wasn't working. Why did I let it go so long? My file was huge, over 10 years old, contained information on nearly 4000 people, and had never been compacted before. I had no idea how long it might take. The software manufacturer on one of their pages said it might take "some time."
I found a page from the manufacturer here and followed their directions on working with corrupted files. I finally gave up and decided to use the back up from December 29th. I also discovered that while I couldn't export the entire file, I could export individual families. I did so for the families I had been working with on the 30th and merged them with the new file. I compacted the new file (following the helpful hints posted here) and it took about 20 seconds for a 25 MB file to become a 15 MB file. Apparently, somebody's definition of "some time" is different than mine. By the end of New Year's Day, I was back up and running.
I was surprisingly calm throughout this entire event. The most important part of my data is in Access and that wasn't bothered at all. I could use that information to recreate any changes I had made to the family tree file on the 30th. My data in the family tree program seemed to be there, I just had to get it out. Also, I had a backup that was less than 24 hours old. If I hadn't had a recent backup I probably would have cried for days. At the same time I was trying to solve this crisis, I visited the Microsoft Fixit Solution Center and used it to tweak Window and I repaired Microsoft Office. My computer is running much better now, so I suppose one could say the whole episode was a blessing.
While I was slowed by the corrupted files (and a post-New Year family visit), I did finish the project on Saturday, January 5th. Now on to the next projects ... I hope they don't end being as "easy" as this one.


text:
Public toilets
Inside this section
Automatic public toilets
To find local public toilets, search the National Public Toilet Map, which provides accessibility details and opening hours.
These automatic facilities are open 24 hours a day:Hyde Park (north and south)Belmore Park (near Central station)Wynyard ParkWard Park (Surry Hills)Circular Quay (Alfred Street)Fitzroy Gardens (Kings Cross)Joynton Park, Tote Park and Nuffield Park (Zetland)
After each use the toilet bowl and floor is cleaned and disinfected automatically.
Instructions on how to use the automatic toilets are clearly displayed, also in Braille. Audio instructions are also available.
Each toilet visit is capped at 20 minutes with an alarm sounding well before the door opens.
Though it is rarely needed, there is an emergency button linked directly to the facility operator.
Parents should enter with small children, as the automatic sensors are activated by 25kg of pressure.
Standard (non-automatic) public toilets can be found at libraries and near other major parks.
Additional public toilets
Many more public toilets in the local area aren't managed by the City of Sydney and can usually be found at:
- major shopping areas
- train stations
- other public venues, such as the Royal Botanic Gardens.
You can download a map of public toilets in the local area. You can also download more information about accessible toilets in the city centre.
Public toilet strategy
The City's public toilet strategy recommends, subject to funding availability and budget approval:
- building new toilets in identified village centres
- upgrading toilets in some neighbourhood parks
- providing accessible public toilets at Town Hall House
- investigating the use of retractable pop-up urinals in entertainment precincts
- encouraging retailers and cafes to provide public access to their toilet facilities.
|Public toilet strategy
|Public toilet strategy
|Word 7.9 MB
|Public toilets in the local area
Last updated: Monday, 17 August 2015


text:
|Santa Barbara, Calif.
|High School:
|Santa Barbara HS
2013 ACWPC Men's Water Polo All-Academic Team
2013 WWPA Men's Water Polo All-Academic Team
2011 WWPA All-Freshman Team
AS A JUNIOR IN 2013: Played in all 33 games, starting 32…scored 22 goals during the 2013 season, including two against Stanford and UC San Diego…also had 24 assists and 16 steals.
AS A SOPHOMORE IN 2012: Played in 22 games, starting 13 … had 36 attempts, 10 goals, 18 assists, seven steals and eight kick-outs drawn … scored once against Air Force on Oct. 7 … scored two goals against Pomona Pitzer on Nov. 18.
AS A FRESHMAN IN 2011: Played in all 35 games, collecting 15 goals, 12 assists, 19 steals, 11 field blocks and nine kick-outs drawn … notched one goal against Fordham … delivered one goal vs. West Valley … tallied one goal against Redlands … scored one goal against Occidental … connected for three goals at La Verne … added a goal against Pomona-Pitzer … score two goals vs. UCLA … recorded three goals against Bucknell.
HIGH SCHOOL: A 2011 graduate of Santa Barbara ... coached by Mark Walsh ... CIF Division 1 Semi-Finalists in 2008 ... named first team All-Chanel League, 1st team All-County in 2010… 2nd team all Channel League in 2009... Played for Santa Barbara Water Polo and was coached by John Abdou, Joe O'Brien, and Rich Gruguoli… team finished 2nd at 2008 Junior Olympics… was an Academic All-American while at Santa Barbara High School.
PERSONAL: Born in Gaborone, Botswana. ... son of Patrick and Pippa Davis ... has two siblings, Tessa and Paul ... enjoys playing basketball ... majoring in Finance.


text:
The gift of cookies is fast becoming a popular alternative to giving cupcakes, and it's really no surprise when you consider how far the humble cookie has come! Whether you are looking for cookies for birthday gifts or birthday catering, we have you covered.
Shari's Berries extensive range of birthday cookie baskets is bursting with imagination and scrumptiousness. Browse our birthday cookie pages to discover the imaginative ways our cookie artisans have revolutionized everyone's favorite baked treat.
Our popular cookie bouquets speak to hearts and taste buds everywhere. Our hand-decorated shortbread offerings feature a variety of unique and creative designs. Send birthday cookies adorned with hats, bags and shoes for the haute couture loving fashionista. Or if wondering what to give the man in your life? We have football, baseball and basketball cookies that would make the perfect birthday gift for him.
And when you're away from home on the birthday of a loved one, sometimes a card in the mail just won't do. All of our gourmet gifts will convey your wishes perfectly when you need just the right birthday gifts for her. Just because you can't be there in person doesn't mean you can't touch their hearts from afar. Send a package of cookie love to tell them you are thinking of them. Our birthday cookies delivered fast and fresh anywhere in the nation.
Our moist and chewy "Happy Birthday" cookie cakes are the perfect talking piece for your party. Mrs. Fields® famous Nibblers are an ideal gift to share. Featuring triple chocolate, peanut butter, oatmeal walnut and semi-sweet; everyone's favorite is here.
We deliver a huge variety of freshly baked birthday cookies from chocolate chip to hand-dipped and our sizes range from bite sized to cake sized. We guarantee freshness and our superio quality standards ensure that your gourmet cookies will stay fabulous and fresh from the oven to their arrival at your recipient's door. With our super delivery options, our birthday cookies can turn an almost "belated birthday gift" into an on-time treat, sure to brighten their day.
Add a keepsake to your gourmet birthday cookies that they'll remember long after the last cookie has disappeared. We have a wonderful selection of both new and classic Mrs. Fields cookies. A sense of fun and imagination is baked into all of our cookie offerings, to delight old and young on their birthday. Look no further than Shari's Berries to find the perfect gourmet birthday cookies delivery for friends, family and colleagues.


text:
"Leave it to a human to not even appreciate when an Orc awaits permission." Qadr's fists snapped open like a chunk of ice shattering in sudden heat. The spell that had been waiting was unleashed in a fast, violent moment, that slid outward with unsettling silence and stillness. It was violent like a breeze over a misted harbor, breaking smooth clouds into a maelstrom, but doing so unnoticed, a whisper without breath. Drops of condensation ran from the gem on Qadr's head down the bridge of her nose like clear, cold blood from a concealed wound.
From the direction of the audible server, a number of small bodies approached, fur wet and sandy. They moved cautiously and stopped away off, four cats coming just into sight and stopping among a small stand of weeds. They sat and watched, curious.
Qadr spoke suddenly, "This was not an isolated incident." Her face turned northward, in the direction of the barn many miles away. The mist that had gathered around the gem on her head began to disperse. "That place had been used before. The troll was protecting the ritual at the cost of her life."


text:
Cupcakes For Cousin CarrieAugust 28, 2011 at 10:23 PM | Posted in cupcakes, recipe | 16 Comments
Tags: bee, honey
My cousin Carrie is getting married on October 1, 2011 (Eek!) Actually she's my husband's cousin but we're very close (she was a bridesmaid at my wedding!) so we always introduce each other as cousins. Not cousins-in-law. That sounds too forced. Just cousins. We're use to the confused look. I can tell by peoples' 15 second pause that they are debating if it's rude to ask if one of us is adopted. lol
So when her mom called me to ask if I'd bake cupcakes for her bridal shower, I said "OF COURSE!"
I got her bridal shower invitation and it had an understated bee theme. I remember talking to Carrie on the phone and loved when she said "I wanted a bee theme for my bridal shower b/c [fiance] is my honey!" She pretty much gave me creative license on the cupcakes. The only thing she requested was "cream cheese frosting". So I took that idea and ran.
I immediately thought of my favorite cupcake cookbook, What's New Cupcake by Karen Tack and Alan Richardson. I consider Alan my cupcake mentor. I wish he lived closer so I could do more than just talk on the phone with him. (Hi Alan!!) So I knew their honeycomb cupcakes would be PERFECT for the bridal shower.
But you know me. I had to change it up a little.
Alan and Karen use canned frosting and cake mixes. Unlike other cupcake-ers, I have no beef with cake mixes and canned frosting but since I haven't baked in a LONG time I decided to dig out my favorite vanilla cupcake, cream cheese frosting and sugar cookie recipes. But I don't like black jelly beans. Blech! So I used chocolate covered almonds (bees) instead. Mmmmm!
Oh Ginger Spice, I've missed you…
Two days later. My kitchen is still a disaster zone.
No biggie. Oh honeyyyyyy! Your time to shine. ♥♥♥
Vanilla Cupcakes with Honey Cream Cheese Frosting
Recipe adapted from What's New Cupcake by Karen Tack & Alan Richardson, Cupcakes by Shelly Kaldunski and Bake at 350
Makes 36 cupcakes
For vanilla cupcakes
5 cups AP flour
6 tsp baking powder
1 tsp salt
3 cup sugar
24 tbsp (3 sticks) butter, room temperature
4 large egg + 4 egg whites, room temperature
4 tsp vanilla extract
2 cups milk (I used half-and-half instead)
For honey cream cheese frosting*
2-8 oz package cream cheese, softened (I used Neufchatel cheese)
3 cups powdered sugar, sifted plus extra if needed
2 tsp vanilla extract
1/4-1/2 cup honey** plus more for assembling honeycomb
* Depending on how much frosting you pipe on each cupcake, you may have some leftovers.
** Use the amount to desired honey taste.
For honey comb cookies***
3 cup AP flour
2 tsp baking powder
1 cup sugar
2 sticks (salted) butter, cold (I used unsalted butter)
1 egg
3/4 tsp vanilla extract
1/2 tsp almond extract
3 tbsp light corn syrup
yellow sprinkles (I used Cakemate from my grocery store baking aisle)
*** Cookies can be made up to 2 days advance and stored in a air tight container.
For "bees"
chocolate covered almonds
yellow gel food coloring
almond slivers
To make honeycomb cookies—
Preheat oven to 350F. Line baking sheets with parchment paper.
In a large bowl, combine the flour and baking powder. Set aside.
Cream the sugar and butter. Add the egg and extracts and mix. Gradually add the flour mixture and beat just until combined, scraping down the bowl. Make sure you get everything that settles on the bottom.
The dough will be crumbly (That's ok!). Knead it together with your hands as you scoop it out of the bowl until it comes together.
Roll dough to 1/4″ inch thick on a floured surface and cut into hexagon shapes. If you don't have a hexagon cookie cutter, you can print out the template I used (here). Place on baking sheet and let chill in the refrigerator for 5-10 minutes before baking. Bake for 10-12 minutes until cookies are firm to the touch and lightly golden. Let cool completely.
Place yellow sprinkles in a shallow bowl. Microwave the corn syrup in a microwave safe bowl for about 10 seconds. Using a food dedicated brush, coat the cookie with corn syrup and dip in the yellow sprinkles to coat.
To make cupcakes—
Preheat oven to 350F. Prepare cupcake pan with paper liners.
In a large bowl, sift flour, baking powder and salt. Set aside. In a stand mixer, fitted with flat beater, beat the sugar and butter until well combined, about 2-3 minutes. Add egg and egg white, one at a time, beating on low.
Then add vanilla. Gradually add flour mixture in 3 additions, alternating with milk in 2 additions, ending with the flour mixture.
Fill cupcake liners about 1/2-2/3 full. Bake for about 17-20 minutes or until a toothpick inserted in the middle comes out clean. Remove from pan and cool completely on a wire cooling rack before frosting.
To make frosting—
In a stand mixer, fitted with a flat beater, mix the cream cheese until light and fluffy, about 1-2 minutes. Gradually add the powder sugar until well combined. Add vanilla extract and honey. If the frosting is too thin, you can add more powdered sugar until you get desired consistency. Add yellow gel food coloring to desired shade. (I added about 5-6 drops)
NOTES: I reserved 2 cups of frosting for honeycomb cupcakes but in retrospect I really didn't have to. Who cares if the center of the honeycomb is white frosting right? It gets filled in with honey anyways.
CUPCAKE 1: Honeycomb cupcakes
Spread the top of 13 cupcakes with frosting. Adhere 1 cookie on top of each cupcake. Arrange 5 cupcakes on a serving platter and 4 cupcakes on each side. Position the cookies to form a honeycomb.
Pipe frosting in random places along the honeycomb and attach a chocolate covered almond. Fill a piping bag (or ziplock bag) with frosting. Snip a small hole in the bag. Draw "stripes" on the chocolate covered almond in a zig-zag pattern. Adhere 2 almond slivers (one on each side) as bee wings.
Add 1 tbsp of honey in the middle of each cookie right before serving.
CUPCAKE 2: Beehive cupcakes
Using a Magic Tip 9ST (or your favorite round tip) pipe the frosting on each cupcake. Add 1 chocolate covered almond on top of frosted cupcake. Fill a piping bag (or ziplock bag) with yellow frosting. Snip a small hole in the bag. Draw "stripes" on the chocolate covered almond in a zig-zag pattern. Adhere 2 almond slivers (one on each side) as bee wings.
Husband rating: N/A
Wifey rating: A+
Is there anything BETTER than a cupcake garnished with a sprinkled decorated cookie? I don't think so! Since I'm a frosting girl, I loved the honey cream cheese frosting but I might up the honey quotient next time to really get the honey punch of flavor.
Other rating: A+
Cousin Carrie and all guests RAVED about the honeycomb cupcakes. But the BEST compliment came from my Niece Allison (age 18 months).
I told you. lol
Create a free website or blog at WordPress.com.
Entries and comments feeds.


text:
Don't worry. This rhino is alive and well. He's just sleeping while flying high over the South African landscape tied to a military helicopter. But why did he have to travel 15 miles flying upside down?
The answer is simple: to save his life. The rhino, part of a group of 19, was peacefully living on hills inaccesible by road on the Eastern Cape. Hunters looking for their horns are in that area, so scientists from the World Wildlife Fund decided to save them, moving them to safe area. The rhinos had to travel for 15 miles to meet the trucks that took them to their final destination, 1000 miles up north, in South Africa's Limpopo province, near Zimbabwe and Botswana. [Daily Mail]
You can keep up with Jesus Diaz the author of this post, on Twitter or Facebook.


text:
For those who cannot forget Beirut bombings, Marine veteran walks
By THOMAS BRENNAN | The (Jacksonville, N.C.) Daily News | Published: October 2, 2013
JACKSONVILLE, N.C.— Doc Doolittle's journey is more than a calling; it's an obligation.
An obligation to the fallen, the survivors and the families involved in the 1983 bombing in Beirut, Lebanon.
Tuesday, at the Veterans of Foreign Wars post in Swansboro, Doolittle began a daily 12.5-mile walk in and around Jacksonville — and he will continue over the next 22 days, ending at Lejeune Memorial Gardens on Oct. 23. On that day, he will have walked more than 273 symbolic miles — one for each servicemember who died during the terrorist attacks in Beirut.
"These guys need to be remembered and I feel as though they are forgotten for the most part," said Doolittle, 52, of Centennial, Colo. "In Jacksonville, it is well known, but even in the young part of the Marine Corps, there's not a lot of people who remember what happened 30 years ago. And even fewer people know across America. It needs to be brought to people's attention."
At 22 years old, Doolittle was a Marine stationed at Marine Corps Air Station Beaufort, S.C. when the bombing erupted. When he thinks about the bombing now, he still can feel his fury on that day. Doolittle said he and some fellow Marines all wanted to fly to Lebanon and get revenge. According to him, the bombing in Beirut was a major start of hostility in the war on terror — something that should require a moment of silence across the United States.
"The bombing is still a pretty tragic event," Doolittle said. "Unlike many other notable historical events, it seems as though it's lost in the blur but in 1983 it was a pretty big deal. The reason to do this is because of that loss — to recognize everyone involved."
A sense of accomplishment is all Doolittle said he expects to get out of the walk but if it brings attention to the anniversary or inspires one person to reflect, then it will be worth it. Doolittle believes that attacks like the one in Beirut should be taught in schools, but fears they are not.
"Twelve and one half miles per day doesn't really sound like a lot but it's going to cause a lot of wear and tear on my body," Doolittle said. "If I can do more miles each day in the beginning to make it easier in the end then I will, but we will see. I know what's going to happen to me. It's going to be tiring."
Doolittle has been planning the event for more than four years and has received nothing but support from Lockheed Martin and Argus, his two employers who allowed him to take a month off of work to complete the walk, he said.
In 2008, Doolittle completed a similar walk for the 25th anniversary that began in Virginia Beach, Va. and ended in Jacksonville after a total of 246 miles. He is confident that he will complete the additional mileage required to reach his 273 mile total, he said.
"The Marine bond drives this," said Doolittle, whose son is a Marine with 2nd Battalion, 10th Marines aboard Camp Lejeune. "The Corps is a bond that should never be broken. We should always recall our past. Marines do the things we do because of what others have done before us. We do it for the guy next to us. We do it for the guys who died in combat or in other ways and to push the Marine Corps in a better position. The Marine Corps is a fraternal order that has an indescribable bond. We take care of each other and we never forget."
For those interested in following Doolittle's progress, follow him on Facebook by searching for #Beirut or by emailing him at firstname.lastname@example.com.


text:
There may be other organizations and people who will be rising up to raise funds to help these people in Africa. We strongly advise you to be wise in your giving. Check with others or your pastors on the background of the organizations or the persons involved in the fund raising, to ensure that all monies collected are really reaching those affected. God bless.
by Peter Warski, World Vision US
16 August, 5:57 pm
The number of people affected by devastating drought and hunger in East Africa, also known as the Horn of Africa, has catapulted from 7 million in March to more than 13 million now. Vulnerable children and families are subject to extreme and potentially deadly malnutrition as livestock perish, vital crops are destroyed, and diseases increase.
Informed by these disturbing statistics — as well as reports from our field offices, international media, partner agencies, and the World Vision international partnership emergency response team — we've compiled the following information, which answers the who, what, when, where, and why of the drought and food crisis in East Africa. Expect more posts to come concerning this crisis.
WHO is affected?
An estimated 13 million people in East Africa — 2.7 million of whom live in World Vision's areas of operation.
An estimated 13 million people in East Africa — 2.7 million of whom live in World Vision's areas of operation.
- Cattle-herders are hit hardest, due to lack of food and pastures for their animals. "Many of those who have been hit the hardest are pastoralists," said Nicholas Wasunna, World Vision's emergency adviser based in Kenya. "Where they used to trade two goats for food, they are now trading four goats for the same amount of food."
- 26 out of World Vision's 63 area development programs (ADPs) in Kenya are affected.
- 32 out of 68 ADPs in Ethiopia are located within some of the highly affected areas.
- More than 200,000 children directly supported by World Vision live in areas under distress.
- In Somalia, approximately 70,000 children within World Vision's areas of operation are in need of emergency assistance.
- Changing weather patterns now affect Tanzania, where more than 500,000 people are affected in 23 World Vision ADPs.
WHAT is the cause of the crisis? The worst drought in over 60 years is causing a major food and hunger crisis.
WHEN is it predicted to end? Meteorologists forecast that the region may not receive normal rains until early 2012, and scientists have described the year 2010-2011 as the driest period in the region since 1950-1951. "The international community needs to take immediate action, because this drought is likely to persist until 2012," Wasunna said. "We have not seen the worst yet."
WHERE exactly is this happening? Drought is widespread across East Africa, also referred to as the Horn of Africa, including the countries of Kenya, Somalia, Ethiopia, and now, Tanzania.
- In Kenya, World Vision is working to increase access to safe water by rehabilitating boreholes and trucking water to vulnerable communities. We're also providing nutritious food through targeted community distributions and cash voucher systems in places where food is available at local markets.
- In Ethiopia, World Vision is implementing a six-month emergency response to aid more than 485,000 people severely affected by the drought. They will be provided with grain, seeds, livestock, and medical support, while vulnerable children and mothers will receive supplementary food.
- The crisis is especially dire in Somalia, where there are scarce resources in the South Central region after aid organizations were forced to leave in August of last year. Many Somalis are fleeing to Kenya to receive services in overcrowded refugee camps or stay with family, further stressing already limited resources. World Vision notes a recent announcement that aid organizations will be allowed back into Somalia's South Central region, and we will coordinate with the United Nations and other humanitarian organizations to assess the possibility of returning to the area to deliver aid.
- In drought-affected communities in the regions of Somaliland and Puntland, World Vision is drilling boreholes and rehabilitating clean water storage facilities, as well as providing emergency feeding and cash-for-work programs.
- Some parts of Uganda, Burundi, and the new Republic of South Sudan are also showing signs of stress from a combination of drought and increasing fuel and food prices. World Vision is closely monitoring these places as well.
WHY is World Vision responding?
With the number of people in distress and in urgent need of humanitarian assistance, the situation is dire. Global acute malnutrition rates in East Africa have increased exponentially, ranging between 23 percent in Kenya, 25.5 percent in Ethiopia, and 30 percent in Somalia. These figures are far above the 15-percent threshold typically seen in emergency situations. Reports also show a sharp increase in school closures, the number of children dropping out of school, increasing separation between children and parents, and child protection challenges. The humanitarian effects of the drought and hunger crisis will have lasting impact on millions in East Africa.
HOW can you help?
World Vision is responding to this crisis through feeding programs, food distributions, agricultural training, development of irrigation systems, peacebuilding between tribes, and more. Malaysians interested to contribute, do use this donation form and indicate "Horn of Africa Drought & Hunger Crisis" behind the cheque. Thank you.
World Vision is responding to this crisis through feeding programs, food distributions, agricultural training, development of irrigation systems, peacebuilding between tribes, and more. Malaysians interested to contribute, do use this donation form and indicate "Horn of Africa Drought & Hunger Crisis" behind the cheque. Thank you.
Please go directly to World Vision Malaysia website to donate. God bless.
Please go directly to World Vision Malaysia website to donate. God bless.


text:
|Message view
|« Date » · « Thread »
|« Date » · « Thread »
|Apache Wiki <wikidi...@apache.org>
|[Nutch Wiki] Trivial Update of "OldHadoopTutorial" by LewisJohnMcgibbney
|Fri, 02 Sep 2011 19:58:02 GMT
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Nutch Wiki" for change notification. The "OldHadoopTutorial" page has been changed by LewisJohnMcgibbney: http://wiki.apache.org/nutch/OldHadoopTutorial New page: = How to Setup Nutch (V1.1) and Hadoop = -------------------------------------------------------------------------------- Note: Originally this ([[NutchHadoopTutorial0.8]]) was written for version 0.8 of Nutch. This has been edited by people other than the original author so statements like "I did this" or "I recommend that" are slightly misleading. -------------------------------------------------------------------------------- By default, out of the box, Nutch runs in a single process on one machine. This may suit you fine if you have a small site to crawl and index, but most people choose Nutch because of its capability to run on a Hadoop cluster. This gives you the benefit of a distributed file system (HDFS) and MapReduce processing style. The purpose of this tutorial is to provide a step-by-step method to get Nutch running with Hadoop file system on multiple machines, including being able to both index (crawl) and search across multiple machines. This document does not go into the Nutch or Hadoop architecture. It only tells how to get the systems up and running. At the end of the tutorial though I will point you to relevant resources if you want to know more about the architecture of Nutch and Hadoop. The tutorial comes in two phases. Firstly we get Hadoop running on a single machine (a bit of a simple cluster!) and then more than one machine. === Assumptions === Some things are assumed for this tutorial: First: I performed some setup and using root level access. This included setting up the same user across multiple machines and setting up a local filesystem outside of the user's home directory. Root access is not required to setup Nutch and Hadoop (although sometimes it is convenient). If you do not have root access, you will need the same user setup across all machines which you are using and you will probably need to use a local filesystem inside of your home directory. Two: all boxes will need an SSH server running (not just a client) as Hadoop uses SSH to start slave servers. Although we try to explain how to set up ssh so that communication between machines does not require a password you may need to learn how to do that elsewhere. Three: This tutorial uses Whitebox Enterprise Linux 3 Respin 2 (WHEL). For those of you who don't know Whitebox, it is a RedHat Enterprise Linux clone. You should be able to follow along for any linux system, but the systems I use are Whitebox. (Later versions of this document have been tested using Ubuntu Linux, but as before Four: This tutorial was originally written for Nutch 0.8 Dev Revision 385702, but has been updated to work with Nutch 1.1RC. It may not be compatible with future releases of either Nutch or Hadoop. Five: For this tutorial we setup nutch across 6 different computers. If you are using a different number of machines you should still be fine but you should have at least two different machines to prove the distributed capabilities of both HDFS and MapReduce. Six: Remember that this is a tutorial from my personal experience setting up Nutch and Hadoop. If something doesn't work for you try searching and sending a message to the Nutch or Hadoop users mailing list. Suggestions or tips are welcome. Why not add them to the end of this Wiki page? Seven: We assume that you are a Java programmer familiar with the concepts of JAVA_HOME, ant build tool, subversion, IDEs and such like. == Our Network Setup == -------------------------------------------------------------------------------- First let me layout the computers that we used in our setup. To setup Nutch and Hadoop we had 7 commodity computers ranging from 750Mghz to 1.0 Ghz. Each computer had at least 128 Megs of RAM and at least a 10 Gigabyte hard drive. One computer had dual 750 Mghz CPUs and another had dual 30 Gigabyte hard drives. All of these computers were purchased for under $500.00 at a liquidation sale. I am telling you this to let you know that you don't have to have big hardware to get up and running with Nutch and Hadoop. Our computers were named like this: {{{ devcluster01 devcluster02 devcluster03 devcluster04 devcluster05 devcluster06 }}} Our master node was devcluster01. By master node I mean that it ran the Hadoop services that coordinated with the slave nodes (all of the other computers) and it was the machine on which we performed our crawl and deployed our search website. == Downloading Nutch and Hadoop == -------------------------------------------------------------------------------- Both Nutch and Hadoop are downloadable from the Apache website. The necessary Hadoop files are bundled with Nutch so unless you are going to be developing Hadoop you only need to download Nutch. We built Nutch from source after downloading it from its subversion repository. Nightly builds of Nutch can be found here: http://hudson.zones.apache.org/hudson/job/Nutch-trunk/ At time of writing this version (Jun 2010) Nutch includes Hadoop Jars version 0.20.2 You can get a packaged tarball or extract from subversion. Knowing how to use tar or subversion is outside of the scope of this tutorial. Once you have a subversion client you can either browse the Nutch subversion webpage at: http://nutch.apache.org/version_control.html Or you can access the Nutch subversion repository through the client at: http://svn.apache.org/repos/asf/nutch/ (previously at http://svn.apache.org/repos/asf/lucene/nutch/ when Nutch was a part of Lucene) We are going to use ant to build it so if you have java and ant installed you should be fine. I am not going to go into how to install java or ant, if you are working with this level of software you should know how to do that and there are plenty of tutorial on building software with ant. If you want a complete reference for ant pick up Erik Hatcher's book "''Java Development with Ant''": http://www.manning.com/hatcher It is worth noting that previous versions of Nutch came already built. But nowadays the release is just source code and so does have to be built before use. == Building Nutch and Hadoop == -------------------------------------------------------------------------------- Once you have Nutch downloaded and unpacked look inside it where you should see the following folders and files: {{{ + bin + conf + docs + lib + site + src build.properties (add this one) build.xml CHANGES.txt default.properties index.html LICENSE.txt README.txt }}} Add a build.properties file and inside of it add a variable called dist.dir with its value being the location where you want to build nutch. So if you are building on a linux machine it would look something like this: {{{ dist.dir=/path/to/build }}} This step is actually optional as Nutch will create a build directory inside of the directory where you unzipped it by default, but I prefer building it to an external directory. You can name the build directory anything you want but I recommend using a new empty folder to build into. Remember to create the build folder if it doesn't already exist. To build nutch call the package ant task like this: {{{ ant package }}} This should build nutch into your build folder. When it is finished you are ready to move on to deploying and configuring nutch. == Setting Up The Deployment Architecture == -------------------------------------------------------------------------------- Once we get nutch deployed to all six machines we are going to call a script called start-all.sh that starts the services on the master node and data nodes. This means that the script is going to start the hadoop daemons on the master node and then will ssh into all of the slave nodes and start daemons on the slave nodes. The start-all.sh script is going to expect that nutch is installed in exactly the same location on every machine. It is also going to expect that Hadoop is storing the data at the exact same filepath on every machine. The way we did it was to create the following directory structure on every machine. The search directory is where Nutch is installed. The filesystem is the root of the hadoop filesystem. The home directory is the nutch users's home directory. On our master node we also installed a tomcat 5.5 server for searching. {{{ /nutch /search (nutch installation goes here) /filesystem /local (used for local directory for searching) /home (nutch user's home directory) /tomcat (only on one server for searching) }}} I am not going to go into detail about how to install Tomcat as again there are plenty of tutorials on how to do that. I will say that we removed all of the wars from the webapps directory and created a folder called ROOT under webapps into which we unzipped the Nutch war file (nutch-0.8-dev.war). This makes it easy to edit configuration files inside of the Nutch war So log into the master nodes and all of the slave nodes as root. Create the nutch user and the different filesystems with the following commands: {{{ ssh -l root devcluster01 mkdir /nutch mkdir /nutch/search mkdir /nutch/filesystem mkdir /nutch/local mkdir /nutch/home groupadd users useradd -d /nutch/home -g users nutch chown -R nutch:users /nutch passwd nutch nutchuserpassword }}} Again if you don't have root level access you will still need the same user on each machine as the start-all.sh script expects it. It doesn't have to be a user named nutch user although that is what we use. Also you could put the filesystem under the common user's home directory. Basically, you don't have to be root, but it helps. The start-all.sh script that starts the daemons on the master and slave nodes is going to need to be able to use a password-less login through ssh. For this we are going to have to setup ssh keys on each of the nodes. Since the master node is going to start daemons on itself we also need the ability to user a password-less login on itself. You might have seen some old tutorials or information floating around the user lists that said you would need to edit the SSH daemon to allow the property PermitUserEnvironment and to setup local environment variables for the ssh logins through an environment file. This has changed. We no longer need to edit the ssh daemon and we can setup the environment variables inside of the hadoop-env.sh file. Open the hadoop-env.sh file inside of vi: {{{ cd /nutch/search/conf vi hadoop-env.sh }}} Below is a template for the environment variables that need to be changed in the hadoop-env.sh file: {{{ export HADOOP_HOME=/nutch/search export JAVA_HOME=/usr/java/jdk1.5.0_06 export HADOOP_LOG_DIR=${HADOOP_HOME}/logs export HADOOP_SLAVES=${HADOOP_HOME}/conf/slaves }}} There are other variables in this file which will affect the behavior of Hadoop. If when you start running the script later you start getting ssh errors, try changing the HADOOP_SSH_OPTS variable. Note also that, after the initial copy, you can set HADOOP_MASTER in your conf/hadoop-env.sh and it will use rsync changes on the master to each slave node. There is a section below on how to do this. Next we are going to create the keys on the master node and copy them over to each of the slave nodes. This must be done as the nutch user we created earlier. Don't just su in as the nutch user, start up a new shell and login as the nutch user. If you su in the password-less login we are about to setup will not work in testing but will work when a new session is started as the nutch user. {{{ cd /nutch/home ssh-keygen -t rsa (Use empty responses for each prompt) Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /nutch/home/.ssh/id_rsa. Your public key has been saved in /nutch/home/.ssh/id_rsa.pub. The key fingerprint is: a6:5c:c3:eb:18:94:0b:06:a1:a6:29:58:fa:80:0a:bc nutch@localhost }}} On the master node you will copy the public key you just created to a file called authorized_keys in the same directory: {{{ cd /nutch/home/.ssh cp id_rsa.pub authorized_keys }}} You only have to run the ssh-keygen on the master node. On each of the slave nodes after the filesystem is created you will just need to copy the keys over using scp. eg to send the authorisation from to devcluster02 we might do this on devcluster01 {{{ scp /nutch/home/.ssh/authorized_keys nutch@devcluster02:/nutch/home/.ssh/authorized_keys }}} You will have to enter the password for the nutch user the first time. An ssh prompt will appear the first time you login to each computer asking if you want to add the computer to the known hosts. Answer yes to the prompt. Once the key is copied you shouldn't have to enter a password when logging in as the nutch user. Test it by logging into the slave nodes that you just copied the keys to: {{{ ssh devcluster02 nutch@devcluster02$ (a command prompt should appear without requiring a password) hostname (should return the name of the slave node, here devcluster02) }}} Once we have the ssh keys created we are ready to start deploying nutch to all of the slave nodes. (Note: this is a rather simple example of how to set up ssh without requiring a passphrase. There are other documents available which can help you with this if you have problems. It is important to test that the nutch user can ssh to all of the machines in your cluster so don't skip this stage) == Deploy Nutch to Single Machine == -------------------------------------------------------------------------------- First we will deploy nutch to a single node, the master node, but operate it in distributed mode. This means that it will use the Hadoop filesystem instead of the local filesystem. We will start with a single node to make sure that everything is up and running and will then move on to adding the other slave nodes. All of the following should be done from a session started as the nutch user. We are going to setup nutch on the master node and then when we are ready we will copy the entire installation to the slave nodes. First copy the files from the nutch build to the deploy directory using something like the following command: {{{ cp -R /path/to/build/* /nutch/search }}} Then make sure that all of the shell scripts are in unix format and are executable. {{{ dos2unix /nutch/search/bin/*.sh /nutch/search/bin/hadoop /nutch/search/bin/nutch chmod 700 /nutch/search/bin/*.sh /nutch/search/bin/hadoop /nutch/search/bin/nutch dos2unix /nutch/search/config/*.sh chmod 700 /nutch/search/config/*.sh }}} When we were first trying to setup nutch we were getting bad interpreter and command not found errors because the scripts were in dos format on linux and not executable. Notice that we are doing both the bin and config directory. In the config directory there is a file called hadoop-env.sh that is called by other scripts. There are a few scripts that you will need to be aware of. In the bin directory there is the nutch script, the hadoop script, the start-all.sh script and the stop-all.sh script. The nutch script is used to do things like start the nutch crawl. The hadoop script allows you it interact with the hadoop file system. The start-all.sh script starts all of the servers on the master and slave nodes. The stop-all.sh. scrip stops all of the servers. If you want to see options for nutch use the following command: {{{ bin/nutch }}} Or if you want to see the options for hadoop use: {{{ bin/hadoop }}} If you want to see options for Hadoop components such as the distributed filesystem then use the component name as input like below: {{{ bin/hadoop dfs }}} There are also files that you need to be aware of. In the conf directory there are the nutch-default.xml, the nutch-site.xml, the hadoop-default.xml and the hadoop-site.xml. The nutch-default.xml file holds all of the default options for nutch, the hadoop-default.xml file does the same for hadoop. To override any of these options, we copy the properties to their respective *-site.xml files and change their values. Previously we had all the hadoop configuration in a file called hadoop-site.xml but recent versions have put hadoop related config in different files: There is also a file named slaves inside the config directory. This is where we put the names of the slave nodes. Since we are running a slave data node on the same machine we are running the master node, we will also need the local computer in this slave list. Here is what the slaves file will look like to start. {{{ localhost }}} It comes this way to start so you shouldn't have to make any changes. Later we will add all of the nodes to this file, one node per line. Previously all the Hadoop configuration was in one file (hadoop-site.xml) but now we need to put roughly the same data in separate files. See http://hadoop.apache.org/common/docs/current/quickstart.html for more information. We are basically adding property entries inside the configuration tags... ===== conf/core-site.xml: ===== {{{ <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>fs.default.name</name> <value>hdfs://devcluster01:9000</value> <description> Where to find the Hadoop Filesystem through the network. Note 9000 is not the default port. (This is slightly changed from previous versions which didnt have "hdfs") </description> </property> </configuration> }}} The fs.default.name property is used by nutch to determine the filesystem that it is going to use. Since we are using the hadoop filesystem we have to point this to the hadoop master or name node. In this case it is hdfs://devcluster01:9000 which is the server that houses the name node on our network. The hadoop package really comes with two components. One is the distributed filesystem. Two is the mapreduce functionality. While the distibuted filesystem allows you to store and replicate files over many commodity machines, the mapreduce package allows you to easily perform parallel programming tasks. ===== conf/hdfs-site.xml: ===== {{{ <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>dfs.name.dir</name> <value>/nutch/filesystem/name</value> </property> <property> <name>dfs.data.dir</name> <value>/nutch/filesystem/data</value> </property> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> }}} Note that the dfs-replication value of "1" means no duplication. This is only meaningful on a single machine test cluster. It should typically be 3 or more - but of course you must have at least that number of working nodes in your Hadoop cluster. ===== conf/mapred-site.xml: ===== {{{ <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>mapred.job.tracker</name> <value>devcluster01:9001</value> <description> The host and port that the MapReduce job tracker runs at. If "local", then jobs are run in-process as a single map and reduce task. Note 9001 is not the default port. </description> </property> <property> <name>mapred.map.tasks</name> <value>2</value> <description> define mapred.map tasks to be number of slave hosts </description> </property> <property> <name>mapred.reduce.tasks</name> <value>2</value> <description> define mapred.reduce tasks to be number of slave hosts </description> </property> <property> <name>mapred.system.dir</name> <value>/nutch/filesystem/mapreduce/system</value> </property> <property> <name>mapred.local.dir</name> <value>/nutch/filesystem/mapreduce/local</value> </property> </configuration> }}} The distributed file system has name nodes and data nodes. When a client wants to manipulate a file in the file system it contacts the name node which then tells it which data node to contact to get the file. The name node is the coordinator and stores what blocks (not really files but you can think of them as such for now) are on what computers and what needs to be replicated to different data nodes. The data nodes are just the workhorses. They store the actual files, serve them up on request, etc. So if you are running a name node and a data node on the same computer it is still communicating over sockets as if the data node was on a different computer. I won't go into detail here about how mapreduce works, that is a topic for another tutorial and when I have learned it better myself I will write one, but simply put mapreduce breaks programming tasks into map operations (a -> b,c,d) and reduce operations (list -> a). Once a probelm has been broken down into map and reduce operations then multiple map operations and multiple reduce operations can be distributed to run on different servers in parallel. So instead of handing off a file to a filesystem node, we are handing off a processing operation to a node which then processes it and returns the result to the master node. The coordination server for mapreduce is called the mapreduce job tracker. Each node that performs processing has a daemon called a task tracker that runs and communicates with the mapreduce job tracker. The nodes for both the filesystem and mapreduce communicate with their masters through a continuous heartbeat (like a ping) every 5-10 seconds or so. If the heartbeat stops then the master assumes the node is down and doesn't use it for future operations. The mapred.job.tracker property specifies the master mapreduce tracker so I guess it is possible to have the name node and the mapreduce tracker on different computers. That is something I have not done yet. The mapred.map.tasks and mapred.reduce.tasks properties tell how many tasks you want to run in parallel. This should be a multiple of the number of computers that you have. In our case since we are starting out with 1 computer we will have 2 map and 2 reduce tasks. Later we will increase these values as we add more nodes. The dfs.name.dir property is the directory used by the name node to store tracking and coordination information for the data nodes. The dfs.data.dir property is the directory used by the data nodes to store the actual filesystem data blocks. Remember that this is expected to be the same on every node. The mapred.system.dir property is the directory that the mapreduce tracker uses to store its data. This is only on the tracker and not on the mapreduce hosts. The mapred.local.dir property is the directory on the nodes that mapreduce uses to store its local data. I have found that mapreduce uses a huge amount of local space to perform its tasks (i.e. in the Gigabytes). That may just be how I have my servers configured though. I have also found that the intermediate files produced by mapreduce don't seem to get deleted when the task exits. Again that may be my configuration. This property is also expected to be the same on every node. The dfs.replication property states how many servers a single file should be replicated to before it becomes available. Because we are using only a single server for right now we have this at 1. If you set this value higher than the number of data nodes that you have available then you will start seeing alot of (Zero targets found, forbidden1.size=1) type errors in the logs. We will increase this value as we add more nodes. Before you start the hadoop server, make sure you format the distributed filesystem for the name node: {{{ bin/hadoop namenode -format }}} And check the logs directory looking for errors. Now that we have our hadoop configured and our slaves file configured it is time to start up hadoop on a single node and test that it is working properly. To start up all of the hadoop servers on the local machine (name node, data node, mapreduce tracker, job tracker) use the following command as the nutch user: {{{ cd /nutch/search bin/start-all.sh }}} To stop all of the servers you would use the following command: {{{ bin/stop-all.sh }}} If everything has been setup correctly you should see output saying that the name node, data node, job tracker, and task tracker services have started. If this happens then we are ready to test out the filesystem. You can also take a look at the log files under /nutch/search/logs to see output from the different daemons services we just started. You might want to look at http://localhost:50070/ with a web browser to confirm that the NameNode is up and running. (Replace localhost with devcluster01 or whatever you main host is called) You can also look at http://localhost:50030/ to confirm that the JobTracker is up and running. (These ports seem to remain the same no matter that we entered "9000" and "9001" above. To test the filesystem we are going to create a list of urls that we are going to use later for the crawl. Run the following commands: {{{ cd /nutch/search mkdir urlsdir vi urlsdir/urllist.txt http://lucene.apache.org }}} You should now have a urls/urllist.txt file with the one line pointing to the apache lucene site. Now we are going to add that directory to the filesystem. Later the nutch crawl will use this file as a list of urls to crawl. To add the urls directory to the filesystem run the following command: {{{ cd /nutch/search bin/hadoop dfs -put urlsdir urlsdir }}} You should see output stating that the directory was added to the filesystem. You can also confirm that the directory was added by using the ls command: {{{ cd /nutch/search bin/hadoop dfs -ls }}} Something interesting to note about the distributed filesystem is that it is user specific. If you store a directory urls under the filesystem with the nutch user, it is actually stored as /user/nutch/urls. What this means to us is that the user that does the crawl and stores it in the distributed filesystem must also be the user that starts the search, or no results will come back. You can try this yourself by logging in with a different user and runing the ls command as shown. It won't find the directories because is it looking under a different directory /user/username instead of /user/nutch. If everything worked then you are good to add other nodes and start the crawl. == Deploy Nutch to Multiple Machines == -------------------------------------------------------------------------------- '''The main point is to copy nutch-* (under $nutch_home/conf) and crawl-urlfilter.txt files to $hadoop_home/conf (all machines, including master and slaves) folder so that the hadoop cluster can pick up those configuration when startup. Otherwise nutch will complain with messages e.g. "0 records selected for fetching, exiting .. URLs to fetch - check your seed list and URL filters."''' Once you have got the single node up and running we can copy the configuration to the other slave nodes and setup those slave nodes to be started out start script. First if you still have the servers running on the local node stop them with the stop-all script. To copy the configuration to the other machines run the following command. If you have followed the configuration up to this point, things should go smoothly: {{{ cd /nutch/search scp -r /nutch/search/* nutch@computer:/nutch/search }}} Do this for every computer you want to use as a slave node. Then edit the slaves file, adding each slave node name to the file, one per line. You will also want to edit the hadoop-site.xml file and change the values for the map and reduce task numbers, making this a multiple of the number of machines you have. For our system which has 6 data nodes I put in 32 as the number of tasks. The replication property can also be changed at this time. A good starting value is something like 2 or 3. *(see Note at bottom about possibly having to clear filesystem of new datanodes). Once this is done you should be able to startup all of the nodes. To start all of the nodes we use the exact same command as before: {{{ cd /nutch/search bin/start-all.sh }}} '''A command like 'bin/slaves.sh uptime' is a good way to test that things are configured correctly before attempting to call the start-all.sh script.''' The first time all of the nodes are started there may be the ssh dialog asking to add the hosts to the known_hosts file. You will have to type in yes for each one and hit enter. The output may be a little wierd the first time but just keep typing yes and hitting enter if the dialogs keep appearing. You should see output showing all the servers starting on the local machine and the job tracker and data nodes servers starting on the slave nodes. Once this is complete we are ready to begin our crawl. == Performing a Nutch Crawl == -------------------------------------------------------------------------------- Now that we have the the distributed file system up and running we can peform our nutch crawl. In this tutorial we are only going to crawl a single site. I am not as concerned with someone being able to learn the crawling aspect of nutch as I am with being able to setup the distributed filesystem and mapreduce. To make sure we crawl only a single site we are going to edit crawl urlfilter file as set the filter to only pickup lucene.apache.org: {{{ cd /nutch/search vi conf/crawl-urlfilter.txt change the line that reads: +^http://([a-z0-9]*\.)*MY.DOMAIN.NAME/ to read: +^http://([a-z0-9]*\.)*apache.org/ }}} We have already added our urls to the distributed filesystem and we have edited our urlfilter so now it is time to begin the crawl. To start the nutch crawl use the following command: {{{ cd /nutch/search bin/nutch crawl urlsdir -dir crawl -depth 3 }}} We are using the nutch crawl command. The urlsdir is the urls directory that we added to the distributed filesystem. (I've called it "urlsdir" to make it clearer that it isn't merely the *file* containing urls). The "-dir crawl" is the output directory. This will also go to the distributed filesystem. The depth is 3 meaning it will only get 3 page links deep. There are other options you can specify, see the command documentation for those options. You should see the crawl startup and see output for jobs running and map and reduce percentages. You can keep track of the jobs by pointing you browser to the master name node: http://devcluster01:50070 and Mapreduce administration at http://devcluster01:50030 You can also startup new terminals into the slave machine and tail the log files to see detailed output for that slave node. The crawl will probably take a while to complete. When it is done we are ready to do the search. == Testing the Crawl == You might want to try some of these commands before doing a search {{{ bin/nutch readlinkdb crawl/linkdb -dump /tmp/linksdir in nutch1.2 linkdb should be chaneged to crawldb :bin/nutch readlinkdb crawl/crawldb -dump /tmp/linksdir mkdir /nutch/search/output/ bin/hadoop dfs -copyToLocal /tmp/linksdir /nutch/search/output/linksdir less /nutch/search/output/linksdir/* }}} Or if we want to look at the whole thing as a text file we might try {{{ bin/nutch readdb crawl/crawldb -dump /tmp/entiredump bin/hadoop dfs -copyToLocal /tmp/entiredump /nutch/search/output/entiredump less /nutch/search/output/entiredump/* }}} == Performing a Search == -------------------------------------------------------------------------------- To perform a search on the index we just created within the distributed filesystem we need to do two things. First we need to pull the index to a local filesystem and second we need to setup and configure the nutch war file. Although technically possible, it is not advisable to do searching using the distributed filesystem. The DFS is great for holding the results of the MapReduce processes including the completed index, but for searching it simply takes too long. In a production system you are going to want to create the indexes using the MapReduce system and store the result on the DFS. Then you are going to want to copy those indexes to a local filesystem for searching. If the indexes are too big (i.e. you have a 100 million page index), you are going to want to break the index up into multiple pieces (1-2 million pages each), copy the index pieces to local filesystems from the DFS and have multiple search servers read from those local index pieces. A full distributed search setup is the topic of another tutorial but for now realize that you don't want to search using DFS, you want to search using local filesystems. Once the index has been created on the DFS you can use the hadoop copyToLocal command to move it to the local file system as such. {{{ bin/hadoop dfs -copyToLocal crawl /d01/local/ }}} Your crawl directory should have an index directory which should contain the actual index files. Later when working with Nutch and Hadoop if you have an indexes directory with folders such as part-xxxxx inside of it you can use the nutch merge command to merge segment indexes into a single index. The search website when pointed to local will look for a directory in which there is an index folder that contains merged index files or an indexes folder that contains segment indexes. This can be a tricky part because your search website can be working properly but if it doesn't find the indexes, all searches will return nothing. If you setup the tomcat server as we stated earlier then you should have a tomcat installation under /nutch/tomcat and in the webapps directory you should have a folder called ROOT with the nutch war file unzipped inside of it. Now we just need to configure the application to use the distributed filesystem for searching. We do this by editing the hadoop-site.xml file under the WEB-INF/classes directory. Use the following commands: {{{ cd /nutch/tomcat/webapps/ROOT/WEB-INF/classes vi nutch-site.xml }}} Below is an template nutch-site.xml file: {{{ <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>fs.default.name</name> <value>local</value> </property> <property> <name>searcher.dir</name> <value>/d01/local/crawl</value> </property> </configuration> }}} The fs.default.name property is now pointed locally for searching the local index. Understand that at this point we are not using the DFS or MapReduce to do the searching, all of it is on a local machine. The searcher.dir directory is the directory where the index and resulting database are stored on the local filesystem. In our crawl command earlier we used the crawl directory which stored the results in "crawl" on the HDFS. Then we copied the crawl folder to our /d01/local directory on the local fileystem. So here we point this property to /d01/local/crawl. The directory which it points to should contain not just the index directory but also the linkdb, segments, etc. All of these different databases are used by the search. This is why we copied over the entire crawl directory and not just the index directory. Once the nutch-site.xml file is edited then the application should be ready to go. You can start tomcat with the following command: {{{ cd /nutch/tomcat bin/startup.sh }}} Then point you browser to http://devcluster01:8080 (your search server) to see the Nutch search web application. If everything has been configured correctly then you should be able to enter queries and get results. If the website is working but you are getting no results it probably has to do with the index directory not being found. The searcher.dir property must be pointed to the parent of the index directory. That parent must also contain the segments, linkdb, and crawldb folders from the crawl. The index folder must be named index and contain merged segment indexes, meaning the index files are in the index directory and not in a directory below index named part-xxxx for example, or the index directory must be named indexes and contain segment indexes of the name part-xxxxx which hold the index files. I have had better luck with merged indexes than with segment indexes. == Distributed Searching == -------------------------------------------------------------------------------- Although not really the topic of this tutorial, distributed searching needs to be addressed. In a production system, you would create your indexes and corresponding databases (i.e. crawldb) using the DFS and MapReduce, but you would search them using local filesystems on dedicated search servers for speed and to avoid network overhead. Briefly here is how you would setup distributed searching. Inside of the tomcat WEB-INF/classes directory in the nutch-site.xml file you would point the searcher.dir property to a file that contains a search-servers.txt file. The search servers.txt file would look like this. {{{ devcluster01 1234 devcluster01 5678 devcluster02 9101 }}} Each line contains a machine name and port that represents a search server. This tells the website to connect to search servers on those machines at those ports. On each of the search servers, since we are searching local directories, you would need to make sure that the filesystem in the nutch-site.xml file is pointing to local. One of the problems that I came across is that I was using the same nutch distribution to act as a slave node for DFS and MR as I was using to run the distributed search server. The problem with this was that when the distributed search server started up it was looking in the DFS for the files to read. It couldn't find them and I would get log messages saying x servers with 0 segments. I found it easiest to create another nutch distribution in a separate folder. I would then start the distributed search server from this separate distribution. I just used the default nutch-site.xml and hadoop-site.xml files which have no configuration. This defaults the filesystem to local and the distributed search server is able to find the files it needs on the local box. Whatever way you want to do it, if your index is on the local filesystem then the configuration needs to be pointed to use the local filesystem as show below. This is usually set in the hadoop-site.xml file. {{{ <property> <name>fs.default.name</name> <value>local</value> <description>The name of the default file system. Either the literal string "local" or a host:port for DFS.</description> </property> }}} On each of the search servers you would use the startup the distributed search server by using the nutch server command like this: {{{ bin/nutch server 1234 /d01/local/crawl }}} The arguments are the port to start the server on which must correspond with what you put into the search-servers.txt file and the local directory that is the parent of the index folder. Once the distributed search servers are started on each machine you can startup the website. Searching should then happen normally with the exception of search results being pulled from the distributed search server indexes. In the logs on the search website (usually catalina.out file), you should see messages telling you the number of servers and segments the website is attached to and searching. This will allow you to know if you have your setup correct. There is no command to shutdown the distributed search server process, you will simply have to kill it by hand. The good news is that the website polls the servers in its search-servers.txt file to constantly check if they are up so you can shut down a single distributed search server, change out its index and bring it back up and the website will reconnect automatically. This way the entire search is never down at any one point in time, only specific parts of the index would be down. In a production environment searching is the biggest cost both in machines and electricity. The reason is that once an index piece gets beyond about 2 million pages it takes too much time to read from the disk so you can have a 100 million page index on a single machine no matter how big the hard disk is. Fortunately using the distributed searching you can have multiple dedicated search servers each with their own piece of the index that are searched in parallel. This allow very large index system to be searched efficiently. Doing the math, a 100 million page system would take about 50 dedicated search servers to serve 20+ queries per second. One way to get around having to have so many machines is by using multi-processor machine with multiple disks running multiple search servers each using a separate disk and index. Going down this route you can cut machine cost down by as much as 50% and electricity costs down by as much as 75%. A multi-disk machine can't handle the same number of queries per second as a dedicated single disk machine but the number of index pages it can handle is significantly greater so it averages out to be much more efficient. == Rsyncing Code to Slaves == -------------------------------------------------------------------------------- Nutch and Hadoop provide the ability to rsync master changes to the slave nodes. This is optional though because it slows down the startup of the servers and because you might not want to have changed automatically synced to slave nodes. If you do want this capability enabled then below I will show you how to configure your servers to rsync from the master. There are a couple of things you should know first. One, even though the slave nodes can rsync from the master you still have to copy the base installation over to the slave node the first time so that the scripts are available to rsync. This is the way we did it above so that shouldn't require any changeds Two the way the rsync happens is that the master node does an ssh into the slave node and calls bin/hadoop-daemon.sh. The script on the slave node then calls the rsync back to the master node. What this means is that you have to have a password-less login from each of the slave nodes to the master node. Before we setup password-less login from the master to the slaves, now we need to do the reverse. Three, if you have problems with the rsync options (I did and I had to change the options because I am running an older version of ssh), look in the bin/hadoop-daemon.sh script around line 82 for where it calls the rsync command. So the first thing we need to do is setup the hadoop master variable in the conf/hadoop-env.sh file. The variable will need to look like this: {{{ export HADOOP_MASTER=devcluster01:/nutch/search }}} This will need to be copied to all of the slave nodes like this: {{{ scp /nutch/search/conf/hadoop-env.sh nutch@devcluster02:/nutch/search/conf/hadoop-env.sh }}} And finally you will need to log into each of the slave nodes, create a default ssh key for each machine and then copy it back to the master node where you will append it to the /nutch/home/.ssh/authorized_keys file. Here are the commands for each slave node, be sure to change the slavenodename when you copy the key file back to the master node so you don't overwrite files: {{{ ssh -l nutch devcluster02 cd /nutch/home/.ssh ssh-keygen -t rsa (Use empty responses for each prompt) Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /nutch/home/.ssh/id_rsa. Your public key has been saved in /nutch/home/.ssh/id_rsa.pub. The key fingerprint is: a6:5c:c3:eb:18:94:0b:06:a1:a6:29:58:fa:80:0a:bc nutch@localhost scp id_rsa.pub nutch@devcluster01:/nutch/home/devcluster02.pub }}} Once you have done that for each of the slave nodes you can append the files to the authorized_keys file on the master node: {{{ cd /nutch/home cat devcluster*.pub >> .ssh/authorized_keys }}} With this setup whenever you run the bin/start-all.sh script files should be synced from the master node to each of the slave nodes. == Conclusion == -------------------------------------------------------------------------------- I know this has been a lengthy tutorial but hopefully it has gotten you familiar with both nutch and hadoop. Both Nutch and Hadoop are complicated applications and setting them up as you have learned is not necessarily an easy task. I hope that this document has helped to make it easier for you. If you have any comments or suggestions feel free to email them to me at firstname.lastname@example.com. If you have questions about Nutch or Hadoop they should be addressed to their respective mailing lists. Below are general resources that are helpful with operating and developing Nutch and Hadoop. == Updates == -------------------------------------------------------------------------------- * I don't use rsync to sync code between the servers any more. Now I am using expect scripts and python scripts to manage and automate the system. * I use distributed searching with 1-2 million pages per index piece. We now have servers with multiple processors and multiple disks (4 per machine) running multiple search servers (1 per disk) to decrease cost and power requirements. With this a single server holding 8 million pages can serve 10 queries a second constant. == Resources == -------------------------------------------------------------------------------- Hadoop Quickstart: http://hadoop.apache.org/common/docs/current/quickstart.html Google MapReduce Paper: If you want to understand more about the MapReduce architecture used by Hadoop it is useful to read about the Google implementation. http://labs.google.com/papers/mapreduce.html Google File System Paper: If you want to understand more about the Hadoop Distributed Filesystem architecture used by Hadoop it is useful to read about the Google Filesystem implementation. http://labs.google.com/papers/gfs.html Building Nutch - Open Source Search: A useful paper co-authored by Doug Cutting about open source search and Nutch in paticular. http://www.acmqueue.com/modules.php?name=Content&pa=showpage&pid=144 Hadoop 0.1.2-dev API: http://www.netlikon.de/docs/javadoc-hadoop-0.1/overview-summary.html ---- * - I, StephenHalsey, have used this tutorial and found it very useful, but when I tried to add additional datanodes I got error messages in the logs of those datanodes saying "2006-07-07 18:58:18,345 INFO org.apache.hadoop.dfs.DataNode: Exception: org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.dfs.UnregisteredDatanodeException: Data node linux89-1:50010is attempting to report storage ID DS-1437847760. Expecting DS-1437847760.". I think this was because the hadoop/filesystem/data/storage file was the same on the new data nodes and they had the same data as the one that had been copied from the original. To get round this I turned everything off using bin/stop-all.sh on the name-node and deleted everything in the /filesystem directory on the new datanodes so they were clean and ran bin/start-all.sh on the namenode and then saw that the filesystem on the new datanodes had been created with new hadoop/filesystem/data/storage files and new directories and everything seemed to work fine from then on. This probably is not a problem if you do follow the above process without starting any datanodes because they will all be empty, but was for me because I put some data onto the dfs of the single datanode system before copying it all onto the new datanodes. I am not sure if I made some other error in following this process, but I have just added this note in case people who read this document experience the same problem. Well done for the tutorial by the way, very helpful. Steve. ---- * nice tutorial! I tried to set it up without having fresh boxes available, just for testing (nutch 0.8). I ran into a few problems. But I finally got it to work. Some gotchas: * use absolute paths for the DFS locations. Sounds strange that I used this, but I wanted to set up a single hadoop node on my Windows laptop, then extend on a Linux box. So relative path names would have come in handy, as they would be the same for both machines. Don't try that. Won't work. The DFS showed a ".." directory which disappeared when I switched to absolute paths. * I had problems getting DFS to run on Windows at all. I always ended up getting this exception: "Could not complete write to file e:/dev/nutch-0.8/filesystem/mapreduce/system/submit_2twsuj/.job.jar.crc by DFSClient_-1318439814 - seems nutch hasn't been tested much on Windows. So, use Linux. * don't use DFS on an NFS mount (this would be pretty stupid anyway, but just for testing, one might just set it up into an NFS homre directory). DFS uses locks, and NFS may be configured to not allow them. * When you first start up hadoop, there's a warning in the namenode log, "dfs.StateChange - DIR* FSDirectory.unprotectedDelete: failed to remove e:/dev/nutch-0.8/filesystem/mapreduce/.system.crc because it does not exist" - You can ignore that. * If you get errors like, "failed to create file [...] on client [foo] because target-length is 0, below MIN_REPLICATION (1)" this means a block could not be distributed. Most likely there is no datanode running, or the datanode has some severe problem (like the lock problem mentioned above). ---- * This tutorial worked well for me, however, I ran into a problem where my crawl wasn't working. Turned out, it was because I needed to set the user agent and other properties for the crawl. If anyone is reading this, and running into the same problem, look at the updated tutorial http://wiki.apache.org/nutch/Nutch0%2e9-Hadoop0%2e10-Tutorial?highlight=%28hadoop%29%7C%28tutorial%29 ---- * By default Nutch will read only the first 100 links on a page. This will result in incomplete indexes when scanning file trees. So I set the "max outlinks per page" option to -1 in nutch-site.conf and got complete indexes. {{{ <property> <name>db.max.outlinks.per.page</name> <value>-1</value> <description>The maximum number of outlinks that we'll process for a page. If this value is nonnegative (>=0), at most db.max.outlinks.per.page outlinks will be processed for a page; otherwise, all outlinks will be processed. </description> </property> }}}
|View raw message


text:
Another recipe from my mother. Yeah, she is a GREAT cook!
This can be eaten during the whole year: you can eat it either cold or ready made. But it's perfect for summer and you can have it in your bento :) And it's also easily made. This recipe goes to taste, you can add more tuna or more garlic if you want.
You'll need:
- 3 or 4 big size potatoes
- 1 can of tuna
- 1 garlic clove
- olive oil
- Mayo
- 1 egg, beaten
- 1 oven pot (better if it's not metallic).
- your oven!
- Preheat the oven (like 180º will be ok)
- Boil and peel the potatoes.
- Grat the garlic.
- Mash the potatoes with a fork.
- Add the tuna (without that hideous liquid that comes in the can!!)
- Add the grated garlic
- Add the beaten egg
- Mix everything and add a little olive oil (like a spoon) to avoid it getting too dry.
- Moist the oven pot with a little olive oil or butter.
- Put the mixture in the oven pot and place it in the oven until the upper part is toasted. Now you should be able to take it out of the pot by crefully flipping it on a big dish.
Now you can eat it hot or cold (i like it both ways), covered with mayo.
The good thing of this is that you can put it in the fridge (covered with plastic wrap) and cut thick slices to put in your bento. It will last for a few days in your fridge :)
I hope you like this... Maybe I can submit some pics if I make it next weekend :)
My bento blog: http://justbento.com/blog/1305
My art blog: http://jizaacaso.deviantart.com
|Last Post
|Sesame salad dressing
|5 years 41 weeks ago
|Authentic paella?
|5 years 42 weeks ago
|IMPORTANT: If you have a blog on JustBento...
|5 years 45 weeks ago
|Shiso - uses for this herb
|5 years 47 weeks ago
|Fuki (Japanese Butterbur) Tsukemono Recipes
|5 years 47 weeks ago
@justbento - strictly site updates
@makiwi - Maki tweets at random


text:
8 Home Care Services for Seniors Serving Olivehurst, CA
Caring.com offers a free service to help families find senior care. To help you with your search, browse the 23 reviews below for homecare agencies in Olivehurst. On average, consumers rate home care in Olivehurst 4.6 out of 5 stars.
To speak with one of our Family Advisors about senior care options and costs in Olivehurst, call (855) 863-8283.
Partners in Care
Provides: Home Care
"The HomeCare Source takes great care of my mom. Her caregivers are 10/10! I'm out of town a lot for work and I am so thankful for the caregivers. The office has always been helpful and very polite. " MoreServing: Olivehurst
Home Instead Senior Care - Woodland, CA
Provides: Home Care
"We're using Home Instead for my mom. They're helping out with her showers, dressing, and reminders on some things. She forgets, so they're there for that too. They're very organized and if you have..." More
Welcome Home Care-- Sacramento
Provides: Home Care
"Welcome Homecare is fantastic. My caregiver is the best. No complaints. The company is both professional and friendly. I really appreciate the attention I receive from doing the laundry to keeping..." MoreServing: Olivehurst
Sacramento Life Force Home Health Care
Provides: Home Care
"Great place!!! Tailor fit our needs and ready to put out any obligatory fires. Consistent staffing... Mom loves her care provider. Call them!! " MoreServing: Olivehurst
Interim HealthCare of Grass Valley, CA
Provides: Home Care
"We used Interim Grass Valley for almost ten years for the 24/7/365 care of my disabled brother. He was blind, used a wheelchair, and had some developmental issues. There were some fits and..." More
Interim HealthCare of Yuba City, CA
Provides: Home Care
"We got Interim HealthCare for my father. They're fine, and they care of him like he's their own, so they're very good. They clean his house, and they keep him busy during the day. " More
Interim HealthCare of Chico, CA
Provides: Home Care
"What we loved about this healthcare service is how knowledgeable J Christianson is and was able to respond to all our questions and guide us, Ms. Christianson understood our needs and offered us..." More
Interim HealthCare of Redding, CA
Provides: Home Care
"Home health care services from Interim allow individuals to stay safe, independent, and engaged while remaining in their own homes. We offer: Personal Care and SupportCompanionship and help with..." More
Home Care near Olivehurst, CA
Other Options in Olivehurst, CA
Helpful Articles
- Hiring a Caregiver for In-Home Help
- Difference Between Home Healthcare and In-Home Care
- Cost of In-Home Care by State
- 8 Creative Ways to Pay for In-Home Care
- Medicare Coverage of Home Care
- Q&A: Does Medicaid Cover Long-Term In-Home Care?
Licensing and Bonding for Caregivers
If you're choosing a caregiver for an aging parent or loved one, you've probably heard the advice that your caregiver should be licensed and bonded. The implication is that being licensed and bonde...
Home Care near Yuba County, CA
More Options Near Olivehurst, CA
Business owner? Claim your Caring.com Listing


text:
Hands of Harvest
|Episode Description
|Sunday, Aug 26, 2012 - 7:00 AM
Hands of Harvest is a documentary film that chronicles the journey of migrant Mexican women who travel to fishing villages on Maryland's Eastern Shore to pick crabs in seafood plants scattered along its rural shores, offering a glimpse into a renowned American industry being kept afloat by foreign labor. Because of the unwillingness of the younger generation of local women to pick crabs for a living the picking houses on the Eastern Shore have relied on women on seasonal H2-B visas from Mexico to process the Atlantic blue crab. Blue crabs are not only a viable economic resource, but also a Maryland cultural icon and Hands of Harvest sets out to reveal the history and capture the struggle of the watermen who are fighting to keep their livelihood and culture intact in the face of imminent demise. D
|More Hands of Harvest on PLUS (MT)
Sunday, Aug 26, 2012 - 7:00 AM
Monday, Oct 1, 2012 - 2:00 AM
Wednesday, Dec 4, 2013 - 2:00 AM


text:
I thought Mary Ann Kennedy was quite charming last night. A wide(ish) selection of tunes, a nod to Charlie, and a genuine infectuous enthusiasm, made me forgive the number of overly tasteful folky things she played.
What did anyone else think?
It is currently Tue Jun 25, 2019 6:54 pm
Return to BBC Radio 3 - World on 3
Users browsing this forum: No registered users and 0 guests


text:
Nuggets from – "For Adults Only: Keys to Unlocking Your Destiny"
Too often, people follow fads and trends with no understanding of what it all means. They work hard to fit into social cliques that have nothing to do with their Destiny. As a result, they allow the world around them to tell them who they are and how they should live – becoming something that is far beneath their potential. The price for this social acceptance is their uniqueness. This is why I say often; why settle for being a carbon copy when you were created to be an original?
The hairstyles, tattoos, body piercings, and baggy pants drooping below the butt are not marks of uniqueness but of conformity. In addition, the only illogical reason for anyone to start smoking is to fit into a group or to appear cool – regardless of the fact that it can cause cancer and early death. Unfortunately, many people rather conform instead of being transformed, by the renewing of their minds. Conformity is only possible when an individual does not know, who they are and where they are going in life.
Just because something has been done for a long time, does not mean we should continue to do it or that it is right. At one time, slavery was acceptable but it was never right. Chasing fads and trends can cost you your Destiny. Therefore, you must learn to appreciate your uniqueness and value what you bring to the world, instead of chasing people or things that you deem valuable. Below are some key words you need to understand:
Unique = existing as the only one or as the sole example; single; solitary in type or characteristics. Having no like or equal; unparalleled; incomparable; not typical; unusual. – Dictonary.com
Original = new; fresh; inventive. An original work, writing, or the like, as opposed to any copy or imitation. A person whose way of thinking or acting is original. – Dictonary.com
To purchase, please Click Here.
Tags: adults only, calling, destiny, for adults only, how do i fulfill my calling, how do i fulfill my destiny, how do i fulfill my purpose, James A. Jimason, jamesajimason, jimason, purpose, what is my calling, what is my destiny, what is my purpose


text:
Beauty lies in the eye of the beholder, behold a more beautiful you! Beauty Cirque got all the latest beauty must haves to set you right, an extensive range of fragrances, skin & hair care, makeup, spa and a lot more of the best beauty products out there. There's a world of choice for every budget whether you're looking for an exciting new scent at the men's cologne section or a fancy favourite in women's perfume.
Beauty Cirque's got a lot of breath-taking options and great deals too! Make Beauty Cirque your one stop shop for all your beauty supplies, start with getting that complexion flawless with acne treatment products, here's your skin care regimen from A to Z, face washes, toners, scrubs, cleansing strips, and moisturizers, to the rescue! You'll find them sorted conveniently, by benefit, this makes choosing the right one easy.
Healthy beautiful skin makes the perfect canvas to dash on some color and accent, you'll find everything you need to get the look you want, there's a dedicated page just for mascara and one for blush too. Brood over tint sticks, powders, soufflés, gels, creams and a lot more, form the comfort and privacy of your home.