text:
Classic Radio Sci-Fi: BBC Drama Collection
Five BBC radio full-cast dramatisations
By: Stanislaw Lem, Karel Čapek, Mary Shelley, Arthur Conan Doyle, H. G. Wells
Narrated by: William Gaunt, full cast, Robert Glenister, Joanne Froggatt
Radio/TV Program
Categories: Literature & Fiction, Classics
By: Stanislaw Lem,Karel Čapek,Mary Shelley,Arthur Conan Doyle,H. G. Wells
Narrated by: William Gaunt,full cast,Robert Glenister,Joanne Froggatt
The H G Wells BBC Radio Collection
Dramatisations and Readings Including the Time Machine, The War of the Worlds & Other Science Fiction Classics
By: H. G. Wells
Narrated by: Amy Hoggart, Bernard Cribbins, Bill Nighy, and others
H. G. Wells wrote dozens of novels and short stories and is often called the 'father of science fiction'. Here we collect together the works of H. G. Wells as broadcast on BBC Radio. With full-cast dramatisations of novels including The Time Machine, The Island of Dr Moreau, The War of the Worlds, Ann Veronica, The First Men in the Moon and The Wonderful Visit; plus readings of The Invisible Man, Love and Mr Lewisham and several short stories including The Inexperienced Ghost and In the Abyss.
John Wyndham: A BBC Radio Drama Collection
Six classic BBC radio adaptations
By: John Wyndham
Narrated by: Bill Nighy, Peter Sallis, Barbara Shelley
Bill Nighy, Barbara Shelley and Peter Sallis are among the cast in six classic BBC Radio dramatisations of stories by one of Britain's most popular science fiction authors. 'The Day of the Triffids', first broadcast in 1968, is set in a world in which most people have been left blind after a meteor shower, and lethal carnivorous triffids are roaming the land. 'The Kraken Wakes', dramatised for radio in 1998, is a gripping story of monsters from the deep, alien invasion and ecological disaster.
The best (and the worst) of BBC radio adaptations
By Old ManParker on 07-25-20
BBC Radio 4 full-cast dramatisations
Narrated by: Clive Merrison, full cast, Michael Williams
Clive Merrison and Michael Williams star as Holmes and Watson in this collection of stories from the unique fully dramatised BBC Radio 4 canon, based on Arthur Conan Doyle's original short stories. The 12 dramatisations include 'A Scandal in Bohemia'; 'The Red-Headed League'; 'A Case of Identity'; 'The Boscombe Valley Mystery'; 'The Five Orange Pips'; 'The Man with the Twisted Lip'; and 'The Adventure of the Blue Carbuncle'.
Please label the tracks
By Ethan Muse on 08-15-19
X Minus One: Complete
By: Ray Bradbury
Narrated by: Philip K. Dick
X Minus One was a half-hour science fiction radio series broadcast from April 24, 1955 to January 9, 1958, in various time slots on NBC. Initially a revival of NBC's Dimension X (1950-51), X Minus One is widely considered among the finest science fiction dramas ever produced for radio. The first 15 episodes were new versions of Dimension X episodes, but the remainder were adaptations by NBC staff writers, including Ernest Kinoy and George Lefferts, of newly published science fiction stories by leading writers in the field.
Great collection in SERIOUS need of chapter labels
Jeff Wayne's The War of The Worlds: The Musical Drama
An Audible Original Drama
By: H. G. Wells, Jeff Wayne
Narrated by: Michael Sheen, Taron Egerton, Theo James, and others
When H. G. Wells first published The War of The Worlds in 1898, the novel quickly became a sci-fi classic. The story of extraterrestrials from Mars invading Earth captured the public's imagination, inspiring a famed 1938 radio broadcast with Orson Welles, several feature films, countless video games, and a best-selling musical concept album by Jeff Wayne in 1978, among others.
Wonderful production paired with a classic story.
By: H. G. Wells, and others
The Sandman: Act II
By: Neil Gaiman, Dirk Maggs
Narrated by: Neil Gaiman, James McAvoy, Emma Corrin, and others
In the absolutely packed Act II, the dark fantasy resumes and the Sandman expands into the French Revolution, ancient Rome, 19th-century San Francisco, eighth-century Baghdad, and beyond. New and familiar characters abound, voiced by a bright mix of performers, including Kat Dennings, Regé-Jean Page, Emma Corrin, Michael Sheen, Kristen Schaal, Brian Cox, John Lithgow, Jeffrey Wright, and so many more, including fan-favorite narrators Simon Vance and Ray Porter.
A real review after having fully read this book
By Chuck on 09-27-21
By: Neil Gaiman, and others
Terry Pratchett: BBC Radio Drama Collection
Seven BBC Radio 4 Full-Cast Dramatisations
By: Terry Pratchett
Narrated by: Martin Jarvis, Sheila Hancock, Anton Lesser, and others
Somewhere on the frontier between thought and reality exists the Discworld, a parallel time and place which might sound and smell very much like our own, but which looks completely different. Collected together for the first time are seven full-cast BBC Radio dramatisations of Terry Pratchett's novels, with star-studded casts including Martin Jarvis, Sheila Hancock, Anton Lesser, Philip Jackson, Alex Jennings and Mark Heap.
Get the unabridged audiobooks, instead
By S. Horn on 11-09-18
Great Radio Science Fiction
By: Robert Heinlein, Arch Oboler, Isaac Asimov
Narrated by: Orson Welles, Aldous Huxley, Old Time Radio
Close your eyes and see the future. Radio often explored the issues of the day by imagining the days to come - and never did it better than in the stories you'll hear in this collection! From 2000 Plus to Dimension X, this is Great Radio Science Fiction!
By Touch of Gray on 07-16-21
By: Robert Heinlein, and others
The Three Musketeers, The Count of Monte Cristo & The Lady of Camellias
Three BBC Radio 4 Full Cast Dramatisations
By: Alexandre Dumas, Alexandre Dumas fils
Narrated by: Anton Lesser, Dan Stevens, Iain Glen, and others
A BBC Radio collection bringing together much-loved works by Alexandre Dumas and Alexandre Dumas fils, starring Timothy Spall, Anton Lesser, Iain Glen, Ruth Wilson and Dan Stevens. Alexandre Dumas père and fils are among the most popular and widely read authors in French literature, whose works have been adapted numerous times for stage, screen and radio. This BBC radio collection brings together three of their most famous tales of chivalry, heroism and romance.
By Monica on 04-26-20
By: Alexandre Dumas, and others
Paradise Lost & Paradise Regained
Two BBC Radio 4 Dramatisations
By: John Milton
Narrated by: Denis Quilley, full cast, Ian McDiarmid, and others
A BBC Radio 4 dramatisation of Milton's epic poem telling the story of the fall of man and also its sequel, Paradise Regained. First published in 1667, Paradise Lost describes Satan's plot to ruin God's new and most favoured creation, mankind, and recounts the temptation of Adam and Eve and their banishment from the Garden of Eden. Paradise Regained, published in 1671, tells of the temptation of Christ by Satan as he wanders in the wilderness for 40 days and nights.
An epic classic voiced by epic classics
By E. Munoz on 07-26-18
The Charles Dickens BBC Radio Drama Collection: The Early Years
Seven BBC Radio Full-Cast Dramatisations
By: Charles Dickens
Narrated by: Alex Jennings, Anna Massey, Bill Nighy, and others
Captivating radio dramatisations of seven of Charles Dickens' most famous novels. Charles Dickens is one of the most renowned authors of all time, and this first digital volume of the dramatised canon of his work includes seven of his most popular novels.
Love Dickens! Books/Chapters/Length below...
By Hethmarie75 on 10-10-20
The Charles Dickens BBC Radio Drama Collection: The Later Years
Eight BBC Radio Full-Cast Dramatisations
Narrated by: Robert Glenister, Robert Lindsay, Ian Holm, and others
Enthralling radio dramatisations of eight of Charles Dickens' much-loved novels. Charles Dickens is one of the most renowned authors of all time, and this second digital volume of the dramatised canon of his work includes eight of his classic novels. This collection includes the epic masterpiece David Copperfield, described by Dickens as his 'favourite child'; suspenseful mystery Bleak House; Dickens' most openly political novel, Hard Times; and Little Dorrit.
Only thing lacking is consistent titles
By patrick on 03-23-18
Fear on 4
13 Chilling BBC Radio 4 Dramas
By: BBC, Various
Narrated by: Anna Massey, Bernard Cribbins, Edward de Souza, and others
An unsettling collection of full-cast dramas from the long-running BBC Radio 4 horror series. Throughout five series of Fear on 4 from 1988-1997, Edward de Souza was The Man in Black, a sinister raconteur who introduced a weekly half hour of terror and suspense. Here, he welcomes us to his house of horrors as he presents 13 terrifying tales that will make your flesh crawl. With eerie sound effects that enhance the atmosphere of dread, these bloodcurdling adaptations run the gamut from the mysterious to the macabre. With superb casts including Imelda Staunton, Bernard Cribbins, Anna Massey, Thora Hird and Sean Barrett.
Mediocre "Twilight Zone"
By bookish on 02-21-20
By: BBC, and others
Dr Gideon Fell: The Complete BBC Radio Drama Collection
Eight Full-Cast Crime Dramas from the Golden Age of Detective Fiction
By: John Dickson Carr
Narrated by: Wendy Craig, Donald Sinden, John Hartley, and others
With his cape, canes and shovel hat, portly amateur sleuth Dr Gideon Fell cuts an eccentric figure - but his odd appearance belies his sharp intellect and astonishing faculty for deduction. Created by crime novelist John Dickson Carr and supposedly based on fellow author G. K. Chesterton, Dr Fell appeared in 23 novels between 1933 and 1967. This radio collection comprises all eight of the BBC adaptations based on Carr's best-selling books.
The Delightful Dr. Fell
By DJDecca on 12-21-21
The Adventures of Harry Nile: I Witness
By: Jim French, Original Radio Broadcast
Narrated by: Larry Albert, Pat French, Mary Anne Dorward, and others
Imagine radio noir in the grand tradition - the mystery, excitement, and adventure of the medium's Golden Age. Now imagine that this has been combined with all of the technical polish that 21st century audio theatre techniques have to offer. That's The Adventures of Harry Nile. Produced by modern-radio legend Jim French, this collection features cases set in the 1940s. A hard-boiled but gentle-souled private investigator takes to the rain-swept streets of the Pacific Northwest.
By: Jim French, and others
A BBC Radio Full-Cast Dramatisation
By: Neil Gaiman
Narrated by: Christopher Lee, James McAvoy, Natalie Dormer, and others
Beneath the streets of London there is another London. A subterranean labyrinth of sewers and abandoned tube stations. A somewhere that is Neverwhere....
Absolutely Perfect Casting
By Jenn on 09-23-13
20,000 Leagues Under the Sea & The Mysterious Island
Two BBC Radio 4 Full-Cast Dramatisations
By: Jules Verne
Narrated by: Tayla Kovacevic-Ebong, full cast, Kerry Gooderson, and others
Jules Verne's two novels featuring Captain Nemo (20,000 Leagues Under the Sea and The Mysterious Island), condensed down to two thrilling hours. In 20,000 Leagues Under the Sea, marine scientist Professor Aronnax and his stowaway daughter, Connie, join whaler Ned Land aboard the USS Abraham Lincoln to hunt an aggressive sea monster, believed to be a giant narwhale. When they engage the monster, they find to their astonishment it's an electrically powered submarine, the Nautilus, technologically far superior to any vessel known.
misleading (too many changes)
EC Comics Presents...The Vault of Horror!
By: Johnny Craig, Jack Davis, Jules Feiffer, and others
Narrated by: Kevin Grevioux, Phil Proctor, Denise Poirier, and others
When the history of horror comics was written, one name stood and still stands above the rest: EC Comics. With equal parts suspense, gore, camp, and revenge, the triumvirate of EC's horror output laid the groundwork for what was to come from many of the genre's greatest writers and directors. Now, AudioComics (a division of Pocket Universe Productions) presents EC's The Vault of Horror, its stories adapted and presented in an audiorich fully immersive setting complete with a full cast, scoring, and soundscapes.
Absolutely AMAZING tribute to EC Comics
By Mr. LBW on 10-26-19
By: Johnny Craig, and others
Five seminal science fiction classics are brought vividly to life in these gripping BBC Radio dramatisations, with casts including Robert Glenister, William Gaunt, Carleton Hobbs and Joanne Froggatt.
Frankenstein (1994) is adapted from one of the first science fiction novels, Mary Shelley's tale of a scientist who tries to play God and creates a monster.
The Time Machine (2009) dramatises one of the first stories to feature time travel, HG Wells' thrilling tale of an inventor who discovers a dystopian future.
The Lost World (1975) is based on a classic fantasy adventure story by Arthur Conan Doyle, whose notion of dinosaurs roaming our world was the inspiration for Jurassic Park.
R.U.R. (1989) is a radio production of Karel Kapek's thought-provoking play which introduced the word robot to the English language.
Solaris (2007) dramatises Stanislaw Lem's pioneering ghost story set in space, both a suspenseful thriller and a philosophical meditation on guilt and the human condition.
Accompanying this collection is a bonus PDF file featuring extensive sleeve notes by Andrew Pixley. Duration: 10 hours approx.
PLEASE NOTE: When you purchase this title, the accompanying reference material will be available in your Library section along with the audio.
©2017 BBC Worldwide Ltd. (P)2017 BBC Worldwide Ltd.
Classics Science Fiction
The Truth and Other Stories
His Master's Voice
Dalek Empire 3.6 The Future
Dalek Empire 3.5 The Warriors
What listeners say about Classic Radio Sci-Fi: BBC Drama Collection
CHAPTER LIST:
CHAPTERS 1-2 FRANKENSTEIN
CHAPTERS 3-4 THE TIME MACHINE
CHAPTERS 5-7 THE LOST WORLD
CHAPTERS 8-9 R.U.R
CHAPTERS 10-11 SOLARIS
Jeremy M. Miller
I began this collection with high hopes. I love radio drama of the 1940s and thereabout. Additionally, the ground-breaking science fiction of over a century is to be praised. Be this simply dated, and that the performers lacked an inspired belief that the stories were true, I found this to be of historical fascination but of minimal pleasure, escape, and even passing believability. Disappointing....
Doug L
Every so often I get an audio performance book and then I'm reminded why I don't listen to more of them. The audio is so uneven that it's almost impossible to follow the story at times. One second people are yelling and the next they're whispering. Some characters are front and center while others are far back from the mic and really hard to hear. You end up constantly adjusting the volume. With headphones it's extremely jarring and totally detracts from the actual books.
Constant problem
Love all these stories so no problem there. But when you have multiple stories in one book why can't the chapters be labelled. There is no way to tell where each one starts. Surely they can be named rather than just Chapter 1 etc.
Two great - Two fine - One really bad
Let's start things off on a positive note. Solaris (2007) and The Time Machine (2009) are both enjoyable stories dramatised by the BBC. The others not so much.
Frankenstein (1994) is fine, but I've already heard the adaptation by Big Finish which is also available on Audible and is far superior (starring Arthur Darvill). Would have enjoyed this production more if I hadn't heard anything to compare it against.
Same issue with The Lost World (1975). I've already got the BBC's more recent production (2011) and it is much better. Starring David Robb
R.U.R., Rossum's Universal Robots (1989). There is a good story hidden there, but it is terribly dated. Especially the portrayal of the lead female, Helena Glory. Was glad when it ended. Won't be listening to it again. Ever.
Previously these five dramatisations were available separately so although I really enjoyed only two of them, for me at least, it still seems good value. Looking forward to reading other reviews of R.U.R.. Do others agree, is it really as bad as I thought it was?
Overall 3-1/2 stars
Honkin' Baldhead
Only listened to Frankenstein so far...
This great tale was not served well by the strange performances - at one point Frankenstein sounded like someone doing a bad impression of Prince Charles and the monster...well... Do you remember that episode of Blackadder with the actors in it - total luvvies..? Enough said. 'Ah...daahhling...see how I place...the back of my hand....so very...very dramatically on .... my fore...head. And how I .... place gaps in the...sentences, but only....where no....gap should exist?' Drama school nonsense. Looking forward to the other stories in the compilation tho!
Good collection!
Overall, a good collection! I enjoyed Solaris a lot, followed by the Time Machine. Probably, my lea set favorite was Frankenstein.
Here would be my breakdown:
Frankenstein - Ok
The Time Machine - Good
The Lost World - Ok
R.U.R - Good
Solaris - Great
worth buying just for Solaris
shame they put Solaris on last as it's worth buying just for this great version of the classic. tale
Usually a great lover if the old BBC Sci fi radio dramas, unfortunately the stories here are not performed to greatest.
Zulfiqar H.
Excellent stories brilliantly narrated
Excellent stories brilliantly narrated. All narrators are excellent and acting is very good. just long enough to be interesting and enjoyable.
Great imaginative stories
Loved the stories and imaginative role play and strong characters. Great sound effects and quality of narrative.
D T Betton
Great series of stories based on timeless classics
what a fab series. well dramatized. Great acting. timeless classics. I shall look for more in the series
Great classics Condensed.
How could any one who likes these classics not enjoy this? It was great feeling nostalgic as these dramas covered some of my favourite classic sci-fi in a radio drama format. I had not even read RUR before, but I will after listening to these.


I was inspired to wake up early today - mainly because it was Tuesday and I didn't have to go to work until 10am. I crept out before the sun came up and launched the boat to see if I could locate some fish in the river close to home. I don't see the sunrise too often so when it came up over the mirror calm water of the Shrewsbury River I had to try to take some photos. The only thing that would have made this a more perfect morning is if there was a fish to bite my line.
I tried several spots, different baits and lures - nothing. I did see some signs of bunker in the river. This means that the predator fish are not too far away I'm sure. It just wasn't my day but I'm glad I gave it a shot. Sometimes you just have to appreciate the outdoors for it's beauty and enjoy a few hours of solitude.
When I got home I decided to take a peek at the bee hive to see how they have been progressing. I felt confident enough to open the cover of the hive without getting all garbed up in my protective bee suit. Unfortunately for me, the first honeycomb was stuck to the cover and when I lifted off the cover the honeycomb came out with it - along with like 100 angry little bees! I was immediately attacked and before I could even put down the cover I was stung right in the forehead. Wow - that's smarts! I was trying not to destroy the honeycomb but when I started getting chased by bees from multiple directions my only choice was to drop the lid and run for cover. I ran, crazily swatting at the air like a wild man. I made it into my garage and closed the door - managing only to get that one sting in the head.
After fumbling around in some plastic bins I finally found my bee suit and gloves. Now protected, I was able to go back to the hive to try to salvage what I could of the detached honeycomb. I think I did a good job replacing it in one piece and I'm sure the bees will figure out how to repair the rest. Well, I'm pretty sure. They'll either fix it or work around it. I just hope that the queen bee was not on that particular comb when it came out. Only time will tell.
While suited I cleaned up the hive a bit and now it should be fully functional. I took out their feeder and moved the dividing board to the very back of the hive. Now they have room to expand and hopefully start making some honey. These bees have build quite a bit of comb already for the relatively short time they have been here. I'm expecting big things from them.
I can remember back a few years when I had the idea to get bees. That idea in my head is now paying off because the honey that I harvested last season has been such a big boost the this year's Survivor Diet. I don't think there exists a more healthy sweet than the honey produced by local bees. I have been able to use it in a variety of dishes as well as a quick snack and pick me up. I am being careful to ration it appropriately because I don't exactly have an endless supply.
My favorite dish that I have created so far has been honey glazed striped bass cubes and asparagus over rice. It is really amazing and I would have no problem making this same dish in non-survivor mode or to serve to guests. It's got a hint of Chinese flare to it and the addition of a tiny bit of soy sauce would put it over the top. Although I use striped bass, this could be made with any firm fleshed white fish such as snapper, grouper, tilapia and others.
Ingredients: white or brown rice, fish fillet - cut into small cubes, 4 asparagus - cut into 1 inch sections, sea salt, honey - about 2 tablespoons. Increase quantities for more than one serving.
Cook your rice in advance. Set it aside and before serving put a scoop down in the middle of the plate. Generously salt your fish fillet and cut into small cubes. Pour 1 tablespoon of honey over the fish cubes and mix it all together by hand or with a spoon. With heat on high, in a hot, nonstick skillet add your fish cubes and sauté until the fish is cooked through and starts to caramelize on the outside. Stir frequently to prevent sticking or burning.
Move the fish to a holding plate and add the cut asparagus pieces to the same hot pan. Sprinkle with sea salt and swirl around pan as the asparagus start to cook. The pan will have browned honey starting to coat the bottom at this point. Before this burns, deglaze the pan with about 2-3 tablespoons of water and continue to swirl the asparagus. This will release the honey fond and steam the asparagus - coating them in a sweet sauce.
After about 3 minutes the asparagus should be tender and the sauce should start to slightly thicken and reduce. Add the fish cubes back into the pan and stir all together. Add remaining tablespoon of honey and continue to stir, coating all of the fish and vegetables.
Pour the contents of the pan over the top of your plated rice and enjoy this fantastic Survivor Diet meal. I hope someone out there tries making this dish because it is really delicious. I had it for breakfast, lunch and dinner today - Ha! So I'm getting the hang of it. I tried once to just put all of the ingredients into the pan and cook it together in one shot but it didn't quite come out the same.
Suitable vegetable substitutions could be snow peas, green beans or perhaps broccoli. Onions maybe a good addition as well as a smashed clove of garlic. There ya have it.
Finally, no luck in the traps again today. Once again I am being laughed at by the squirrels, bunnies and birds in my backyard. They are outsmarting me but I feel like it is just a matter of time and patience.


The Facebook CEO has advocated for "multiple" chances to get it right.
In April, Facebook's CEO Mark Zuckerberg testified in front of Congress that the company would eliminate hate speech on the platform within 5 to 10 years using AI technology the company is currently developing. But Zuckerberg says that he thinks both Holocaust Deniers and Sandy Hook truthers, two fringe conspiracy groups that even GOP leaders have condemned, would not be subject to the crackdown.
In a 90-minute interview with Recode's Kara Swisher, Zuckerberg discussed issues of censorship on the platform, including the company's alleged conservative bias and its interference in Myanmar. When asked why he couldn't take down content that calls Sandy Hook a fraud, Zuckerberg conceded that he believes the claim is false, but that only direct harassment against victims of the tragedy would be removed. In his justification, he likened the group to Holocaust deniers.
The interview comes just a day after House Judiciary members met to discuss the alleged "conservative bias" of both Facebook and other platforms. At the hearing, Rep. Ted Deutch (D-Fla.) asked YouTube why it wouldn't remove InfoWars and its host Alex Jones, who has been a driving force of conspiracies about both the Sandy Hook and Parkland shooting, from its platform despite repeated violations for harassment.
"How many strikes does a conspiracy theorist who attacks grieving parents and survivors of a mass shooting get?" Deutch asked a Youtube executive, who responded that the company has a "strikes" policy for platform offenders.
Facebook's Head for Global Policy Management Monika Bickert told the committee that Facebook will take down pages like InfoWars"if they posted sufficient content that violated our threshold." She was not, however, able to clarify what that threshold was.
An internal document obtained by Motherboard was able to shed some clarity on the company's content guidelines. According to the report, a page or group will be taken down if it includes sexual solicitation in at least two "elements," such as the title, photo, or pinned post. Other guidelines in the obtained document included instructions to remove a page or group "if at least 30 percent of the content posted by other people within 90 days violates Facebook's community standards." Regarding hate speech, internal guidelines instructed moderators to remove a user if there were 5 or more infractions of the community guidelines.
The company's CEO, however, seemed to espouse a more lenient approach.
Republicans Had a Chance to Grill Facebook Over Russia. Instead, They Talked About Censoring Chick-fil-A.


text:
Press Releases — BBC Studios Productions
"Dancing with the Stars: Live! – Light Up the Night" Tour Hits the Road This Winter
All New Show to Feature "Dancing with the Stars" Season 25 Dancers Lindsay Arnold,
Sharna Burgess, Artem Chigvintsev, Sasha Farber, Keo Motsepe, Gleb Savchenko, Emma Slater, and More!
Following the success of "Dancing with the Stars: Live! – Hot Summer Nights" and the 25th Season of Dancing with the Stars, America's favorite dance show, produced by BBCWP, is going back on tour across America this winter with "Dancing with the Stars: Live! – Light Up The Night." This all-new production showcases every style of dance seen on ABC's hit show produced by BBC Worldwide Productions, from sizzling salsas to elegant waltzes and high energy group numbers, plus original pieces choreographed and creative directed by Emmy© winning choreographer Mandy Moore. "Dancing with the Stars: Live! – Light Up The Night" is traveling to more cities than ever, kicking off on December 30th in Charlotte, NC and finishing on March 18, 2018 in Los Angeles, CA.
Captivating audiences across the country, "Dancing with the Stars: Live! – Light Up The Night" features the faces you and love including Lindsay Arnold, Sharna Burgess, Artem Chigvintsev, Sasha Farber, Keo Motsepe, Gleb Savchenko, Emma Slater, Alan Bersten, Hayley Erbert and Britt Stewart, with more surprise casting to be announced.* Audiences will have the opportunity to experience the excitement, glamour and fun they see in the Dancing with the Stars ballroom every Monday night live in theaters in their very own hometowns.
Tickets for "Dancing with the Stars: Live! – Light Up The Night," are on sale now. To purchase tickets and to get the full list of tour dates, please visit dwtstour.com. VIP packages will be available through VIPNation.com, giving fans the chance to choose from a variety of packages offering premium tickets, meet and greet opportunities with the cast, exclusive merchandise and photo opportunities.
"Dancing with the Stars: Live! – Light Up The Night" is produced by Faculty Productions in association with BBC Worldwide.
"Dancing with the Stars: Live! – Light Up The Night" Tour Dates:
Dec 30: Charlotte, NC (Owens Auditorium)
Dec 31: Greenville, SC (Bon Secours Wellness Arena)
Jan 2: Atlanta, GA (The Fox)
Jan 3: Richmond, VA (Altria Theater)
Jan 4: Philadelphia, PA (Tower Theater)
Jan 5: Kitchener, ON (Centre in the Square)
Jan 6: Rama, ON (Casino Rama)
Jan 9: New Brunswick, NJ (State Theater)
Jan 10: Washington D.C. (MGM National Harbor)
Jan 12: Bethlehem, PA (Sands)
Jan 14: Lancaster, PA (American Music Theater)
Jan 16: Pittsburgh, PA (Bennedum)
Jan 18: New York, NY (Radio City Music Hall)
Jan 19: Verona, NY (Turning Stone)
Jan 20: Windsor, ON (Casino Windsor)
Jan 21: Buffalo, NY (Sheas)
Jan 23: Bangor, ME (Cross Insurance Center)
Jan 24: Portland, ME (Merrill Auditorium)
Jan 25: Boston, MA (Wang)
Jan 26: Uncasville, CT (Mohegan Sun)
Jan 28: Baltimore, MD (The Lyric)
Jan 30: Cleveland, OH (State Theater)
Jan 31: Columbus, OH (The Palace)
Feb 1: Cincinnati, OH (The Taft)
Feb 2: Indianapolis, IN (The Murat)
Feb 3: Rosemont, IL (Rosemont Theater)
Feb 5: Ames, IA (Stephens Auditorium)
Feb 6: Rockford, IL (Coronado)
Feb 7: Ft Wayne, IN (The Embassy)
Feb 8: Knoxville, TN (Knoxville Civic Auditorium)
Feb 9: Birmingham, AL (BJCC Concert Hall)
Feb 11: Nashville, TN (Opry House)
Feb 13: Sarasota, FL (Van Wezel)
Feb 14: Clearwater, FL (Ruth Eckerd Hall)
Feb 15: Hollywood, FL (Seminole Hard Rock)
Feb 16: Naples, FL (Hayes)
Feb 17: Jacksonville, FL (Times Moran)
Feb 18: Orlando, FL (Bob Carr Theater)
Feb 21: Austin, TX (Bass Hall)
Feb 22: Wichita Falls, TX (Wichita Falls Memorial Auditorium)
Feb 23: Dallas, TX (Fairpark Music Hall)
Feb 24: Sugar Land, TX (Smart Financial Center)
Feb 25: McAllen, TX (McAllen Performing Arts Center)
Feb 26: Midland, TX (Wagner Noel)
Feb 27: Amarillo, TX (Amarillo Civic Auditorium)
Mar 1: Albuquerque, NM (Popejoy)
Mar 2: El Paso, TX (Chavez Theater)
Mar 3: Phoenix, AZ (Comerica Theater)
Mar 4: San Diego, CA (Symphony Hall)
Mar 6: Riverside, CA (Fox Theater)
Mar 8: Stockton, CA (Stockton Arena)
Mar 9: San Jose, CA (City National)
Mar 10: Redding, CA (Redding Civic Center)
Mar 11: Eugene, OR (Hult Center)
Mar 13: Seattle, WA (WaMu Theater)
Mar 14: Spokane, WA (INB Center)
Mar 15: Boise, ID (Morriston Center)
Mar 16: Reno, NV (Grand Sierra)
Mar 17: Santa Barbara, CA (Arlington Theater)
Mar 18: Los Angeles, CA (Microsoft Theater)
*Cast subject to change.
"Dancing with the Stars" airs Monday nights at 8|7 c on the ABC Television Network.
About Faculty Productions
Faculty Productions, formed by veteran manager and producer Jared Paul in partnership with Live Nation, the world's leading live entertainment company, produces and creates world-class live branded entertainment and concerts in partnership with the world's largest media companies. Faculty Productions is responsible for some of the most successful recent global touring productions, including "Dancing with the Stars: Live!" (BBC Worldwide and ABC), "Move Live on Tour" (Derek Hough and Julianne Hough), "America's Got Talent Live!" (Freemantle Media, Syco Entertainment and NBC), "The Sing-Off Live Tour" (Sony Pictures and NBC), "Glee Live! In Concert!" (FOX and Ryan Murphy Productions), "Big Time Rush Big Time Tour" (Nickelodeon/ Sony Music), "Mixtape Festival" (VH1 and Live Nation) and the "Boston Strong Benefit Concert" (ONE FUND and Live Nation).
About BBC Worldwide Productions
BBC Worldwide Productions is a key business division under BBC Worldwide North America – part of BBC Worldwide, the main commercial arm and wholly-owned subsidiary of the British Broadcasting Corporation (BBC) – which operates as a studio in the U.S. and Canada. Based in Los Angeles, BBC Worldwide Productions develops and produces original content as well as scripted and unscripted projects based on BBC formats/brands across all platforms. The studio is responsible for the ratings juggernaut Dancing with the Stars (ABC), Top Gear America (BBC America), and the limited series, The Night Of (HBO).
Dancing with the Stars: Live!
Melanie Fitzpatrick Ingrid Meilan
Melanie@pritchpr.com ingridmeilan33@gmail.com
Faculty Productions
Tara Taghizadeh
Tara@facultyinc.com
BBC Worldwide Productions
Susana Voets
Susana.Voets@bbc.com
For video clips and photos, please contact Melanie@pritchpr.com or ingridmeilan33@gmail.com
Facebook: www.facebook.com/dancingwiththestars
Twitter: @DancingABC, #DWTS
Instagram: @DancingABC

redpajama_set_name: RedPajamaCommonCrawl


PUTTING THE "FUN" BACK IN "FUNERAL"
When (& if) I die, I don't want a conventional funeral, with everyone being sad. Instead, I want fireworks to celebrate my life! I told my husband & he said fireworks weren't his thing. I said they were MY thing. He offered a compromise—he said he would stick a sparkler in my behind. Somehow, I don't feel that would be the same thing. What do you think?
Nominee No. 1 [San Jose Mercury News]: An unidentified man, using a shotgun like a club to break a former girlfriend's windshield, accidentally shot himself to death when the gun discharged, blowing a hole in his gut.
Nominee No. 2 [Kalamazoo Gazette]: James Burns, 34, (a mechanic) of Alamo, MI, was killed in March as he was trying to repair what police describe as a "farm-type truck." Burns got a friend to drive the truck on a highway while Burns hung underneath so that he could ascertain the source of a troubling noise.. Burns' clothes caught on something, however, and the other man found Burns "wrapped in the drive shaft."
Nominee No. 5 [Bloomberg News Service]: A terrible diet and a room with no ventilation are being blamed for the death of a man who was killed by his own gas emissions. There were no marks on his body, and an autopsy showed large amounts of methane gas in his system. His diet had consisted primarily of beans and cabbage (and a couple of other things). It was just the right combination of foods. It appears that the man died in his sleep from breathing the poisonous cloud that was hanging over his bed. Had he been outside or had his windows been opened, it wouldn't have been fatal. But the man was shut up in his nearly airtight bedroom. According to the article, "He was a big man with a huge capacity for creating "this deadly gas." Three of the rescuers got sick, and one was hospitalized.
Nominee No. 7 [The Indianapolis Star]: A cigarette lighter may have triggered a fatal explosion in Dunkirk, IN. A Jay County man, using a cigarette lighter to check the barrel of a muzzle loader, was killed Monday night when the weapon discharged in his face, sheriff's investigators said. Gregory David Pryor, 19, died in his parents' rural Dunkirk home at about 11:30 PM. Investigators said Pryor was cleaning a 54-caliber muzzle loader that had not been firing properly. He was using the lighter to look into the barrel when the gunpowder ignited.
Finally, THE WINNER! [North Carolina Democrat Gazette]: Two local men were injured when their pickup truck left the road and struck a tree near Cotton Patch on State Highway 38 early Monday. Woodruff County deputy Dovey Snyder reported the accident shortly after midnight Monday. Thurston Poole, 33, of Des Arc, and Billy Ray Wallis, 38, of Little Rock, were returning to Des Arc after a "frog gigging trip" on an overcast Sunday night when Poole's pickup truck headlights malfunctioned. The two men concluded that the headlight fuse on the older-model truck had burned out. As a replacement fuse was not avail able, Wallis noticed that the .22 caliber bullet from his pistol fit perfectly into the fuse box next to the steering-wheel column. Upon inserting the bullet the headlights again began to operate properly, and the two men proceeded on eastbound toward the White River Bridge. After traveling approximately 20 miles, and just before crossing the river, the bullet apparently overheated, discharged, and struck Poole in the testicles. The vehicle swerved sharply right, exiting the pavement, and striking a tree. Poole suffered only minor cuts and abrasions from the accident, but will require extensive surgery to repair the damage to his testicles, which will never operate as intended.
Wallis sustained a broken clavicle and was treated and released.. "Thank God we weren't on that bridge when Thurston shot his balls off, or we might both be dead," stated Wallis. "I've been a trooper for 10 years in this part of the world, but this is a first for me. I can't believe that those two would admit how this accident happened," said Snyder. Upon being notified of the wreck, Lavinia (Poole's wife) asked how many frogs the boys had caught and did anyone get them from the truck?


HexEdit is a freeware, no-hassle Windows-based hex editor. Apart from the countless features HexEdit offers, it can also be installed to the windows explorer menu. This gives hackers and interested persons a quick way to check out binary files. This program is feature packed and hassle-free.
For security reasons, you should also check out the HexEdit download at LO4D.com which includes virus and malware tests. Additional screenshots of this application download may be available, too.
HexEdit has a presence on social networks.


This preview was originally posted on April 25, 2011, but since Clever Mojo Games has now released Sunrise City into the wilds of Kickstarter, I thought it would be a good time to take a look at how far the game has progressed. I've played Sunrise City many, many times since this preview and watched as it developed into a fun, approachable and engaging game. To check out how it has grown and progressed, read over the preview and then head over to Kickstarter to check out the campaign!
"The idea for the game is definitely inspired by Sim City. I'm sure everyone can relate to starting up a new city on Easy mode, spending that $10k on laying down a nice city, and then scrapping it after you realize you actually have to manage it! While doing the initial development, some other games inspired me: Medici (on iPhone), Metropolys, Caylus, and Carson City.
The motivation to create the game came from the Quick Print n' Play Design Contest on the BoardGameGeek.com forums.
I had initially entered a different game into the contest, but a few weeks in Jack Neal, the person running the contest, decided not toenter his city building idea. I sent him a message asking if it would be okay if I entered a city building game and he gave me the go ahead. That same night, I had a bolt of inspiration and wrote out some (terrible) rules.
Card and tile art are temps. I'm guessing the giant wooden cubes are hear to stay, though.
For a few weeks, I kept tweaking the game and taking advice from forum posters. The game evolved quite quickly, which was exciting, but unfortunately, although I didn't know it at the time, it was evolving in the wrong direction.
I was one edit away from adding in useless mathematical (taxes/rent) mechanics when David MacKenzie from Clever Mojo Games jumped on the forum thread. Luckily for me, he invited me to his weekly play-testing Meetup group and asked if he could take a look at the game in person.
From left to right: Sunrise City designer Isaias Vallejo, regular Clever Mojo Games playtesters Seth and Robert.
Isaias was kind enough to send me a copy of the beta rules for Sunrise City and the game has a good mix of smooth play, strategic complexity and great potential replay value. Since it combines three of my favorite gaming things – bidding, tile laying, and city building – this is one game that I'll be keeping a close eye on as it develops in semi-open playtesting. Be sure to watch Dice Hate Me for more updates!
A couple of disclaimers: First, for full disclosure, Clever Mojo Games has hired me to handle final graphic design for Sunrise City, but I would think it was a good game regardless. I am paid as a freelancer and so will not collect royalties; I'll be paid regardless of whether the game is a success or not – which, of course, it will be. Second, I said in the preview that the giant wooden bidding blocks were probably here to stay. I was wrong. I hate when that happens.
It has taken me a while to come around to this game. I think I have always associated squarish tiles with one of my all time favorite games Carcassonne . I have had to break my preconceived notions of a game to see that this is a tight game with a lot of interaction. It does have the feeling of a tense land grab as well as a sky grab. The roles, bidding, and tile placement have a lot of interesting spins to it. I am glad CMG David, Isaias and Drew stuck to their guns on this one.
It has taken me a while to come around with this game. I think I have always associated squarish tiles with one of my all time favorite games Carcassonne . I have had to break my preconceived notions of a tile laying game to see that this is a tight game with a lot of interaction. It does have the feeling of a tense land grab as well as a sky grab. The roles, bidding, and tile placement have a lot of interesting spins to it. I am glad CMG David, Isaias and Drew stuck to their guns on this one.
Seth – Yeah, I think they have really done a good job of keeping the core of the game solid through many iterations. It's a pretty relaxing game – a beer and pretzels type of affair, in my book. I like that. It's comforting and very approachable.


Discover our edit of the finest vintage jewellery from our boutiques located around the world. Whether you seek opulence or understated, Open for Vintage have curated the best necklaces, rings, bracelets and earrings from the industry's most sort-after designers. Shop through the decades and enjoy the unrivalled craftmanship from brands such as Cartier, Chanel, Dior and Hermès.


Next year, we're going to come back here and run this thing in 4 hours Tony said. I said ,yeah, I'm sure we can do that if we just leave out that out and back spur on the Cedar Ridge Trail from mile 21 to 24.
This was my 4th time running this race. I missed the 2nd year because I waited too late to sign up but I did volunteer that year. And for the 4th time I had a bad race. For the 3rd year in a row I had my frequent trail companion Tony Rouse along for the fun. It seems funny how both of us find a way to fall apart at this race. Two years ago we could blame the unseasonably hot weather. Last year we went out way to hard, but this year we couldn't come up with an explanation. I guess it's just a hard race but you would think maybe we could feel good just one time.
I really didn't know how I wanted to run this year and really only made up my mind the night before the race. I decided I would go out easy for the first couple of miles and see how I felt. If I felt great I'd go for a fast time. If I just felt OK, then I would continue to run easy and call it a workout in preparation for the upcoming 100 in April. I arrived at Camp Lapihio about 45 minutes before the race and carried my bag inside and went to check in. That took a while because of seeing so many friends to greet. That is one of the great attractions of this local race . I was very happy to see my great friend Margo, as soon as I entered the lodge. This is where I first met her 3 years ago. My friend Jerry had told me about this this amazing Italian Marathon Lady and I recognized her from his description as we ran along in the first mile. I introduced myself and I'm sure she must have thought I was a bit strange as she quickly pulled away. Since that day she has become one of my dearest friends and has played a big part in my becoming a more social person instead of the former hermit of a few years ago. Thats her with the black leggings waiting in the potty line with the Ever Lovely Mrs. Doom and Marie behind her.
Finally it was time to start so everyone gathered outside and suddenly 5 minutes before the start a thunderstorm passed over soaking us all. Fortunately it wasn't cold and the rain stopped by the time we reached the 1st mile. I was cruising along easily and chatting with Doom, Mark Long, and Mike Day. By mile 2 they begin to pull away and I was not ready to push the pace yet. I was waiting to see how I felt once we hit the single- track. Tony caught up to me just as I started onto the Company Mill Trail and we began our usual race chatter. No one else has come close to running as many miles in trail races and ultra's with me than Tony. And the funny thing is we have never planned on running one together. It just seems at some point we seem to find one another and our paces are very similar. Some days he pulls ahead, some days I'm feeling better and then days like today we end up running to the finish. I've lost count of the number of times we have tied at the end.
So as we ran down the hill to the creek bottom, I was tempted to pass some slower runners but held back still waiting since we still had 23 miles to go. As we came to the first climb it became obvious to me that I would not be breaking 4 ours today. Margo caught up to us and I introduced her and Tony. I was really enjoying the single-track sections. The rain from the day before and the morning had the trails nice and wet with mud and standing water. It wasn't the yucky, sticky kind of mud though. Just the fun splashy kind that makes you feel like a kid playing around. We ran together for a while until we came to the bridle trail again. Margo pulled ahead after the aid station and would stay ahead the rest of the day despite having just ran the Little Rock Marathon last weekend. What a strong lady. As we ran down the hill to began the Sycamore Trail I told Tony, that I would not be trying for a fast time today. He agreed that the pace should have felt a lot easier than it did so we would just try to have fun and get in a good workout. I figured as lousy as I'd run in the past I could just take it easy and still end up with a course PR at least.
So for the next couple of hours we would just cruise along having fun and greeting friends on the out and back sections. We were separated for about a mile on the North Turkey Creek Trail as I was walking faster than Tony and he decided to let me go. But I was in no hurry and soon he caught back up to me. It was while he was behind me that I came into the most interesting aid station of the day. Several young ladies were dressed up in evening dresses and had a Prom theme. One of the signs said to kiss the Prom Queen and not being a guy that can turn down a chance to kiss a pretty young girl, I took her up on the offer. They all got very excited and said I was the first person to actually get a kiss. Makes me wonder what's wrong with all the other guys. Well, I guess some of them Are married.
By the time we came off Turkey Creek I was pretty much toast. I was tired and moving slow and with another 10 miles to go I was afraid it would be a long day. At least I could still get that course pr if I just kept moving. Not. I was well hydrated and had taken in plenty of calories but it was just not to be today. By the time we began the climb up the Cedar Ridge Trail it was obvious that even beating last years time would not be happening today. Very disappointing but at least it would soon be over. Ended up in 4:43:35, about 6 minutes slower than last year. But within a few minutes I was smiling again and enjoying the company of many MTC friends in the Lodge. Tony announced our plan to return next year and run under 4hours. I said I think instead I'm going to give up this long distance stuff and go back to running 5K's . Slowly.
Yeah right. See you at the 100 miler in three weeks.
Thanks to MTC member Ron Horton for the photos. Here is a link to the one he took.
And here is his race report with even more photos.


text:
John o' Groats, Scotland
John o' Groats Marker
The sign marks one of the endpoints to mainland Britain's longest overland travel route.
The marker. KenJ (Atlas Obscura User)
Marker and Ferry. KenJ (Atlas Obscura User)
Marker, hotel, ferry. KenJ (Atlas Obscura User)
This signpost marks the northeastern point of the Land's End to John o' Groats route. The route is the longest distance a person can walk between any two towns in Britain, clocking in at 874 miles, stretching from the southwest to the northeast of the island.
Top Places in Scotland
Sawney Bean's Cave
Legend says this cave housed a 16th-century cannibal and his family of 48.
Greyfriars Cemetery Mortsafes
Protecting the dead from opportunistic body snatchers.
Argyll and Bute, Scotland
A small island abbey is the final resting place of many medieval Scottish monarchs, including the real Macbeth.
Added by rayodiorne
See more things to do in Scotland »
Since the 1960s, there has been a signpost at the spot, which is a favorite for bicyclists or walkers to document the completion or beginning point of their transversal either as a charity fundraiser or simply a personal endurance challenge.
The earliest known pedestrian trip was in 1871. Current walkers will usually have a much longer distance to cover than those riding on motorways, as they must traverse about 1,200 miles. If walking, it can take a couple of months to complete. The bicycle record is less than two days, but most cyclists will take a couple of weeks to finish. The Land's End—John o'Groats association offers several annual awards for certain categories based on age, mode of travel, top fundraiser, etc. One of the more eccentric un-powered trips was undertaken by David Sullivan, who hit golf balls all the way.
Ewan McGregor and his friend Charley Boorman kicked off their adventure travel documentary, The Long Way Down from John o' Groats marker to Cape Agulhas, the southernmost point on the African continent.
The spot is often touted as the northernmost point in mainland Britain, though that's incorrect, as that point is a few miles west at Dunnet Head.
John o'Groats can be reached by public transportation and is about half an hour from Wick by car. The marker and hotel are a short walk from the A836. A ferry to the nearby islands are also available. There is a hotel, bistro and camping available.
Visit Scotland with Atlas Obscura Trips
Inside the Fringe: Festival Season in Edinburgh
Experience the world's premiere performance festival as an Edinburgh insider.
signsgeographic markerstrails
KenJ
https://en.wikipedia.org/wiki/Land%27s_End_to_John_o%27_Groats
John o' Groats, Scotland, KW1 4YR
Orkney, Scotland
Tomb of the Eagles
This Scottish burial tomb once held hundreds of ancient eagle bones.
Added by embentley1
Dunnet, Scotland
Dunnet Head Lighthouse
The most northern place on the mainland of Great Britain.
Added by KenJ
Wick, Scotland
Ebenezer Place
The world's shortest street was created by an awkwardly placed hotel.
Added by nmcclure85
This tin chapel was built by POW's during World War II and is painted to look like something much more grand.
Added by vibrantgreen
Ushuaia, Argentina
Bahia Lapataia at the End of the World
The most southern point you can drive to in the Western Hemisphere.
Keoldale, Scotland
Cape Wrath
The farthest northwesterly point of the British mainland is one of the most remote places in the Scottish Highlands.
Added by mikestew1990
Osborne, Kansas
Geodetic Center of North America
This lesser-known geographic marker was the reference point for all surveys of the continent for 75 years.
Added by casualmonolith
L'Agulhas, South Africa
Cape Agulhas Marker
This small monument marks the divide between the Atlantic and Indian Oceans at the southernmost tip of Africa.
Added by hm1945


text:
import os
import logging
import inspect
from copy import copy
from collections import OrderedDict

from wlauto.core.bootstrap import settings
from wlauto.exceptions import ValidationError, ConfigError
from wlauto.utils.misc import isiterable, ensure_directory_exists as _d, get_article
from wlauto.utils.types import identifier, integer, boolean

class AttributeCollection(object):
    """
    Accumulator for extension attribute objects (such as Parameters or Artifacts). This will
    replace any class member list accumulating such attributes through the magic of
    metaprogramming\ [*]_.

    .. [*] which is totally safe and not going backfire in any way...

    """

    @property
    def values(self):
        return self._attrs.values()

    def __init__(self, attrcls):
        self._attrcls = attrcls
        self._attrs = OrderedDict()

    def add(self, p):
        p = self._to_attrcls(p)
        if p.name in self._attrs:
            if p.override:
                newp = copy(self._attrs[p.name])
                for a, v in p.__dict__.iteritems():
                    if v is not None:
                        setattr(newp, a, v)
                self._attrs[p.name] = newp
            else:
                # Duplicate attribute condition is check elsewhere.
                pass
        else:
            self._attrs[p.name] = p

    append = add

    def __str__(self):
        return 'AC({})'.format(map(str, self._attrs.values()))

    __repr__ = __str__

    def _to_attrcls(self, p):
        if isinstance(p, basestring):
            p = self._attrcls(p)
        elif isinstance(p, tuple) or isinstance(p, list):
            p = self._attrcls(*p)
        elif isinstance(p, dict):
            p = self._attrcls(**p)
        elif not isinstance(p, self._attrcls):
            raise ValueError('Invalid parameter value: {}'.format(p))
        if (p.name in self._attrs and not p.override and
                p.name != 'modules'):  # TODO: HACK due to "diamond dependecy" in workloads...
            raise ValueError('Attribute {} has already been defined.'.format(p.name))
        return p

    def __iadd__(self, other):
        for p in other:
            self.add(p)
        return self

    def __iter__(self):
        return iter(self.values)

    def __contains__(self, p):
        return p in self._attrs

    def __getitem__(self, i):
        return self._attrs[i]

    def __len__(self):
        return len(self._attrs)

class AliasCollection(AttributeCollection):

    def __init__(self):
        super(AliasCollection, self).__init__(Alias)

    def _to_attrcls(self, p):
        if isinstance(p, tuple) or isinstance(p, list):
            # must be in the form (name, {param: value, ...})
            p = self._attrcls(p[1], **p[1])
        elif not isinstance(p, self._attrcls):
            raise ValueError('Invalid parameter value: {}'.format(p))
        if p.name in self._attrs:
            raise ValueError('Attribute {} has already been defined.'.format(p.name))
        return p

class ListCollection(list):

    def __init__(self, attrcls):  # pylint: disable=unused-argument
        super(ListCollection, self).__init__()

class Param(object):
    """
    This is a generic parameter for an extension. Extensions instantiate this to declare which parameters
    are supported.

    """

    # Mapping for kind conversion; see docs for convert_types below
    kind_map = {
        int: integer,
        bool: boolean,
    }

    def __init__(self, name, kind=None, mandatory=None, default=None, override=False,
                 allowed_values=None, description=None, constraint=None, global_alias=None, convert_types=True):
        """
        Create a new Parameter object.

        :param name: The name of the parameter. This will become an instance member of the
                     extension object to which the parameter is applied, so it must be a valid
                     python  identifier. This is the only mandatory parameter.
        :param kind: The type of parameter this is. This must be a callable that takes an arbitrary
                     object and converts it to the expected type, or raised ``ValueError`` if such
                     conversion is not possible. Most Python standard types -- ``str``, ``int``, ``bool``, etc. --
                     can be used here. This defaults to ``str`` if not specified.
        :param mandatory: If set to ``True``, then a non-``None`` value for this parameter *must* be
                          provided on extension object construction, otherwise ``ConfigError`` will be
                          raised.
        :param default: The default value for this parameter. If no value is specified on extension
                        construction, this value will be used instead. (Note: if this is specified and
                        is not ``None``, then ``mandatory`` parameter will be ignored).
        :param override: A ``bool`` that specifies whether a parameter of the same name further up the
                         hierarchy should be overridden. If this is ``False`` (the default), an exception
                         will be raised by the ``AttributeCollection`` instead.
        :param allowed_values: This should be the complete list of allowed values for this parameter.
                               Note: ``None`` value will always be allowed, even if it is not in this list.
                               If you want to disallow ``None``, set ``mandatory`` to ``True``.
        :param constraint: If specified, this must be a callable that takes the parameter value
                           as an argument and return a boolean indicating whether the constraint
                           has been satisfied. Alternatively, can be a two-tuple with said callable as
                           the first element and a string describing the constraint as the second.
        :param global_alias: This is an alternative alias for this parameter, unlike the name, this
                             alias will not be namespaced under the owning extension's name (hence the
                             global part). This is introduced primarily for backward compatibility -- so
                             that old extension settings names still work. This should not be used for
                             new parameters.

        :param convert_types: If ``True`` (the default), will automatically convert ``kind`` values from
                              native Python types to WA equivalents. This allows more ituitive interprestation
                              of parameter values, e.g. the string ``"false"`` being interpreted as ``False``
                              when specifed as the value for a boolean Parameter.

        """
        self.name = identifier(name)
        if kind is not None and not callable(kind):
            raise ValueError('Kind must be callable.')
        if convert_types and kind in self.kind_map:
            kind = self.kind_map[kind]
        self.kind = kind
        self.mandatory = mandatory
        self.default = default
        self.override = override
        self.allowed_values = allowed_values
        self.description = description
        if self.kind is None and not self.override:
            self.kind = str
        if constraint is not None and not callable(constraint) and not isinstance(constraint, tuple):
            raise ValueError('Constraint must be callable or a (callable, str) tuple.')
        self.constraint = constraint
        self.global_alias = global_alias

    def set_value(self, obj, value=None):
        if value is None:
            if self.default is not None:
                value = self.default
            elif self.mandatory:
                msg = 'No values specified for mandatory parameter {} in {}'
                raise ConfigError(msg.format(self.name, obj.name))
        else:
            try:
                value = self.kind(value)
            except (ValueError, TypeError):
                typename = self.get_type_name()
                msg = 'Bad value "{}" for {}; must be {} {}'
                article = get_article(typename)
                raise ConfigError(msg.format(value, self.name, article, typename))
        current_value = getattr(obj, self.name, None)
        if current_value is None:
            setattr(obj, self.name, value)
        elif not isiterable(current_value):
            setattr(obj, self.name, value)
        else:
            new_value = current_value + [value]
            setattr(obj, self.name, new_value)

    def validate(self, obj):
        value = getattr(obj, self.name, None)
        if value is not None:
            if self.allowed_values:
                self._validate_allowed_values(obj, value)
            if self.constraint:
                self._validate_constraint(obj, value)
        else:
            if self.mandatory:
                msg = 'No value specified for mandatory parameter {} in {}.'
                raise ConfigError(msg.format(self.name, obj.name))

    def get_type_name(self):
        typename = str(self.kind)
        if '\'' in typename:
            typename = typename.split('\'')[1]
        elif typename.startswith('<function'):
            typename = typename.split()[1]
        return typename

    def _validate_allowed_values(self, obj, value):
        if 'list' in str(self.kind):
            for v in value:
                if v not in self.allowed_values:
                    msg = 'Invalid value {} for {} in {}; must be in {}'
                    raise ConfigError(msg.format(v, self.name, obj.name, self.allowed_values))
        else:
            if value not in self.allowed_values:
                msg = 'Invalid value {} for {} in {}; must be in {}'
                raise ConfigError(msg.format(value, self.name, obj.name, self.allowed_values))

    def _validate_constraint(self, obj, value):
        msg_vals = {'value': value, 'param': self.name, 'extension': obj.name}
        if isinstance(self.constraint, tuple) and len(self.constraint) == 2:
            constraint, msg = self.constraint  # pylint: disable=unpacking-non-sequence
        elif callable(self.constraint):
            constraint = self.constraint
            msg = '"{value}" failed constraint validation for {param} in {extension}.'
        else:
            raise ValueError('Invalid constraint for {}: must be callable or a 2-tuple'.format(self.name))
        if not constraint(value):
            raise ConfigError(value, msg.format(**msg_vals))

    def __repr__(self):
        d = copy(self.__dict__)
        del d['description']
        return 'Param({})'.format(d)

    __str__ = __repr__

Parameter = Param

class Artifact(object):
    """
    This is an artifact generated during execution/post-processing of a workload.
    Unlike metrics, this represents an actual artifact, such as a file, generated.
    This may be "result", such as trace, or it could be "meta data" such as logs.
    These are distinguished using the ``kind`` attribute, which also helps WA decide
    how it should be handled. Currently supported kinds are:

        :log: A log file. Not part of "results" as such but contains information about the
              run/workload execution that be useful for diagnostics/meta analysis.
        :meta: A file containing metadata. This is not part of "results", but contains
               information that may be necessary to reproduce the results (contrast with
               ``log`` artifacts which are *not* necessary).
        :data: This file contains new data, not available otherwise and should be considered
               part of the "results" generated by WA. Most traces would fall into this category.
        :export: Exported version of results or some other artifact. This signifies that
                 this artifact does not contain any new data that is not available
                 elsewhere and that it may be safely discarded without losing information.
        :raw: Signifies that this is a raw dump/log that is normally processed to extract
              useful information and is then discarded. In a sense, it is the opposite of
              ``export``, but in general may also be discarded.

              .. note:: whether a file is marked as ``log``/``data`` or ``raw`` depends on
                        how important it is to preserve this file, e.g. when archiving, vs
                        how much space it takes up. Unlike ``export`` artifacts which are
                        (almost) always ignored by other exporters as that would never result
                        in data loss, ``raw`` files *may* be processed by exporters if they
                        decided that the risk of losing potentially (though unlikely) useful
                        data is greater than the time/space cost of handling the artifact (e.g.
                        a database uploader may choose to ignore ``raw`` artifacts, where as a
                        network filer archiver may choose to archive them).

        .. note: The kind parameter is intended to represent the logical function of a particular
                 artifact, not it's intended means of processing -- this is left entirely up to the
                 result processors.

    """

    RUN = 'run'
    ITERATION = 'iteration'

    valid_kinds = ['log', 'meta', 'data', 'export', 'raw']

    def __init__(self, name, path, kind, level=RUN, mandatory=False, description=None):
        """"
        :param name: Name that uniquely identifies this artifact.
        :param path: The *relative* path of the artifact. Depending on the ``level``
                     must be either relative to the run or iteration output directory.
                     Note: this path *must* be delimited using ``/`` irrespective of the
                     operating system.
        :param kind: The type of the artifact this is (e.g. log file, result, etc.) this
                     will be used a hit to result processors. This must be one of ``'log'``,
                     ``'meta'``, ``'data'``, ``'export'``, ``'raw'``.
        :param level: The level at which the artifact will be generated. Must be either
                      ``'iteration'`` or ``'run'``.
        :param mandatory: Boolean value indicating whether this artifact must be present
                          at the end of result processing for its level.
        :param description: A free-form description of what this artifact is.

        """
        if kind not in self.valid_kinds:
            raise ValueError('Invalid Artifact kind: {}; must be in {}'.format(kind, self.valid_kinds))
        self.name = name
        self.path = path.replace('/', os.sep) if path is not None else path
        self.kind = kind
        self.level = level
        self.mandatory = mandatory
        self.description = description

    def exists(self, context):
        """Returns ``True`` if artifact exists within the specified context, and
        ``False`` otherwise."""
        fullpath = os.path.join(context.output_directory, self.path)
        return os.path.exists(fullpath)

    def to_dict(self):
        return copy(self.__dict__)

class Alias(object):
    """
    This represents a configuration alias for an extension, mapping an alternative name to
    a set of parameter values, effectively providing an alternative set of default values.

    """

    def __init__(self, name, **kwargs):
        self.name = name
        self.params = kwargs
        self.extension_name = None  # gets set by the MetaClass

    def validate(self, ext):
        ext_params = set(p.name for p in ext.parameters)
        for param in self.params:
            if param not in ext_params:
                # Raising config error because aliases might have come through
                # the config.
                msg = 'Parameter {} (defined in alias {}) is invalid for {}'
                raise ConfigError(msg.format(param, self.name, ext.name))

class ExtensionMeta(type):
    """
    This basically adds some magic to extensions to make implementing new extensions, such as
    workloads less complicated.

    It ensures that certain class attributes (specified by the ``to_propagate``
    attribute of the metaclass) get propagated down the inheritance hierarchy. The assumption
    is that the values of the attributes specified in the class are iterable; if that is not met,
    Bad Things (tm) will happen.

    This also provides virtual method implementation, similar to those in C-derived OO languages,
    and alias specifications.

    """

    to_propagate = [
        ('parameters', Parameter, AttributeCollection),
        ('artifacts', Artifact, AttributeCollection),
        ('core_modules', str, ListCollection),
    ]

    virtual_methods = ['validate', 'initialize', 'finalize']
    global_virtuals = ['initialize', 'finalize']

    def __new__(mcs, clsname, bases, attrs):
        mcs._propagate_attributes(bases, attrs)
        cls = type.__new__(mcs, clsname, bases, attrs)
        mcs._setup_aliases(cls)
        mcs._implement_virtual(cls, bases)
        return cls

    @classmethod
    def _propagate_attributes(mcs, bases, attrs):
        """
        For attributes specified by to_propagate, their values will be a union of
        that specified for cls and it's bases (cls values overriding those of bases
        in case of conflicts).

        """
        for prop_attr, attr_cls, attr_collector_cls in mcs.to_propagate:
            should_propagate = False
            propagated = attr_collector_cls(attr_cls)
            for base in bases:
                if hasattr(base, prop_attr):
                    propagated += getattr(base, prop_attr) or []
                    should_propagate = True
            if prop_attr in attrs:
                propagated += attrs[prop_attr] or []
                should_propagate = True
            if should_propagate:
                attrs[prop_attr] = propagated

    @classmethod
    def _setup_aliases(mcs, cls):
        if hasattr(cls, 'aliases'):
            aliases, cls.aliases = cls.aliases, AliasCollection()
            for alias in aliases:
                if isinstance(alias, basestring):
                    alias = Alias(alias)
                alias.validate(cls)
                alias.extension_name = cls.name
                cls.aliases.add(alias)

    @classmethod
    def _implement_virtual(mcs, cls, bases):
        """
        This implements automatic method propagation to the bases, so
        that you don't have to do something like

            super(cls, self).vmname()

        This also ensures that the methods that have beend identified as
        "globally virtual" are executed exactly once per WA execution, even if
        invoked through instances of different subclasses

        """
        methods = {}
        called_globals = set()
        for vmname in mcs.virtual_methods:
            clsmethod = getattr(cls, vmname, None)
            if clsmethod:
                basemethods = [getattr(b, vmname) for b in bases if hasattr(b, vmname)]
                methods[vmname] = [bm for bm in basemethods if bm != clsmethod]
                methods[vmname].append(clsmethod)

                def generate_method_wrapper(vname):  # pylint: disable=unused-argument
                    # this creates a closure with the method name so that it
                    # does not need to be passed to the wrapper as an argument,
                    # leaving the wrapper to accept exactly the same set of
                    # arguments as the method it is wrapping.
                    name__ = vmname  # pylint: disable=cell-var-from-loop

                    def wrapper(self, *args, **kwargs):
                        for dm in methods[name__]:
                            if name__ in mcs.global_virtuals:
                                if dm not in called_globals:
                                    dm(self, *args, **kwargs)
                                    called_globals.add(dm)
                            else:
                                dm(self, *args, **kwargs)
                    return wrapper

                setattr(cls, vmname, generate_method_wrapper(vmname))

class Extension(object):
    """
    Base class for all WA extensions. An extension is basically a plug-in.
    It extends the functionality of WA in some way. Extensions are discovered
    and loaded dynamically by the extension loader upon invocation of WA scripts.
    Adding an extension is a matter of placing a class that implements an appropriate
    interface somewhere it would be discovered by the loader. That "somewhere" is
    typically one of the extension subdirectories under ``~/.workload_automation/``.

    """
    __metaclass__ = ExtensionMeta

    kind = None
    name = None
    parameters = [
        Parameter('modules', kind=list,
                  description="""
                  Lists the modules to be loaded by this extension. A module is a plug-in that
                  further extends functionality of an extension.
                  """),
    ]
    artifacts = []
    aliases = []
    core_modules = []

    @classmethod
    def get_default_config(cls):
        return {p.name: p.default for p in cls.parameters}

    @property
    def dependencies_directory(self):
        return _d(os.path.join(settings.dependencies_directory, self.name))

    @property
    def _classname(self):
        return self.__class__.__name__

    def __init__(self, **kwargs):
        self.__check_from_loader()
        self.logger = logging.getLogger(self._classname)
        self._modules = []
        self.capabilities = getattr(self.__class__, 'capabilities', [])
        for param in self.parameters:
            param.set_value(self, kwargs.get(param.name))
        for key in kwargs:
            if key not in self.parameters:
                message = 'Unexpected parameter "{}" for {}'
                raise ConfigError(message.format(key, self.name))

    def get_config(self):
        """
        Returns current configuration (i.e. parameter values) of this extension.

        """
        config = {}
        for param in self.parameters:
            config[param.name] = getattr(self, param.name, None)
        return config

    def validate(self):
        """
        Perform basic validation to ensure that this extension is capable of running.
        This is intended as an early check to ensure the extension has not been mis-configured,
        rather than a comprehensive check (that may, e.g., require access to the execution
        context).

        This method may also be used to enforce (i.e. set as well as check) inter-parameter
        constraints for the extension (e.g. if valid values for parameter A depend on the value
        of parameter B -- something that is not possible to enfroce using ``Parameter``\ 's
        ``constraint`` attribute.

        """
        if self.name is None:
            raise ValidationError('Name not set for {}'.format(self._classname))
        for param in self.parameters:
            param.validate(self)

    def initialize(self, context):
        pass

    def finalize(self, context):
        pass

    def check_artifacts(self, context, level):
        """
        Make sure that all mandatory artifacts have been generated.

        """
        for artifact in self.artifacts:
            if artifact.level != level or not artifact.mandatory:
                continue
            fullpath = os.path.join(context.output_directory, artifact.path)
            if not os.path.exists(fullpath):
                message = 'Mandatory "{}" has not been generated for {}.'
                raise ValidationError(message.format(artifact.path, self.name))

    def __getattr__(self, name):
        if name == '_modules':
            raise ValueError('_modules accessed too early!')
        for module in self._modules:
            if hasattr(module, name):
                return getattr(module, name)
        raise AttributeError(name)

    def load_modules(self, loader):
        """
        Load the modules specified by the "modules" Parameter using the provided loader. A loader
        can be any object that has an atribute called "get_module" that implements the following
        signature::

            get_module(name, owner, **kwargs)

        and returns an instance of :class:`wlauto.core.extension.Module`. If the module with the
        specified name is not found, the loader must raise an appropriate exception.

        """
        modules = list(reversed(self.core_modules)) + list(reversed(self.modules or []))
        if not modules:
            return
        for module_spec in modules:
            if not module_spec:
                continue
            module = self._load_module(loader, module_spec)
            self._install_module(module)

    def has(self, capability):
        """Check if this extension has the specified capability. The alternative method ``can`` is
        identical to this. Which to use is up to the caller depending on what makes semantic sense
        in the context of the capability, e.g. ``can('hard_reset')`` vs  ``has('active_cooling')``."""
        return capability in self.capabilities

    can = has

    def _load_module(self, loader, module_spec):
        if isinstance(module_spec, basestring):
            name = module_spec
            params = {}
        elif isinstance(module_spec, dict):
            if len(module_spec) != 1:
                message = 'Invalid module spec: {}; dict must have exctly one key -- the module name.'
                raise ValueError(message.format(module_spec))
            name, params = module_spec.items()[0]
        else:
            message = 'Invalid module spec: {}; must be a string or a one-key dict.'
            raise ValueError(message.format(module_spec))

        if not isinstance(params, dict):
            message = 'Invalid module spec: {}; dict value must also be a dict.'
            raise ValueError(message.format(module_spec))

        module = loader.get_module(name, owner=self, **params)
        module.initialize(None)
        return module

    def _install_module(self, module):
        for capability in module.capabilities:
            if capability not in self.capabilities:
                self.capabilities.append(capability)
        self._modules.append(module)

    def __check_from_loader(self):
        """
        There are a few things that need to happen in order to get a valide extension instance.
        Not all of them are currently done through standard Python initialisation mechanisms
        (specifically, the loading of modules and alias resolution). In order to avoid potential
        problems with not fully loaded extensions, make sure that an extension is *only* instantiated
        by the loader.

        """
        stack = inspect.stack()
        stack.pop(0)  # current frame
        frame = stack.pop(0)
        # skip throuth the init call chain
        while stack and frame[3] == '__init__':
            frame = stack.pop(0)
        if frame[3] != '_instantiate':
            message = 'Attempting to instantiate {} directly (must be done through an ExtensionLoader)'
            raise RuntimeError(message.format(self.__class__.__name__))

class Module(Extension):
    """
    This is a "plugin" for an extension this is intended to capture functionality that may be optional
    for an extension, and so may or may not be present in a particular setup; or, conversely, functionality
    that may be reusable between multiple devices, even if they are not with the same inheritance hierarchy.

    In other words, a Module is roughly equivalent to a kernel module and its primary purpose is to
    implement WA "drivers" for various peripherals that may or may not be present in a particular setup.

    .. note:: A mudule is itself an Extension and can therefore have it's own modules.

    """

    capabilities = []

    @property
    def root_owner(self):
        owner = self.owner
        while isinstance(owner, Module) and owner is not self:
            owner = owner.owner
        return owner

    def __init__(self, owner, **kwargs):
        super(Module, self).__init__(**kwargs)
        self.owner = owner
        while isinstance(owner, Module):
            if owner.name == self.name:
                raise ValueError('Circular module import for {}'.format(self.name))

    def initialize(self, context):
        pass

redpajama_set_name: RedPajamaGithub


RIGA - Phillip Morris Latvia tobacco product distributor was the largest tax payer in Latvia's trade sector also in 2017, according to the information of the Latvian State Revenue Service about the country's largest tax payers last year.
In 2017, Phillip Morris Latvia paid EUR 104.525 million in taxes. Baltic Sales Network with EUR 89.082 million was in the second place, just like in 2016, but Maxima Latvija retail chain with EUR 38.764 million paid in taxes in 2017 has climbed up a notch from 2016 to the third place in 2017.
Rimi Latvia retail chain has also moved up a place and was the fourth largest tax payer in the Latvian trade sector in 2017 with EUR 34.056 million, followed by Depo DIY with EUR 32.876 million and Greis Logistika with EUR 29.627 million.
The Top 10 of the largest tax payers in the Latvian trade sector in 2017 includes also Sanitex with EUR 18.982 million, Greis with EUR 17.49 million, SE Moller Baltic Import car dealer with EUR 17.041 million and Alfor gambling operator with 16.661 million.
In 2016, the largest tax payers in the Latvian trade sector were Phillip Morris Latvia, Baltic Sales Network and Greis Logistika.


text:
Ddandara · Entertainer
Entertainer (Ddandara) Ep 1 Review (and Ji Sung's BACK!)
April 20, 2016 April 27, 2016 nobodybutkyu
I was debating on recapping this because recapping a show can take some of the joy out of watching and experiencing a show and fulling immersing yourself in its world. I always find myself more focused on getting the right screencap, and getting irritated when VLC drags than being moved at Shijin and Moyeon's reunion in DOTS. It's why I'm not recapping the utterly phenomenal Pied Piper at the moment. However, I love, love, love Ji Sung though so I'll end up reviewing this show anyway. So I'm weighing on the first episode and I'll leave all thoughts of recapping for later because my favourite K-actor IS BACK IN FULL FORM!
Shin Suk Ho
It's of credit to Ji Sung that he manages to make someone who is a jerk on paper and in reality into a charming but awfully flawed person. I know this is going to be a story of redemption and growth for Suk Ho but I honestly winced at how cruel he could be, especially when he threw that songwriter's dreams in his face. His treatment of that girl-group member is just as bad, though a commonality in the idol world. But this first episode condenses two weeks in the life of Shin Suk Ho for us and makes very clear that everything this man does is for his group. Scandals? He pay the reporters and go after the other party, his own group member he lefts off. Album sales? He doesn't leave anything to chance and uses a sajaegi method that invades everyone's privacy (and likely their pocketbooks) to ensure that his group's song sells. It's a tragic and manic way to live, as evidenced in his not having contacted his parents for a whole month and his only concerns, even in jail, being for how the group is doing. It's not as if he sees the boys as money-makers, not purely anyway. As evidenced by his ominous dream, he sees them as family, and even children. Suk Ho's care of them comes first, beyond money. The second thing this episode makes clear is that Suk Ho's tired of having to grovel in front of everyone else. He wants his own form of autonomy in his own agency, where the boys and him can pursue what they wish.
These are his life goals; there's honestly nothing else that comprises his life. So, to lose two dreams at once is an utterly devastating blow and Ji Sung makes that very clear in his portrayal of Suk Ho's first reaction to the news. He flips out, then huddles inwards, them flips out, because the very fabric of his world is crumbling. And therein lies the problem, because he's only ever run forward focused on his goals, his boy-group, and himself. Now, he's finally forced to see how the other people he stepped on felt.
And that was easy for him to say them because he'd stepped all over his own pride for years, in order to do right by his group and work together to reach the top. As noted earlier, he does not seem to have enjoyed it. But he never paused to consider that others might not as well and now he's paying for it, and he has no one to blame but himself. And he thankfully sees it and doesn't utter a peep to the contrary. To his credit, he's not without empathy (as seen in how conflicted he looked during the songwriter's pleas), but like love (as he said to that girl-group member) he just has no use for it. If anything, it'll make him cave into doing things that won't benefit his group. He's incredibly dislikable in his selfishness but just as relatable in his single-minded pursuit of his goal of a happy future with Jackson, and his own agency. Him recalling how his team had been like family is an especially saddening moment, as his future self smiles knowingly and sadly at his past self.
You can't help but root for him even when you want to slap him. Though that might be because Ji Sung is just ajdfkadskl. The preview for the next episode shows him pursuing Kang Minhyuk's character Jo Haneul to make him release an album, but I wonder if it's so wise for Suk Ho to just jump ship from one band to another. He doesn't have anything to hold onto at the moment, but doesn't see that an an opportunity to re-evaluate his life, but to try and move forward with his dream anyway possible. I have a feeling he's in for some life-lessons but if they're as well depicted and well-acted as the one's in today's episode, we're in for a great ride.
Hyeri as Jung Geurin was so much better than I expected. She isn't perfect but her eyes speak well and she conveys her character's frustration, pain, solitude and unending hopefulness despite it all. But um…she can be a bit over the top, as demonstrated in the courtroom scene. Kang Minhyuk also makes a quick impression as the teen falsely-accused of sexual assault. It's clear that Ji Young's lying and the sooner it's proven the better. I'd rather not have this turn into Full House 2 where the up-and-coming star gets his supposedly sordid background dug up. Chae Jung Ahn is a breath of fresh as air as usual, moreso in this case because she doesn't appear to be harbouring hidden feelings for Suk Ho but has her own fight with regards to making music. Suk Ho's upcoming band will probably involve that indie group she's trying to push forward which makes his goal her goal, and I'd like to stay that way without any romantic entanglements. But I can't blame the writer if they exist, who wouldn't fall for Ji Sung?
Netizen reactions have been extremely cold because this sort of drama is not new by any stretch of the imagination (see My Lovely Girl) and ratings are apparently rock low what with the DOTS special airing in the same slot. It's a shame given what a talented actor's leading it but since when have Ji Sung's dramas ever fared well at the start? Secret started off with a measly 5% when Heirs was airing only to beat it out in terms of ratings. KMHM never crossed 13%. All that's necessary is for the scriptwriter to not decide to screw things over. This drama won't be brain-fodder but it can very easily be heart-fodder, and no form of entertainment is above the other regardless of whether it latches onto the former or the latter.
And with that, here's a Ji Sung pic spam consisting of screencaps from this episode. You're welcome.
Smiling Ji Sung
Shocked Ji Sung
Miscellaneous Ji Sung
Sad Ji Sung
Shin Suk Ho or Shin Se Gi?
Chae Jung Ahn Ddandara Hyeri Ji Sung Kang Minhyuk
Previous Post Descendants of the Sun Finale Ep 16 Recap (and happily ever after?)
Next Post Recapping Entertainer Ep 3 onwards! (because I love it)
3 thoughts on "Entertainer (Ddandara) Ep 1 Review (and Ji Sung's BACK!)"
antoniazc says:
Thank you so much for recapping this <3333
love the first epi, love your review and all your screen caps
how amazing ji sung can be… he moved me and had my heart in his hand from his acting…
can't wait for next episode
Monza says:
Thank you for your insight of this drama
As for the drama itself, it's okay, but it's growing on me. JS is awesome, as usual. I have no problem with HR's acting, it seems she's improving from her last drama
So happy to discover this site. hope you keep recapping 🙂


The note left on the health support worker's car windscreen.
A health support worker who was visiting a terminally ill patient at their home in Leamington during the 'Beast from the East' severe weather earlier this month received an angry note in her car windscreen for her troubles.
The support worker, who was giving palliative care to the patient had spoken to a man who lived at the address outside which she had parked to make sure it was OK.
It was the safest and closest place she could park in the area which was "like an Ice rink" at the time and she said it was not marked as being allocated to any property.
But when she colleague returned to her vehicle about 30 minutes later to find the angry note (pictured above) from his wife asking them to not park in the spot again.
The support worker, who wanted to remain anonymous, said: "I parked outside someone's house in order to be safe.
Last month, 26-year-old Kirsty Sharman of Stoke was fined £120 after she left an angry note on the window of an ambulance to complain about where it was parked while the crew were attending to a 999 call.


text:
In need of 'greasy type goals' Wings recall…
SportsNHLDetroit Red Wings
In need of 'greasy type goals' Wings recall Bertuzzi
Detroit Red Wings head coach Jeff Blashill, left, argues his point with linesman Ryan Galloway, right, during the first period of an NHL hockey game against the Edmonton Oilers in Detroit, Sunday, Nov. 6, 2016. (AP Photo/Jose Juarez)
By Chuck Pleiness |
PUBLISHED: November 7, 2016 at 3:49 p.m. | UPDATED: June 16, 2021 at 6:49 a.m.
DETROIT >> In need of finding more 'greasy type goals' the Detroit Red Wings called Tyler Bertuzzi up from Grand Rapids.
'That's something that again, when he's playing really well, and he's done this for me, he's done it for (Grand Rapids Griffins coach Todd Nelson), he finds a way to get stick on puck, create turnovers, finds a way to go hard to the net,' Wings coach Jeff Blashill said after practice Monday at Joe Louis Arena. 'Sometimes it doesn't look pretty but he's got that in him. We need more of that and we're hoping he can bring it to us (Tuesday) night.'
Bertuzzi, 21, will make his NHL debut when the Wings play at Philadelphia
Detroit is winless (0-4-1) in its last five games and has scored just nine goals during this stretch.
'I think when Tyler is playing his best he's on the puck a lot, he's got a good reach, stick on puck, so he creates turnovers, he finds a way to the hard areas of the ice,' Blashill said. 'He can shoot the puck from in tight areas, finds a way to score from those areas and gets to those areas.'
Bertuzzi, 21, has two goals and two assists in nine games with the Griffins.
He got the nod over Anthony Mantha, who leads Grand Rapids with seven goals.
'I've had conversations with everyone involved that's watched both, that's watched the team, they're both playing excellent, both playing really good hockey,' Blashill said when asked why Bertuzzi and not Mantha. 'We think they're both real good prospects, so as we talked about it, we discussed it (Sunday) night and we just decided at this time we're going to go with Bert. But they're both in my mind doing what they need to do to make sure they're ready for their opportunities.'
To make room the Wings placed forward Thomas Vanek (bruised hip) on long-term injured reserve, retroactive to Oct. 25. The earliest he is eligible to return is Nov. 18 in Washington.
'I just want to bring energy,' Bertuzzi said. 'Play my game. Keep doing what I do, just bring energy. Block shots. Play good defensively and just take my chances when I get them.'
Bertuzzi has shined in the last two playoff runs with the Griffins, totaling 14 goals and six assists in 23 games.
'I just thought as a team, the one thing we talked about is we need to do a better job of getting to the net front, need to do a better job of shooting the puck and I think he does those two things,' Blashill said.
Bertuzzi, who said his mom, dad and younger brother will be in Philadelphia to witness his debut, was taken 58th overall in the 2013 draft.
'He's definitely a gritty player with a lot of skill,' said Andreas Athanasiou, who played on a line with him last season in Grand Rapids. 'He's a good player all around. He'll go in the corners and muck it up. He's got that touch around the net as well.
'He's not afraid to mix it up,' Athanasiou added. 'I think we've had with me and him a couple line brawls in Traverse City. He's fun to play with too.'
Chuck Pleiness


text:
> Opinion
> Viewpoint
The early years has more to do to embrace diversity
03 April 2016 by Laura Henry
Is the early years sector really diverse? Laura Henry is not so sure.
Laura Henry
The recent debate on the lack of diversity in nominations at the Oscars, Baftas and recently the Brit Awards has made me reflect on the role of diversity within early years and education as a whole.
Is the early years sector diverse? I would say no and we could do more.
We do indeed need to explore further what we mean by diversity and, contrary to belief, it's not only linked to race – we must also include disability, sexuality, age, colour, creed, marital status, ethnic or national origin, political belief, class, gender and religion.
The question is, how do we embrace diversity within the early years? There already exists specific employment and equality legislation that ensures individuals are not discriminated against.
Over recent years, colleagues such as David Wright, June O'Sullivan et al have raised awareness of the importance of men in childcare. However, this is not enough and more needs to be done as a sector, exploring diversity on many levels.
For instance, is there a balance across managers, senior staff, directors, CEOs? Turning our attention to 'expert groups', such as panels, board members, trustees, speakers, members and advisors, do these encourage diversity or do we always go with the safe option of the 'usual suspects' without looking to include a wider range of individuals? For instance, working parties should have a diverse range of members – a range of voices makes a great difference, adding unique personal and professional experiences to discussion that can potentially influence change.
For decades, Jane Lane has worked passionately and tirelessly on the issue of race and equality within early years. However, the sad fact is that there is still not a level playing field within the sector.
I believe that as a sector, at times we don't feel comfortable discussing diversity issues for fear of 'getting it wrong' or 'offending'. We are comfortable discussing other important early years issues, but not diversity. Only when we start having transparent and frank discussions will we be able to make positive changes.
We should also look at diversity within pedagogy practice and, yes, many settings do indeed have a range of equipment and resources that promote diversity. However, at times this can be tokenistic. Likewise, the current focus on promoting British values can be perceived only on a superficial level; for instance, only displaying a poster. I remember years ago the story of providers sharing their diversity equipment if they knew they were going to be inspected! The famous and thought-provoking 'doll test', which showed how young children from different races perceived themselves and others, is indeed alarming and prompts the question as to whether it is less about having a diverse range of equipment and resources and more about educators' attitudes and beliefs when embracing and discussing important inclusion and diversity issues with young children.
Indeed, many commercial companies are embracing diversity and have diversity and inclusion high on their agenda. One such company, Ernst & Young (EY), has a specific position on diversity within its organisation, and states clearly on its website:
'At EY, we believe only the highest-performing teams, which maximise the power of different opinions, perspectives and cultural references… Our focus on diversity and inclusiveness is integral to how we serve our clients, develop our people and play a leadership role in our communities.'
In her 2012 review, Professor Cathy Nutbrown articulated on progression for all, in relation to black and minority ethnic (BME) groups, calling for: 'Viable progression routes for all members of the workforce with the drive and skills to succeed.' She also gave a frank recommendation within her review: 'The Department for Education should conduct research on the number of BME staff at different qualification levels, and engage with the sector to address any issues identified.'
To my knowledge, the DfE has not conducted research that links to this recommendation. I would urge the department to carry out this research to help the sector to honestly reflect on where we are with diversity and inclusion, from pedagogy practice to all levels of leadership.
Laura Henry Consultancy
www.laurahenryconsultancy.com


Remember some of the ways our parents punished us for our misbehavior when we were children? You had to go to bed early. You were grounded and couldn't leave the house. You couldn't go to that party.
Go to bed early. Don't leave the house. Don't go to the party. I just realized that my childhood punishments have become my goals as an adult!
It is interesting to take note of how our priorities change as we grow up. Things that we thought were so important seem trivial now. Our goals have changed drastically. Our desires are much different than what they once were. It's all part of the maturing process.
"When I was a child, I talked like a child, I thought like a child, I reasoned like a child. When I became a man, I put the ways of childhood behind me."—1 Corinthians 13:11.
This entry was posted in Christian Living, Communion Meditations, Humor, Leadership and tagged 1 Corinthians 13, changing priorities, growing up, maturing, punishing a child, when I was a child. Bookmark the permalink.


The importance of waking up early from time to time.
Ernest Supplies is skincare designed to advance skin health by focusing on two key factors – clean, quality ingredients and ease of use.
Our proprietary formulations rely on carefully sourced plant-based ingredients and meticulous use of lab-driven science to enhance and protect their efficacy. But we also realize that our mission of quality is meaningless without simplicity and ease of use. This is why we offer creative, yet technical packaging that is made to work seamlessly in an active, modern lifestyle where travel, time and climate work against the health of our skin.
At Ernest Supplies, we remain dedicated to maintaining our independent and inclusive spirit as we make choices that are both good for your skin and better for the environment.
Be in the know and join us!


Basic set with 6 pieces, contains the most important tying tools.
Same as Set 1 plus #70 Large Scissors (7 pieces total) - ideal for cutting long straight edges; perfect for use with Magic Tool.
Same as Set 2 plus #25 TT Bobbin (8 pieces total) - contains everything the fly tyer needs.