You have a hard drive full of documents and pictures, back-ups of your information on discs and jump sticks. You have paper files, photo albums and boxes of family history all of which you have been accumulating for years. But do you have a plan? ....... a plan to share your treasures, your knowledge, your family's story......or is your plan to just keep accumulating this information only to be filed away....For what?
Genealogist love research, they love the mystery, the seeking out of facts. However, at some point, genealogists must confront what they plan to do with their acquired knowledge.
I believe most genealogists more than anyone else have learned the power of life stories, yet so few of us get around to organizing our information into a readable format to share with generations to come.
You have dearly missed the point of genealogy if your journey is only about the hunt. At some point, I believe most of us realize a lesson or two from our ancestors. This is where you need to take the leap from being the family historian to the family writer and convey your knowledge and lessons and write a book.
Yes, a book! I know many look at the idea of a book to climbing Mount Kilimanjaro, an insurmountable task reserved only for the very few. Everyday books are being written and published; it is no longer an elitist adventure.
Often the task is met with many objections. I don't know how to write. It is too expensive to produce a book. I don't have time. I can tell you from personal experience that nothing will be more rewarding then taking your years of research and knowledge and assembling it into a format that will benefit your current family and generations to come.
Not to be morbid but should God forbid, you passed away tomorrow.....What would happen to your years of research?
Will it sit on a computer that will eventually crash and become obsolete. Will your computer be passed down only to be wiped clean?
Your boxes of documents and pictures, they will likely be given to a family member. Perhaps you have even willed them to someone. However, more than likely they will remain in the boxes on shelf in a basement for years to come. If you didn't take the time to write your family's story then what makes you think someone else will. Maybe someone will open them up years from now and discover your hard work, or perhaps not. Very few of us have even taken the time to draw up a proper will of our most valuable assets, for many of us our family history research is not even been on the radar.
Writing a family history book, taking all that research, knowledge, pictures and documents and putting it into a readable format for a wider audience to see and learn from and enjoy is your single best solution to leaving a legacy to your family.
One of the first things we learn as a genealogist is how important it is to record your family history. Oh how excited we would have been if our earliest ancestors had kept journals, recorded their travels to the new world, left us writings of their hardships, successes and failures. How much richer we would have been for having had the knowledge of this information. Yet, fully knowing the importance of this, many family historians, have become nothing more than collectors of information, facts and documents. I say this with the greatest respect, "what have we learned," if we have failed to share our knowledge.
Next week I will be releasing our family history book, a 200-page book, accounting for 400 years of our family's travels, spanning four countries and countless generations. Although I am nervous about its reception, (we pre-sold 75 copies) I also know, outside of my own marriage and children it is probably one of the single most important accomplishments in my life. Through my research and my words, I am bringing together my ancestors and my current family for the first time. My hope is that it will strengthen the foundation of this family even more than it already is, it will help us appreciate the sacrifices our ancestors have made, celebrate our history and move forward knowing that we can accomplish great things. Why should that lesson only be my lesson? Why shouldn't my family down to its youngest member have the opportunity to learn from our ancestor's story?
If you haven't made the leap from family historian to family writer, I encourage stepping off and taking a risk and try your hand at writing your family history; it can be just as rewarding as the research.


When we moved to our current home a little over 12 years ago, my wife and I decided that we make it a tradition moving forward to have a freshly cut Christmas tree in our home during Advent and Christmas. For some reason the tree that I cut this past Christmas was the tallest we have had so far - a little over 9 feet. The height of the tree is not the priority for us, but we always are drawn to the best shaped tree we can find at the Christmas tree farm. This time around when we found the best shaped tree that suited our purpose, it just happened to be much taller.
Our son usually comes with us to help. But this time he was not able to do so because of a schedule conflict. So I had to do the cutting myself with some help from my wife. Needless to say, it was quite a challenge for me. It was heavy, but I managed to cut it and get it on the cart and pulled it to the store where the workers helped to tie it on top of our vehicle. Getting it off the car when we got home, taking it inside the house, and mounting it on the stand was another challenge. But we did it, and it was beautiful where it stood.
It was not until January 9 of this year, after Epiphany, that I had the chance to take out our Christmas tree to the curb to be picked up for recycling. I watered and fertilized it regularly so, as you can see in the photo, it retained its shape and fresh look the entire season. But I noticed something rather remarkable when I had to finally pick it up to take it out of the house - the tree was so light, that I could literally lift it up over my head! It was clear that, while it retained its "fresh" appearance, the tree had lost much of its weight - its sap and fluids that gave it turgidity.
A new metaphor for the new year suddenly came to me: not only did the calendar change, not only did Epiphany liturgically book-ended Advent and Christmas, but the weight of all the cares and the burdens of the previous year now belong to that moment in time. In the new year the receptacle of my experience has been lightened, emptied and ready to receive the new joys, the cares, and even the burdens of the new year. May we look at this new year with great anticipation of the new encounters that will fill our cups with child-like wonder and gratitude to God who is the Lord of the Journey, and to Christ who is the Word become flesh.


Mufasa and Norberta • Bearded Dragon . org .
I'll post some pics I took soon. I have to get back to work tomorrow & Friday, but then not back until Monday and still have every Wednesday off.
The girls are both pretty much done brumating, Norberta is still doing a light popcorn sleep but Mufasa is wide awake. Both and growing and happy, Mufasa is doing pretty much a whole body shed right now in sections so she looks pretty funny lol. I can't believe how big they are now as 3 year olds.
Also, I'm officially going to college in the fall! I haven't made a decision yet as to where I'm going as I'm waiting to hear back from the last two colleges I applied to, but I'm super excited! And my family has even agreed to keep and take care of my animals for me while I'm in college so long as I get rid of the roaches (my mom refuses to touch them and wont feed them to the beardies), so I'm trying to think of a new staple bug for them. Would phoenix worms work as a staple? Maybe mixed with occasionally silkworms and superworms? The girls are pretty great about eating their salads and don't always eat their bugs but still eat them regularly enough.
Congratulations on going to college. What are you going to be studying?
As for bugs for your girls, large phoenix worms, silkworms, superworms, butterworms. All are high in calcium (except superworms, high in fat). There aren't any others except crickets & who wants to deal with them. I wish someone in your family could handle the roaches, because they are the best food for them. I certainly understand why your mom doesn't want to deal with them.
I'm getting closer to retirement, less than 2 years left, so I'm a happy camper. Having to move May 1 so moving into the rental apartments where my son & family live, so I'll be able to see my grandchildren a whole lot more often. Plus the car is parked underground there and my son has access to it when he needs it. I don't want to move, but my landlady is putting the place up for sale. I could stay until the place is sold but they haven't even put it up for sale. So I decided to get out of here...the place I'm moving to is an old building, well maintained, rent is cheap and the 1 bedroom will be over 100 sq ft more and a double balcony. So lots of place to live in & the building is beside the elementary school where my grandson goes to kindergarten and a huge park right behind the building. Plus still close to where I live now.
I'm thinking psychology, but I'm still undecided right now lol.
Alright thank you, yeah I wish they would deal with the dubia too, I'll try and talk her into getting them occasionally but we'll see.
How has Grr settled in? Your poor boys lol. That's great you're going to be closer to your son and his family! I hope moving goes well.
Thanks Makayla. I know you'll have fun in college and I'm glad you're mom will take care of your girls. I found out yesterday that I've got an appt on Eric's floor, so we'll be in the same building, which will be great for the kids & me & them! I figured it was meant to be if I'm able to get the apartment where I wanted it. So 3rd floor, down the hall from them. We agreed, my son & I, that the kids won't be let loose, he'll cal or I'll call if we want to visit. This will be very interesting indeed!
We're doing pretty good here. Mufasa was up for a while and is back in her hide sleeping. Norberta has enough energy for both her and Mufasa, and has taken to smearing her poop everywhere if I don't clean it up the second she's done. Nothing new really.
Have you moved yet, Deb?
Hope everyone and theirs are doing well!
So good to hear from you and to hear your girls are both doing well. Everyone here is up, all 3 girls are laying eggs, even Grrl is almost due. Cierra and Freya have both laid 1 clutch each, now they're getting geared up for their 2nd clutch. Grrl is working on her 1st clutch.
No I move on April 27. Have most everything checked, calling movers next. I need to be packed & moved, so that should cost me about $1k but may be less. Either way it's a real pain to be moving, but once it's done, I'll be down the hall from my son & family.
Nathaniel, Castiel, Cierra and Grrl all have parasites, so on panacur treatments. So that's all keeping me very busy. Still struggling to get back to work, didn't go in this last week at all. So will try again on Monday & on April 8 I see the company doctor. Got copy of my MRI to show this new doc what's going on with my back and left hip (arthritis). I did get a new pair of shoes, they need to go to a shoemaker to be stretched, but otherwise they are so very comfortable.
I hope school is doing well & that you're almost done. I'll have pics of my new place once I've moved & I'll post them.
Other than the parasites, they're all very healthy. For that I'm grateful. I don't want to lose any more, losing Gabriel was very hard on me. So hopefully they stay well and healthy as they are. I can't believe that Cierra and Nathaniel are now 5 1/2 yrs old. Castiel is 4 1/2, Grrl is about 6 yrs and Freya is about 2. So they're all still young, for which I'm grateful.


text:
Heilige Moeder Godskerk (Beernem), een kerk in België
 Heilige Moeder Godskerk (Avan), een kerk in Armenië
 Heilige Moeder Godskerk (Nor Nork), een kerk in Armenië
 Heilige Moeder Godskerk (Nork), een kerk in Armenië
 Heilige Moeder Godskerk (Kanaker), een kerk in Armenië

redpajama_set_name: RedPajamaWikipedia


Jerry was recommended but I was disappointed. First, he is a poor communicator; he was often difficult to reach and did not provide a lot of details in his communications, and I found his communications to be often vague and leaving out important information.
Second, although I did communicate certain things to him, he did not account for them in his taxes.
Third, he made multiple mistakes on my taxes and then charged me for the work in correcting them.
The mistakes totaled about $1300 in taxes I would have owed if I had not caught them.
To make things worse, when I told Jerry I was frustrated by all of this, he cut me off angrily and blamed me.
I had a somewhat complicated tax situation due to a divorce and dependents, and he told me I failed to fill out the information in a survey he had given me.
When I looked back, I did not see a place in the survey to provide that information — but in any event I had communicated the relevant info to him, he simply didn't incorporate it.
The hassle of dealing with Jerry was simply not worth it. For me, he added no value. I would have been better off with Turbo Tax.
The reviews, complaints and scams about Back Bay Accounting and Tax is posted by anonymous. We at dirty scam are not liable for the content posted about Back Bay Accounting and Tax. If you have any concern about this report, you can contact us by using this email.
Is Back Bay Accounting and Tax legit? Is Back Bay Accounting and Tax quack? Is Back Bay Accounting and Tax fake? Is Back Bay Accounting and Tax a fraud website or business or person? Please write down your review or report a fraud on dirtyscam.com to raise your voice, you might not be alone who was ripped off by Back Bay Accounting and Tax.
The reviews about Back Bay Accounting and Tax are no way affiliated with Yelp, BBB, Glassdoor, RipoffReport, Avvo, ConsumerAffairs, Realself, Vitals and Wikipedia.
I had to join this site to share a few details about a couple places that did me wrong, avoid this group if you want your taxes done in less than THREE MONTHS.


text:
'Shrek 2': A second coming
Not to sound like an ogre, but "Shrek 2" is not everything you'd hope for.
It is wonderful to have the main characters back, minus John Lithgow's lord and plus several new ones. Whereas most sequels are about money, this one is welcome because you really do want to spend more time with Mike Myers' not-as-crabby-as-he'd-like-you-to-think Shrek, Cameron Diaz's practical Fiona and Eddie Murphy's annoyingly sweet Donkey. Heck, I didn't even remember the music from "Shrek," but the instant I heard a snippet of it in "Shrek 2," I was in the mood for these lovable characters to show me a good time again.
The trouble is that word: "again." Unlike "Toy Story 2," which was every bit as inventive and lovable as its predecessor, "Shrek 2" is a lesser copy of the original. Having happily-ever-aftered in "Shrek," things are looking grimm again for Shrek and Fiona in "Shrek 2," when they face a "Meet the Parents" scenario.
It's the same story, really: Shrek and Fiona need to decide they're comfortable with who they are. And, despite the new characters (Julie Andrews and John Cleese are the voices of Fiona's folks, Rupert Everett is a Prince Charming who's more like Prince Stuck-on-Himself, Jennifer Saunders is a Fairy Godmother in a snit, Antonio Banderas as the amusing Wuss-in-Boots or, rather, Puss-in-Boots), you know where that ship is sailing.
Most of the best stuff from "Shrek" is revisited. The animation is still distinctive – I particularly love how the godmother floats over everyone like a plumply inflated Macy's balloon. Whereas the first film featured a "Dating Game" parody, this one has a "Cops" takeoff, and it's improbably funny. Instead of a setting that lampoons Disneyland, this one satirizes Beverly Hills. And esoteric jokes are sprinkled everywhere, starting with a Shirley Bassey bit (honest) and building to an awards ceremony covered by a computer-animated Joan Rivers, who is more lifelike than the one who rises from the crypt on Oscar night.
If the format of "Shrek 2" feels somewhat pinched and familiar, the writing does not. Even the jokes you'd expect to be past their freshness date – besides "Cops," "Shrek 2" also takes swipes at "Flashdance" and "Pinocchio" – are clever, and the sharp script connects all the way through a funny mid-credits scene.
Still, the funny mid-credits scene does almost exactly the same thing the funny mid-credits scene did in the first "Shrek." And it contributes to an overall feeling that this tale is being told twice upon a time.

redpajama_set_name: RedPajamaCommonCrawl


text:
Palestine: Jerusalem refugee camp under siege as Israel hunts shooter
Residents of Shuafat prevented from receiving critical healthcare and basic supplies after camp blockaded amid search for man who killed Israeli soldier
Palestinian protesters stand behind burning tyres in a waste container during an Israeli raid on Shuafat refugee camp on 10 October (AFP)
Lubna Masarwa
Published date: 10 October 2022 14:56 UTC | Last update: 3 months 2 weeks ago
Residents of occupied East Jerusalem's Shuafat refugee camp have been trapped in the neighbourhood for three days, with some unable to leave to receive critical health treatments and many basic supplies running low, as Israeli forces enforce a strict blockade.
Israeli troops locked down the camp, located just two kilometres from the Old City, after an Israeli soldier was killed on Saturday by a man who approached a checkpoint leading to the camp and opened fire.
Israeli police identified the suspect, who is still at large, as Udi Tamimi, a 22-year-old Palestinian resident of Shuafat.
Describing the situation within Shuafat as "tragic" ,Thaer al-Fasfos, an activist and member of the camp's popular committee, said: "Many patients need to go to hospitals in Jerusalem but have been unable to do so.
"There are a lot of cases who need dialysis, as well as cancer patients who are unable to get access to treatment or chemotherapy in Hadassa and Ein Karam."
Israeli police patrol the outskirts of Shuafat refugee camp as part of a manhunt on 9 October (Reuters)
Education within the camp, which is home to around 140,000 people, has been suspended and shops are now dealing with a lack of supplies.
"There's been a shortage of products on the shelves, including flour which people need to make bread and other basic meals," Fasfos told Middle East Eye.
"This is the first time we've had a siege like this. This is an area inside the city of Jerusalem, this will cause a major catastrophe for us, something we don't have capacity to deal with."
'All of the checkpoints are locked and we are now in a large prison'
- Thaer al-Fasfos, activist, Shuafat refugee camp
Referring to the manhunt in an interview with the Kan public broadcaster on Sunday, Israeli Public Security Minister Omer Barlev said: "The refugee camp is completely surrounded... It may take hours, days, but we'll catch him."
Speaking to MEE, Shawan Jabarin, the chair of Alhaq, a Palestinian human rights group, decribed the lockdown of the camp as "collective punishment" in which Israeli authorites "feel they are immune from accountability".
"The life of a Palestinian has no sanctity to them, as well as their livelihoods and dignity. This is embedded in the [Israeli] occupation's mindset," said Jabarin.
"From a legal point of view, this collective punishment amounts to a war crime and violates the Geneva convention. It's a form of persecution that the state of Israel applies both in action and in law."
Shuafat is the only refugee camp that lies in Jerusalem's municipal boundaries, but lies on the other side of the Israeli separation wall from the majority of the city. Around 140,000 Palestinians live in the camp, 90 percent of which have Jerusalem resident IDs that are different from Israeli or Palestinian Authority citizenship.
'Large prison'
The Al-Aqsa Martyrs Brigades, an armed wing associated with the Fatah movement, claimed responsibility for Saturday's attack, but the shooter is largely thought to have acted without affiliation to any group.
Israeli media reports said Tamimi's mother, father and brother had all been detained.
Israeli soldier killed in East Jerusalem shooting
Israeli forces have also closed all entrances to the town of Anata, and the suburb of al-Salam, northeast of East Jerusalem.
The Shuafat camp was reported to be swarming with Israeli soldiers on Monday as the search for the suspect continued.
"The incursions are continuing and large military forces are entering the camp, raising their weapons towards the people," said Fasfos.
"Special [Israeli] units are also on the ground, causing injuries to people, with no one able to help or assist them."
In a statement, the Palestinian Red Crescent Society said that Israeli forces had prevented ambulance crews from entering the Shuafat and Anata.
The Red Crescent said Israeli troops had blocked access to emergency services and stopped "medical staff from performing their humanitarian duty".
"All of the checkpoints are locked and we are now in a large prison," said Fasfos.
"People had no idea that the camp would be under lockdown, there is no one even coming to dispose of the waste or clean."
A helicopter was also being used to scan the area from the air, police said.
One Shuafat resident, who declined to be named, told MEE he waited three hours at a checkpoint to be allowed to go to his weekly dialysis treatment, but was not allowed to leave. Only people who do not reside in Shuafat are allowed out, sources said.
"This [blockade] has now restricted people seeking treatment; children and social events, like weddings, and so on," said Jabarin.
"On top of this closure, Palestinians inside this prison are being persecuted, through checkpoints, firing of teargas and stun grenades, home raids and terrorising of people.
"When a settler carries out a killing, neither the settlement gets closed off like this nor does anything happen to him or her. But if a Palestinian throws one rock then the entire community gets punished."
Al-Aqsa Mosque stormed
Tensions in East Jerusalem and the occupied West Bank have escalated in recent days following a number of killings of Palestinians by Israeli forces and the beginning of the week-long Jewish Sukkot holiday.
Israeli forces shot dead two Palestinian teenagers in the West Bank city of Jenin on Saturday morning, hours after it killed two more minors, including a 14-year-old boy, near Qalqilya and Ramallah.
Four Palestinian teens killed by Israeli forces in 24 hours
More than 160 Palestinians have been killed by Israeli fire this year, including 50 in the Gaza Strip and at least 110 in the West Bank and East Jerusalem.
The death toll rate in the West Bank is the highest recorded in a single year since 2015.
Dozens of Israeli settlers stormed the Al-Aqsa Mosque in occupied East Jerusalem on Monday on the second day of Sukkot.
Inside the settlers performed prayers after Israeli police cleared the compound of Muslim worshippers.
Other settlers marched through the streets of the Old City while holding rituals near the gates leading to Al-Aqsa Mosque.
Palestinians have been outraged by repeated intrusions by Israeli settlers to pray at the Al-Aqsa Mosque.
By long-standing convention, non-Muslim tourists are allowed to visit under certain conditions and the approval of the Waqf, an Islamic trust that manages the mosque's affairs, but only Muslims are allowed to pray there.
Tor Wennesland, the UN special coordinator for the Middle East Peace Process, issued a statement on Saturday saying he was "alarmed at the deteriorating security situation" and urged Israeli and Palestinian authorities to "restore calm and avoid further escalations".
ICC urged to prevent Israel committing 'war crime' in Masafer Yatta


text:
Aquaculture's Next Wave
Daily Email Newsletter
Maine Things Considered
Wait Wait...Don't Tell Me! 20th Anniversary Sweepstakes
The Great American Read
A Maine Sense of Place
Bangor Symphony Orchestra Presents Masterworks I: Goldstein Plays Ravel
Portland Ovations Presents Inon Barnatan
Your Hidden Corner of Maine
Collins Center for the Arts Presenting The Calder String Quartet
Portland Symphony Orchestra Mahler's First
Turn 10 into 100!
Beyond the Pedestal: Isamu Noguchi and the Borders of Sculpture
DAWNLAND
Federal Funding Overview
Emerald Ash Borer Discovery Subject Of Meeting In Northern Maine
By AP • Jun 18, 2018
An emerald ash borer.
Courtesy University of Maine
FRENCHVILLE, Maine - Maine forestry officials are holding a meeting near the Canadian border to address the discovery of a destructive forest pest in the state.
The Maine Department of Agriculture, Conservation and Forestry says the emerald ash borer was discovered recently in Madawaska, less than 200 yards from the Frenchville town line in Aroostook County. The agency and others are holding a public meeting Monday at 6:30 p.m. at the Frenchville Community Center.
The state says the detection of the borers is a first in Maine. The forestry department says the borer kills most species of ash and presents a major threat to Maine's trees.
Officials from the Maine Forest Service will also attend the meeting. The service is proposing a temporary, emergency "stop movement'' order on some wood products.
The Scourge At Maine's Door: Emerald Ash Borer Threatens Maine's Ash Trees, Tribal Roots
By Barbara Cariddi • Mar 23, 2018
Mike Groll / Associated Press File
With the wood of the mighty ash tree, the inhabitants of Maine have been paddling across rivers and bays, sowing crops, weaving baskets and surviving the cold for thousands of years. To Maine's indigenous people, the ash tree is the very source of their existence, the tree that legend says gave birth to the Wabanaki people. And it's in danger of disappearing from the Maine landscape.


text:
Q: mkdir is not working The mkdir() is not working for me. What is going wrong in this code?
  foreach($_FILES['documents']['tmp_name'] as $key => $tmp_name)
 {
   $file_name = $key.$_FILES['documents']['name'][$key];
   $file_size =$_FILES['documents']['size'][$key];
   $file_tmp =$_FILES['documents']['tmp_name'][$key];
   $file_type=$_FILES['documents']['type'][$key];
   $name = $_POST['uname'][$key];
   $email = $_POST['uemail'][$key];
   $password = $_POST['epass'][$key];
   $file_names = time().$file_name;

   $query = "INSERT INTO `table` VALUES
  ('', '$name', '', '', '$email', '$password', 1, '', 1, '', '$file_names',   '$file_names', '', '', '', '', 1, '', '', '1', '')";

   $resultl =  $db->insert($query);

   $userId = mysql_insert_id();

   $output_dir = $_SERVER['DOCUMENT_ROOT']."uploads/users/$userId/";
   mkdir($output_dir, 0777);
   chmod($output_dir, 0777);

The directory is not being created. I searched in Stack Overflow for the solution and applied some of them  but still no success. I am using wamp; when I move the uploaded image without creating directory, then it moves the file.

A: The user running your PHP script (most likely www-data) should have the permission to create a folder in $output_dir, so you may want to check that it is indeed the case.
What's more, it's generally a bad programming habit to just ignore the return value of a system call. mkdir will return FALSE on failure, which you should test against and then make sure your code acts accordingly should the directory creation fail... When mkdir fails, it will also log a warning so you should be able to get more information on the actual problem by having a look at your logs (provided you're logging warnings).

A: mkdir('$output_dir' ,0777) ;
chmod('$output_dir',0777);

should be
mkdir($output_dir ,0777) ;
chmod($output_dir,0777);

A: Try this and if not working post the msg.
  <?php
    ....
    $output_dir = $_SERVER['DOCUMENT_ROOT']."/uploads/users/$userId/";
    echo $output_dir;
    $res =  mkdir($output_dir ,0777, true) ;
    var_dump($res);

A: $_SERVER['DOCUMENT_ROOT']."/uploads/users/$userId/";

Try adding a directory separator after $_SERVER['DOCUMENT_ROOT'] like above.

A: $output_dir = $_SERVER['DOCUMENT_ROOT'] . "/uploads/users/$userId/";

mkdir($output_dir, 0777, true);

A: Give the appropriate permissions to the uploads folder so the www-data user can traverse it, and to the uploads/users subfolder, with the write permission.

redpajama_set_name: RedPajamaStackExchange


text:
ist ein kleiner Ort im  der Region  auf der Südinsel vom Neuseeland.

Geographie
Der Ort liegt rund 35 km nordöstlich von  in den Southland Plains zwischen Gore im Norden und Invercargill im Südwesten.

Bevölkerung
Zum Zensus des Jahres 2013 zählte der Ort 555 Einwohner, 8,2 % mehr als zur Volkszählung im Jahr 2006.

Wirtschaft
Die Firma  betreibt in  eine Verarbeitungsanlage für Milchpulver, die laut eigener Aussage seit einer technischen Aufrüstung im Jahre 2009 die weltweit größte sein soll.

Verkehr
 ist sowohl an den  angeschlossen, der von  kommend den Ort mit  verbindet.

Edendale liegt an der Bahnstrecke Lyttelton–Invercargill. Die Eisenbahn erreichte den Ort 1875. Hier zweigte die Bahnstrecke Edendale – Glenham (Wyndham Branch) ab, die von 1890 bis 1930 in Betrieb war. Nachdem im Februar 2002 der Southerner eingestellt wurde, findet auf der Strecke Lyttelton–Invercargill ausschließlich noch Güterverkehr statt.

Persönlichkeiten
 Der Motorradrennfahrer  wurde 1899 in  geboren.

Einzelnachweise

Ort in der Region Southland


Buying or selling a home in West Hills? Stay current on the latest active, pending & sold properties in West Hills with monthly housing market updates.
West Hills homes sell fast. Don't miss out. Set up a search for your West Hills dream home and get automatic email notification when new West Hills listings that meet your criteria hit the market.


Dino Melaye, the Senator representing Kogi West, has expressed sadness over the death of Pius Adesanmi, popular Nigerian professor and columnist, alongside 149 passengers and eight crew members involved in the Ethiopian Airlines plane crash.
DAILY POST had reported that the airline announced that there were no survivors on its flight ET302 which crashed on Sunday en route Nairobi from Addis Ababa.
The airline said the 149 passengers and eight crew members on board the B-737-800MAX with registration number ET- AVJ, all died in the crash.
"None of the people on board the Boeing 737 that crashed en route from Addis Ababa to Nairobi survived," the airline said.
Reports had it that Pius Adesanmi, popular Nigerian professor and columnist based in Canada, was on the Ethiopian Airlines plane that crashed in the early hours of Sunday.
Reacting, Melaye, in a tweet on Monday, said the Okun nation will miss Adesanmi.
He wrote: "Okun Nation mourn the demise of an intellectual colossus.


text:
TellyMix / News / TV / Kylie Minogue /
Kylie Minogue may host revamped Blind Date on Channel 5
Posted February 17, 2017 23:01 by Josh Darvill
Kylie Minogue has been tipped to host a revived version of Blind Date, it's been reported.
The show will be back on TV by the end of 2017 after more than a decade off air.
The former ITV series - which was fronted by the late Cilla Black - will move to Channel 5 for its new run.
"Blind Date is the original dating show and it's huge news to bring it back," a source told The Sun previously. "It's a classic format that will be rebooted to make it young, sexy and modern. Expect sparks to fly.
"In an age of Tinder, you have got to earn the right to love on this show."
The new Blind Date is apparently set to air on Friday nights, possibly alongside Big Brother or Celebrity Big Brother in the summer.
While Geordie Shore's Vicky Pattison was originally the favourite to host it all, it's now been claimed that Channel 5 are keen to get Kylie Minogue on board instead.
"Bosses have been taken aback by the amount of buzz around the series so are rethinking their original ideas," a source explained. "They know this is their chance to land an A-lister and Kylie has been discussed because she is so likeable.
"Blind Date has such a huge legacy and Channel 5 has had so much success with Celebrity Big Brother and Lip Sync Battle, it gives them a calling card to attract the best."
Blind Date wouldn't be Channel 5's first dating show,with Stand By Your Man airing in 2014 as competition for ITV's Take Me Out.
However it didn't really catch on and a second series was never made.
More on: Kylie Minogue TV


text:
Troy Baker Chats About His Role In Middle-earth: Shadow of Mordor
Matt Wingler 14/07/14 7 Comments
Troy Baker has become quite the figure in the video game industry due to his fabulous voice work in games like The Last of Us and BioShock Infinite. He's also leading the way on Middle-earth: Shadow of Mordor, and in a recent video released on the PlayStation Blog, Troy sits down with Lead Designer and Writer, Christian Cantamessa, to discuss their relationship during development, and the different ways they're impacting the story.
Middle-earth: Shadow of Mordor is slated for release on October 7th on PC, PS3, PS4, Xbox 360, and Xbox One. If you'd like to read up on what we know about the game so far, be sure check out our recent preview.
Source: PS Blog
Tags: Middle-earth: Shadow of Mordor
EA's Lord of the Rings games: where are they now?
Shadow of War Nemesis system controversially patented by Warner Bros
Desolation Of Mordor Story DLC Coming To Middle-earth: Shadow Of War This Month
Bring Your Top Nemesis And Follower From Shadow Of Mordor Into Middle-earth: Shadow of War
LegendishThingy	 14/07/14, 09:23
Never really understood why one person gets so many jobs doing voice work for video games? He's good but surely there are other people too?
Takes away a little bit on your gaming experience when you realise that Nathan Drake is also Desmond Miles or that Delsin Rowe is actually Joel from the Last of Us. Or is that just me?
blarty	 14/07/14, 09:52
I don't think it does – I find that voice actors that are exceptionally proficient at they're job are a) very adaptable, and b) quite rare. Gaming is littered with 'real' actors who can't voice game characters for all the tea in china – look at Matthew Perry – he was absolutely in love with Fallout 3, so Obsidian asked him to voice Benny in New Vegas, and it was a really flat performance.
I think sometimes you can tell when a voice actor like Nolan North, Troy Baker or Jennifer Hale is used a lot, but in general the quality of their work overshadows that niggle, but then again Keith David has one of the most distinctive voices I know, and he's great in games.
Don't get me wrong, I totally agree that they're very good at their job, as they should be. I just think that when you hear the same voice over and over for different characters it ruins the immersion slightly.
Oh well, I'm sure it will only be a matter of time before we get another voice actor who gets a few roles.
I just think that bad, or flat, voice actors are worse for breaking immersion than having a good voice actor appear in multiple games.
Kennykazey	 14/07/14, 09:52
RudeAwakening	 14/07/14, 14:30
I think this is a strange statement, i mean would you give out about top film acters playing different characters!
That's not really a problem though. With films there are several great actors to choose from and it's very seldom that you get one person who plays all the best parts over and over again.
And blarty, I agree that poor voice acting does break the immersion also.
Think it would be nice to see more people get a chance as well. Nolan North as Nathan Drake and Desmond Miles is a pretty big deal. In fact, even if you look through all the games that he's done voice work for, it's a lot of key voices and more than might seem 'normal'.


With the few bits and bites provided, you will gain even more appreciation for the different injection molding plastic processes and what they achieve. The demand for quality injection molding products will continue to rise as materials and technologies advance.
Of all manufacturing processes used to fabricate plastic parts, injection molding is the most used.
With the right plastic injection molding machine, a professional fabricator can make a broad range of products. Some of those include eyeglass frames, door handles, toothbrushes, packaging for cosmetics, valves, toys, housewares, bushings and bearings, and more.
Many industries depend on precision-made plastic injection parts and components. Some examples include automotive, aviation, aerospace, furniture, food and beverage, cosmetics, and more.
To make the parts and components customers require, fabricators rely on three things: the right plastic injection molding machine, the appropriate mold, and the correct type of raw plastic material.
The plastic injection molding process starts by melting material. That molten resin then gets injected into a mold where it cools, solidifies, and ejects.
Plastic housings are the most-commonly made. As thin-walled enclosures that often have bosses and ribs on the interior, manufacturers use them to make power tools, appliances, automobile dashboards, consumer electronics, and so on.
Fabricators even make medical devices from plastic injected mold parts and components, including syringes and valves.
Typically, the processing cycle for products is short; in most cases, it only takes between two seconds and two minutes to complete.
There are four stages of the plastic injection molding process: clamping, injection, cooling, and ejection.
Usually, this process requires some degree of post-processing after the injection molding cycle. As an example, cutters trim away any excess material and flash that occurred during the process. Depending on the type of raw plastic material used, sometimes, scrap gets recycled.
Injection molded plastic parts and components have a broad reach. Without these processes, the millions of things that people use daily would not exist. Also, as machines continue to advance, the possibilities with this process will only get better. Being selective about the manufacturing company ensures that you will end up with the highest-quality injection molding parts and components at the most competitive price.


text:
Crowds protest Democratic Party, rally to reopen churches at CA Capitol
Updated: 5:02 PM PDT Aug 1, 2020
Marlei Martinez
[NATIONAL ANTHEM] >> SPORTING SIGNS, FLAGS AND UNIQUE OUTFITS THAT ARE MORE THAN 300 PEOPLE GATHERED OUTSIDE THE STEPS OF THE NORTH CAPITAL TODAY. THE RESCUE AMERICA RALLY IN SACRAMENTO, ORGANIZED BY THIS MAN FROM NEW YORK CITY. >> I AM A FORMER DEMOCRAT THAT IS WHAT MY MOVEMENT IS ABOUT. >> HE ORGANIZED THE CAMPAIGN TWO YEARS AGO. HE IS NOW HOLDING RALLIES ACROSS THE COUNTRY. >> WE ARE BRINGING PEOPLE TOGETHER TO SAY THE RADICAL LEFT DOES NOT OWN AMERICA'S STREETS, WE WILL NOT ALLOW YOU TO DESTROY OUR CULTURE. >>'S LIKE A SEA OF DONALD TRUMP SIDES, HE SAYS HE IS NOT ENDORSING A CANDIDATE, BUT RATHER A MESSAGE. >> WHAT INSPIRED ME TO CREATE WALK AWAY IS I AM A GAY MAN. YOU DON'T HAVE TO BE A DEMOCRAT BASED ON THE COLOR OF YOUR SKIN OR SEXUAL ORIENTATION. YOU HAVE A CHOICE. >> SARAH SAYS SHE IS AN INDEPENDENT, DRAWN TO THE RALLY BECAUSE SHE OPPOSES DEFUNDING THE POLICE. >> THERE ARE ALWAYS BAD APPLES AND EVERYTHING, BUT YOU DON'T SAY KILL ALL COPS, WHICH IS WHAT THE MESSAGE IS ON THE LEFT. YOU DON'T DO THAT, YOU JUST WORK WITH THEM TO MAKE THE SITUATION BETTER. >> IF THE POLICE ARE NOT THERE TO PROTECT HIGH CRIME AREAS WHERE THERE ARE DRUGS AND GANG ACTIVITY, COMMUNITIES OF COLOR, MY COMMUNITY, WILL BE DESTROYED. >> AS THIS CROWD CHANCE ABOUT WALKING AWAY, THIS GROUP DOWN THE BLOCK FOCUSING ON OPENING UP. >> JESUS. JESUS! >> THEIR CHURCHES. >> WE HAVE A GOD-GIVEN, INALIENABLE RIGHT. A FREEDOM OF RELIGION. NO MAN CAN EVER TAKE THAT AWAY FROM US. >> OVER 50 PEOPLE PROTESTING THAT PLACES OF WORSHIP SHOULD NOT HAVE TO CLOSE EVEN IF THE COUNTY IS ON THE COVID WATCHLIST. >> WE ARE ESSENTIAL. WE ARE THE ONES THAT FEED THE POOR, THAT HELP THE NEEDY. WE ARE THE ONES THAT MAKE A DIFFERENCE. >> IN SACRAMENTO, MARLEY MARTINEZ. WALT
Saturday in Sacramento saw two rallies at the Capitol where people spoke out against California's Democratic leaders -- but for different reasons. About 300 people gathered along the north steps of the Capitol for the "Rescue America Rally." The rally in Sacramento was organized by a man from New York City. "I'm a former Democrat, and that's what my movement is all about," said rally organizer Brandon Straka.Straka said he organized the grassroots organization called The #WalkAway Campaign two years ago. He said his organization is entirely grassroots funded, and those funds enable him to host rallies all across the country through the election. "We're basically bringing people together to say that the radical left does not own America's streets," he said. "We are not going to allow you to destroy our buildings, to destroy our culture."Despite the sea of President Donald Trump signs waving at the Capitol on Saturday, Straka said he is not endorsing a candidate, but rather a message."Part of what inspired me so much to create Walk Away is that I'm a gay man," he said. "You don't have to be a Democrat based off the color of your skin, your gender, your sexual orientation, none of these things. You have a choice."Tera Kolvenbach said she is an Independent who was drawn to the rally because she opposes the "Defund Police" movement."Take out the bad apples. There's always bad apples in everything," Kolvenbach said. "But you don't say, 'Kill all cops.' You don't do that. You just work with 'em to get the whole situation better."Rochelle Conner agrees."The highest crime rates are in communities of color and defunding the police only leave these people as victims," she said. "If the police are not there to protect high crime areas where there's drugs, gang activity, communities of color, my community will be destroyed."Meanwhile down the block, another group of over 50 people rallied to reopen churches."We have our God-given unalienable right of freedom of religion that no man can ever take, no man can ever take that away from us," said Robert Ornelas. Many people in the group traveled from Southern California to protest that places of worship should not have to close, even if their county is on the state's COVID watchlist. "We are essential," said Linda Lara. "We are the ones that go and feed the poor. We are the ones that go and help the needy. We are the ones that go underneath the bridges. We are the ones that go to the high schools. We are the ones that do and make a difference."
SACRAMENTO, Calif. —
Saturday in Sacramento saw two rallies at the Capitol where people spoke out against California's Democratic leaders -- but for different reasons.
About 300 people gathered along the north steps of the Capitol for the "Rescue America Rally." The rally in Sacramento was organized by a man from New York City.
"I'm a former Democrat, and that's what my movement is all about," said rally organizer Brandon Straka.
Straka said he organized the grassroots organization called The #WalkAway Campaign two years ago. He said his organization is entirely grassroots funded, and those funds enable him to host rallies all across the country through the election.
"We're basically bringing people together to say that the radical left does not own America's streets," he said. "We are not going to allow you to destroy our buildings, to destroy our culture."
Despite the sea of President Donald Trump signs waving at the Capitol on Saturday, Straka said he is not endorsing a candidate, but rather a message.
"Part of what inspired me so much to create Walk Away is that I'm a gay man," he said. "You don't have to be a Democrat based off the color of your skin, your gender, your sexual orientation, none of these things. You have a choice."
Tera Kolvenbach said she is an Independent who was drawn to the rally because she opposes the "Defund Police" movement.
"Take out the bad apples. There's always bad apples in everything," Kolvenbach said. "But you don't say, 'Kill all cops.' You don't do that. You just work with 'em to get the whole situation better."
Rochelle Conner agrees.
"The highest crime rates are in communities of color and defunding the police only leave these people as victims," she said. "If the police are not there to protect high crime areas where there's drugs, gang activity, communities of color, my community will be destroyed."
Meanwhile down the block, another group of over 50 people rallied to reopen churches.
"We have our God-given unalienable right of freedom of religion that no man can ever take, no man can ever take that away from us," said Robert Ornelas.
Many people in the group traveled from Southern California to protest that places of worship should not have to close, even if their county is on the state's COVID watchlist.
"We are essential," said Linda Lara. "We are the ones that go and feed the poor. We are the ones that go and help the needy. We are the ones that go underneath the bridges. We are the ones that go to the high schools. We are the ones that do and make a difference."


This 2 door, 2 passenger convertible still has fewer than 70,000 miles! Toyota made sure to keep road-handling and sportiness at the top of it's priority list. It features a standard transmission, rear-wheel drive, and a 1.8 liter 4 cylinder engine. Top features include power windows, 1-touch window functionality, variably intermittent wipers, front bucket seats, air conditioning, fully automatic headlights, power door mirrors, and much more. You and your passengers will enjoy the stereo system, which includes a CD player with AM/FM radio, a cassette player, and 4 speakers, providing excellent sound throughout the cabin. Toyota also prioritized safety and security by including: dual front impact airbags, ignition disabling, and 4 wheel disc brakes with ABS. A Carfax history report provides you peace of mind by detailing information related to past owners and service records. We know that you have high expectations, and we enjoy the challenge of meeting and exceeding them! Stop by our dealership or give us a call for more information.


text:
//
// CmdLineParser.scala -- Scala trait CmdLineParser
// Project OrcScala
//
// $Id: CmdLineParser.scala 2933 2011-12-15 16:26:02Z jthywissen $
//
// Created by jthywiss on Jul 19, 2010.
//
// Copyright (c) 2011 The University of Texas at Austin. All rights reserved.
//
// Use and redistribution of this file is governed by the license terms in
// the LICENSE file found in the project's top-level directory and also found at
// URL: http://orc.csres.utexas.edu/license.shtml .
//
package orc.util

import java.io.File
import java.util.NoSuchElementException

/** Parses command line arguments per POSIX and GNU command line syntax guidelines.
  * Mix this trait in and add XxxOprd and XxxOpt statements to your class holding
  * the resulting parsed values.  Call parseCmdLine after all the XxxOprd and XxxOpt
  * statements.
  *
  * This CmdLineParser understands POSIX single-letter option names (-a -b -c) and GNU
  * long option names (--option-name=value).  It also handles the various option argument
  * syntax: -avalue -a value --long-name=value and -long-name value, it tries to
  * "do the right thing" in the ambiguous situation -abc (could mean -a -b -c or
  * -a bc or --abc), and it understands the -- option list terminator.
  * See POSIX XBD §12.1 and §12.2 and GNU libc §25.1.1.
  *
  * @author jthywiss
  */
trait CmdLineParser {

  var recognizedOprds = scala.collection.mutable.Map.empty[Int, CmdLineOprd]
  var recognizedOpts = scala.collection.mutable.Set.empty[CmdLineOpt]
  var recognizedShortOpts = scala.collection.mutable.Map.empty[Char, CmdLineOpt]
  var recognizedLongOpts = scala.collection.mutable.Map.empty[String, CmdLineOpt]

  ////////
  // Constructor
  ////////

  UnitOpt(() => false, () => printHelp, '?', "help", usage = "Give this help list")
  protected def printHelp {
    def shortOptHelp(opt: CmdLineOpt) =
      if (opt.shortName != 0 && opt.shortName != ' ')
        "-" + opt.shortName + (if (opt.argName != null && opt.argName.length > 0) (" " + opt.argName) else "")
      else
        ""
    def longOptHelp(opt: CmdLineOpt) =
      if (opt.longName != null && opt.longName.length > 0)
        "--" + opt.longName + (if (opt.argName != null && opt.argName.length > 0) ("=" + opt.argName) else "")
      else
        ""
    val helpString = usageString +
      (if (recognizedOpts.size == 0) ""
      else "\nOptions:\n" +
        (recognizedOpts.toList.sortBy(o => (o.longName, o.shortName)).map({ opt: CmdLineOpt =>
          //TODO: Aligned columns?
          "  " + shortOptHelp(opt) +
            "  " + longOptHelp(opt) +
            "  " + opt.usage
        })).mkString("\n"))
    throw new PrintVersionAndMessageException(helpString)
  }

  UnitOpt(() => false, () => printUsage, ' ', "usage", usage = "Give a short usage message")
  protected def printUsage { throw new PrintVersionAndMessageException(usageString) }

  UnitOpt(() => false, () => printVersion, 'V', "version", usage = "Print program version")
  protected def printVersion { throw new PrintVersionAndMessageException("") }

  def usageString =
    "usage: " +
      (if (recognizedOpts.size > 0) "[options...]" else "") +
      (for { i <- 0 until recognizedOprds.size } yield " " + recognizedOprds(i).argName).mkString(" ")
  //"Try the --help option for more information." //TODO: In simple cases, show the usage here

  ////////
  // Command line operand and option definitions
  ////////

  abstract class CmdLineOprdOpt(val argName: String, val usage: String, val required: Boolean, val hidden: Boolean) {
    def getValue: String
    def setValue(s: String): Unit
  }

  abstract class CmdLineOprd(val position: Int, override val argName: String, override val usage: String, override val required: Boolean, override val hidden: Boolean) extends CmdLineOprdOpt(argName, usage, required, hidden) {
    if (recognizedOprds.contains(position)) throw new MultiplyDefinedCmdLineOprndError(position)
    recognizedOprds += ((position, this))
  }

  abstract class CmdLineOpt(val shortName: Char, val longName: String, override val argName: String, override val usage: String, override val required: Boolean, override val hidden: Boolean) extends CmdLineOprdOpt(argName, usage, required, hidden) {
    if (shortName != ' ') {
      if (recognizedShortOpts.contains(shortName)) throw new MultiplyDefinedCmdLineOptError(shortName.toString)
      recognizedShortOpts += ((shortName, this))
    }
    if (longName != null) {
      if (recognizedLongOpts.contains(longName)) throw new MultiplyDefinedCmdLineOptError(longName)
      recognizedLongOpts += ((longName, this))
    }
    recognizedOpts += this
  }

  case class BooleanOprd(val getter: Function0[Boolean], val setter: (Boolean => Unit), override val position: Int, override val argName: String = "BOOL", override val usage: String = "", override val required: Boolean = true, override val hidden: Boolean = false)
    extends CmdLineOprd(position, argName, usage, required, hidden) {
    def getValue: String = { getter().toString }
    def setValue(value: String) { setter(value.toBoolean) }
  }

  case class DoubleOprd(val getter: Function0[Double], val setter: (Double => Unit), override val position: Int, override val argName: String = "DOUBLE", override val usage: String = "", override val required: Boolean = true, override val hidden: Boolean = false)
    extends CmdLineOprd(position, argName, usage, required, hidden) {
    def getValue: String = { getter().toString }
    def setValue(value: String) { setter(value.toDouble) }
  }

  case class IntOprd(val getter: Function0[Int], val setter: (Int => Unit), override val position: Int, override val argName: String = "INT", override val usage: String = "", override val required: Boolean = true, override val hidden: Boolean = false)
    extends CmdLineOprd(position, argName, usage, required, hidden) {
    def getValue: String = { getter().toString }
    def setValue(value: String) { setter(value.toInt) }
  }

  case class CharOprd(val getter: Function0[Char], val setter: (Char => Unit), override val position: Int, override val argName: String = "CHAR", override val usage: String = "", override val required: Boolean = true, override val hidden: Boolean = false)
    extends CmdLineOprd(position, argName, usage, required, hidden) {
    def getValue: String = { getter().toString }
    def setValue(value: String) { setter(value(0)) }
  }

  case class StringOprd(val getter: Function0[String], val setter: (String => Unit), override val position: Int, override val argName: String = "STRING", override val usage: String = "", override val required: Boolean = true, override val hidden: Boolean = false)
    extends CmdLineOprd(position, argName, usage, required, hidden) {
    def getValue: String = { getter() }
    def setValue(value: String) { setter(value) }
  }

  case class StringListOprd(val getter: Function0[Seq[String]], val setter: (Seq[String] => Unit), override val position: Int, override val argName: String = "STRING", override val usage: String = "", override val required: Boolean = true, override val hidden: Boolean = false)
    extends CmdLineOprd(position, argName, usage, required, hidden) {
    def getValue: String = { getter().mkString(File.pathSeparator) }
    def setValue(value: String) { setter(value.split(File.pathSeparator)) }
  }

  case class FileOprd(val getter: Function0[File], val setter: (File => Unit), override val position: Int, override val argName: String = "FILE", override val usage: String = "", override val required: Boolean = true, override val hidden: Boolean = false)
    extends CmdLineOprd(position, argName, usage, required, hidden) {
    def getValue: String = {
      getter() match {
        case null => ""
        case f => f.toString
      }
    }
    def setValue(value: String) { if (value != null && !value.isEmpty) setter(new File(value)) }
  }

  case class PathListOprd(val getter: Function0[Seq[File]], val setter: (Seq[File] => Unit), override val position: Int, override val argName: String = "PATH", override val usage: String = "", override val required: Boolean = true, override val hidden: Boolean = false)
    extends CmdLineOprd(position, argName, usage, required, hidden) {
    def getValue: String = { getter().map(_.toString).mkString(File.pathSeparator) }
    def setValue(value: String) { setter(value.split(File.pathSeparator).map(new File(_))) }
  }

  case class UnitOpt(val getter: Function0[Boolean], val setter: (() => Unit), override val shortName: Char, override val longName: String, override val argName: String = "", override val usage: String = "", override val required: Boolean = false, override val hidden: Boolean = false)
    extends CmdLineOpt(shortName, longName, argName, usage, required, hidden) {
    def getValue: String = ""
    def setValue(value: String) { setter() }
  }

  case class BooleanOpt(val getter: Function0[Boolean], val setter: (Boolean => Unit), override val shortName: Char, override val longName: String, override val argName: String = "BOOL", override val usage: String = "", override val required: Boolean = false, override val hidden: Boolean = false)
    extends CmdLineOpt(shortName, longName, argName, usage, required, hidden) {
    def getValue: String = { getter().toString }
    def setValue(value: String) { setter(value.toBoolean) }
  }

  case class DoubleOpt(val getter: Function0[Double], val setter: (Double => Unit), override val shortName: Char, override val longName: String, override val argName: String = "DOUBLE", override val usage: String = "", override val required: Boolean = false, override val hidden: Boolean = false)
    extends CmdLineOpt(shortName, longName, argName, usage, required, hidden) {
    def getValue: String = { getter().toString }
    def setValue(value: String) { setter(value.toDouble) }
  }

  case class IntOpt(val getter: Function0[Int], val setter: (Int => Unit), override val shortName: Char, override val longName: String, override val argName: String = "INT", override val usage: String = "", override val required: Boolean = false, override val hidden: Boolean = false)
    extends CmdLineOpt(shortName, longName, argName, usage, required, hidden) {
    def getValue: String = { getter().toString }
    def setValue(value: String) { setter(value.toInt) }
  }

  case class CharOpt(val getter: Function0[Char], val setter: (Char => Unit), override val shortName: Char, override val longName: String, override val argName: String = "CHAR", override val usage: String = "", override val required: Boolean = false, override val hidden: Boolean = false)
    extends CmdLineOpt(shortName, longName, argName, usage, required, hidden) {
    def getValue: String = { getter().toString }
    def setValue(value: String) { setter(value(0)) }
  }

  case class StringOpt(val getter: Function0[String], val setter: (String => Unit), override val shortName: Char, override val longName: String, override val argName: String = "STRING", override val usage: String = "", override val required: Boolean = false, override val hidden: Boolean = false)
    extends CmdLineOpt(shortName, longName, argName, usage, required, hidden) {
    def getValue: String = { getter() }
    def setValue(value: String) { setter(value) }
  }

  case class StringListOpt(val getter: Function0[Seq[String]], val setter: (Seq[String] => Unit), override val shortName: Char, override val longName: String, override val argName: String = "STRING", override val usage: String = "", override val required: Boolean = false, override val hidden: Boolean = false)
    extends CmdLineOpt(shortName, longName, argName, usage, required, hidden) {
    def getValue: String = { getter().mkString(File.pathSeparator) }
    def setValue(value: String) { setter(value.split(File.pathSeparator)) }
  }

  case class FileOpt(val getter: Function0[File], val setter: (File => Unit), override val shortName: Char, override val longName: String, override val argName: String = "FILE", override val usage: String = "", override val required: Boolean = false, override val hidden: Boolean = false)
    extends CmdLineOpt(shortName, longName, argName, usage, required, hidden) {
    def getValue: String = {
      getter() match {
        case null => ""
        case f => f.toString
      }
    }
    def setValue(value: String) { if (value != null && !value.isEmpty) setter(new File(value)) }
  }

  case class PathListOpt(val getter: Function0[List[File]], val setter: (Seq[File] => Unit), override val shortName: Char, override val longName: String, override val argName: String = "PATH", override val usage: String = "", override val required: Boolean = false, override val hidden: Boolean = false)
    extends CmdLineOpt(shortName, longName, argName, usage, required, hidden) {
    def getValue: String = { getter().map(_.toString).mkString(File.pathSeparator) }
    def setValue(value: String) { setter(value.split(File.pathSeparator).map(new File(_))) }
  }

  ////////
  // Parse method
  ////////

  @throws(classOf[PrintVersionAndMessageException])
  @throws(classOf[CmdLineUsageException])
  def parseCmdLine(args: Seq[String]) {
    // Parse command line arguments per POSIX XBD §12.1 and §12.2 and GNU libc §25.1.1
    // Note: We don't attempt the GNU libc "abbreviate options to unique prefix" nonsense
    var maxReqOprdIndex = -1
    for ((_, oprd) <- recognizedOprds) {
      val position = oprd.position
      if (position > 0 && !recognizedOprds.contains(position - 1)) throw new MissingCmdLineOprdError(position)
      if (position > 0 && oprd.required && !recognizedOprds(position - 1).required) throw new InvalidRequiredCmdLineOprdError(position)
      if (oprd.required) maxReqOprdIndex = maxReqOprdIndex max position
    }

    def before(str: String, sep: String) = { val i = str.indexOf(sep); if (i >= 0) str.take(i) else str }
    def after(str: String, sep: String) = { val i = str.indexOf(sep); if (i >= 0) str.drop(i + 1) else null }
    var currOprdIndex = 0
    var endOptions = false
    var gobbleNext: CmdLineOpt = null
    for (arg <- args) {
      if (gobbleNext != null) { gobbleNext.setValue(arg); gobbleNext = null }
      else if (endOptions) setCurrOprd(arg)
      else if (arg.equals("--")) endOptions = true
      else if (arg.startsWith("--")) setLongOpt(arg.drop(2)) //GNU-style long name (lower case, hyphenated) option
      else if (arg.startsWith("-") && arg.length == 2) setShortOpt(arg(1), null) //POSIX-style short name (one alphanum char) option
      else if (!arg.startsWith("-")) setCurrOprd(arg)
      else { // Ambiguous: "-abc" could be POSIX "-a -b -c" or "-a bc" or GNU "--abc"
        if (recognizedShortOpts.contains(arg(1))) {
          if (recognizedShortOpts(arg(1)).isInstanceOf[UnitOpt]) {
            // "-abc" treated as "-a -b -c"
            arg.drop(1).map(setShortOpt(_, null))
          } else {
            // "-abc" treated as "-a bc"
            setShortOpt(arg(1), arg.drop(2))
          }
        } else if (recognizedLongOpts.contains(before(arg, "=").drop(1))) {
          // "-abc" treated as "--abc"
          setLongOpt(arg.drop(1))
        } else throw new UnrecognizedCmdLineOptException(arg.drop(1), this)
      }
    }
    if (currOprdIndex <= maxReqOprdIndex) throw new MissingCmdLineOprdsException(recognizedOprds(currOprdIndex).argName, this)
    //TODO: Check all req'd opts are present

    def setCurrOprd(arg: String) = {
      try {
        recognizedOprds(currOprdIndex).setValue(arg)
        currOprdIndex += 1
      } catch {
        case _: NoSuchElementException => throw new ExtraneousCmdLineOprdsException(arg, this)
      }
    }
    def setLongOpt(arg: String) = {
      try {
        val currOpt = recognizedLongOpts(before(arg, "="))
        if (!currOpt.isInstanceOf[UnitOpt] && !arg.contains("=")) gobbleNext = currOpt
        else if (currOpt.isInstanceOf[UnitOpt] && arg.contains("=")) throw new ExtraneousCmdLineOptArgException(currOpt.longName, after(arg, "="), this)
        else currOpt.setValue(after(arg, "="))
      } catch {
        case _: NoSuchElementException => throw new UnrecognizedCmdLineOptException(before(arg, "="), this)
      }
    }
    def setShortOpt(optName: Char, value: String) = {
      try {
        val currOpt = recognizedShortOpts(optName)
        if (!currOpt.isInstanceOf[UnitOpt] && value == null) gobbleNext = currOpt
        else if (currOpt.isInstanceOf[UnitOpt] && value != null) throw new ExtraneousCmdLineOptArgException(optName.toString, value, this)
        else currOpt.setValue(value)
      } catch {
        case _: NoSuchElementException => throw new UnrecognizedCmdLineOptException(optName.toString, this)
      }
    }
  }

  ////////
  // Parse method
  ////////

  def composeCmdLine(): Array[String] = {
    ((recognizedOpts.toList.sortBy(o => (o.longName, o.shortName)).flatMap({ opt: CmdLineOpt =>
      if (!opt.isInstanceOf[UnitOpt]) {
        if (opt.shortName != 0 && opt.shortName != ' ') List("-" + opt.shortName, opt.getValue) else List("--" + opt.longName + "=" + opt.getValue)
      } else {
        if (opt.asInstanceOf[UnitOpt].getter()) {
          if (opt.shortName != 0 && opt.shortName != ' ') List("-" + opt.shortName) else List("--" + opt.longName)
        } else {
          Nil
        }
      }
    })) ++
      (for { i <- 0 until recognizedOprds.size } yield recognizedOprds(i).getValue).toList).toArray
  }

}

////////
// Error for mal-formed operand and option declarations
////////

class MissingCmdLineOprdError(operandIndex: Int) extends Error("Command line operand number " + operandIndex + " not defined, but operand " + (operandIndex + 1) + " is")
class InvalidRequiredCmdLineOprdError(operandIndex: Int) extends Error("Command line operand number " + operandIndex + " marked required, but operand " + (operandIndex - 1) + " is not")
class MultiplyDefinedCmdLineOprndError(operandIndex: Int) extends Error("Command line operand number " + operandIndex + " multiply defined")
class MultiplyDefinedCmdLineOptError(optName: String) extends Error("Command line option \"" + optName + "\" multiply defined")

////////
// Exceptions for command args that didn't parse
////////

abstract class CmdLineUsageException(msg: String, p: CmdLineParser) extends IllegalArgumentException(msg + "\n" + p.usageString + "\nTry the --help option for more information.")
class ExtraneousCmdLineOprdsException(val operand: String, p: CmdLineParser) extends CmdLineUsageException("extra operand -- '" + operand + "'", p)
class MissingCmdLineOprdsException(val argName: String, p: CmdLineParser) extends CmdLineUsageException("missing " + argName + " operand", p)
class UnrecognizedCmdLineOptException(val optName: String, p: CmdLineParser) extends CmdLineUsageException("invalid option -- " + optName, p)
class MissingCmdLineOptException(val optName: String, p: CmdLineParser) extends CmdLineUsageException("missing option -- " + optName, p)
class ExtraneousCmdLineOptArgException(val optName: String, optArg: String, p: CmdLineParser) extends CmdLineUsageException("option " + optName + " doesn't allow an argument", p)
class MissingCmdLineOptArgException(val optName: String, p: CmdLineParser) extends CmdLineUsageException("option requires an argument -- " + optName, p)

////////
// Exception for command args that requests immediate termination of program with usage/help/version info.
////////

class PrintVersionAndMessageException(msg: String) extends Exception(msg)

redpajama_set_name: RedPajamaGithub


With the HTML 5 tool we create an efficient HR management app. Managing Salary and attendance makes it easy to keep a tab on your employees and saves you the extra hassles. The app requires no additional hardware. It's a SAAS – software as a service.
• Information and attendance of teaching and non teaching staff.
• Live Vehicle tracking facility.
Doc99, our cloud based EHR is a multi-tenanted application that allows each tenant exclusive use of the application. It can be used by hospitals and clinics to create, update and view a patient's entire medical record in electronic format.