text:
Category: YA
BOOK REVIEW: HEART OF A WARRIOR
Published on August 30, 2019 by EllenReadAuthorLeave a comment
Heart of a Warrior by Denna Holm
Heart of a Warrior is the fourth book by Denna Holm in her Immortal Warriors series.
Each book is definitely a standalone. I haven't read the first three books and I followed this story without any difficulty.
The story, along with the engaging and well-drawn characters, drew me into its pages from the very first start.
In the beginning, we meet Elena Murphy as she prepares her ranch for an approaching storm, but not all of her chills are because of the thunder on the horizon. She thinks of Gabriel, the dark-haired, ancient vampire who often visits Earth from his home planet of Laizahlia. Elena can sense he's close. Would he show himself to her? He watches over her and protects her, but from a distance.
Elena is expecting visitors – Cami Benton is sixteen and her brother Ryan, who is eight. They're going to spend the weekend with her. She has a strong connection to the children, partly because their own home life is stressful, with their parents' divorce. Only when their father Martin, who has driven them to Elena's home, makes unwanted advances to Elena, does Gabriel appear, a tall, daunting figure, in his black leather of a Laizhalian Hunter.
Once Martin has run away, Gabriel helps Elena get her horses in before the storm hits. Once it hits, the storm brings more than thunder and lightning.
I don't want to write any spoilers, so let me say from here on is a desperate and urgent journey across the universes, to strange planets with wonderful live forms, some more weird and dangerous than others. We also meet werewolves and shape-shifters.
Denna Holm has imagined these worlds and their inhabitants so fully that I slipped into them as if I were really there.
I also loved the romance and UST (unresolved sexual tension) between Elena and Gabriel.
I highly recommend this book to young adult (the older side of young adult as there are some detailed sexual scenes) and adult readers who love sci-fi, fantasy, vampires and a great love story. There's plenty of action and excitement to please everyone.
I'll certainly be going back to read the first three books.
A 5-star read.
Categories adult fiction, authorsofinstagram, books, Bookworms, Fantasy, Review, science fiction, Uncategorized, Vampire, YA•Tags adult, book, crimson cloak publishing, Fantasy, Review, science fiction, series, young adult
The Light Over Broken Tide by Holly Ducarte
Published on March 19, 2018 by EllenReadAuthorLeave a comment
REVIEW TIME: by Ellen Read
Young love, an Irish legend, a hidden lighthouse and Peter Pan – I was hooked before I started reading.
This is also a story of mental illness, an otherworldly encounter, loss and grief. Holly Ducarte handles these difficult themes with great sensitivity.
'We're all like paper dolls. Happiest when linked to another, often unaware of our flimsiness. So easily torn. What happens when we reach out to find there's no one there to hold our hand?'
These are the opening lines of the story.
Becky is torn and is reaching out for a hand to hold. She finds it in Shawn, the boy-next-door, who believes magic does exist.
In the beginning, I had mixed feelings about Rebecca because she is rebellious and so difficult to get along with, but I sensed her vulnerability. She is a teenager, she's lost her mother, doesn't know her father well, and is then whisked away to a new house in a new coastal town in Nova Scotia. I soon felt empathy for her. This is really a testament to Ducarte's writing that she portrayed Becky so well.
Becky's relationship with her father, Andy, is an important thread in the story and I was pleased with how it developed. In the beginning, I wasn't certain if I'd like Andy but my respect and liking for him grew.
I loved the references to Peter Pan and, in the magical dreamlike scenes, I felt myself fly away with them on their adventure. Shawn becomes Becky's Peter Pan. This gives her a lifeline but forces beyond her control send Rebecca spiralling into dark places. When she emerges, she wonders what was real.
This book moved me so deeply.
I highly recommended this YA read. It's excellent, something very different.
Well done, Holly Ducarte, on your debut novel.
Categories Canadian Author, female author, Review, YA•Tags book, lighthouse, nova scotia, novel, Review, young adult
Merry Christmas and Season's Greetings to Everyone
Published on December 24, 2017 by EllenReadAuthorLeave a comment
You may wonder why I have a wombat in my photo. This is Waddles. I bought him in Daylesford when I was researching my next book. So what does a wombat have to do with a cozy murder mystery?
My next book, the second in The Thornton Mysteries is set in Daylesford, Victoria, Australia, where the Thorntons have a holiday home. It isn't as grand as Thornton Park but it's a large house set into the side of Wombat Hill. There's the clue. Daylesford, in its gold mining days, was called Wombat.
I first went to Daylesford about ten years ago. It's set in the Macedon Ranges and is a favourite spa town. The area is known for its mineral springs. Mt Franklin, which most Australians know of, is about a twenty minute drive away.
The Thornton's home is Wombat Hill Manor, and just as I did with Thornton Park, I based Wombat Hill Manor on a real building. It was initially built as a private residence and later sold to the Catholic Church as a Convent.
It's now The Convent Gallery, beautifully restored as an art gallery and restaurant/cafe. If you go to Daylesford, I recommend going there. It's about a one hour drive from Melbourne and worth the trip.
I've been to Daylesford twice this year, the first time to do research for my book. The second time was after I finished my first draft and I wanted to check on some details.
This year has been a busy one. The two trips to Daylesford. A trip to Adelaide and the Barossa Valley, which besides being a wonderful holiday, was also research for book three. For those who don't know, the Barossa Valley in South Australia is famous for it's wineries. I'll be starting book 3 early in the new year. You'll remember from reading The Dragon Sleeps that Benedict's family own a vineyard in South Australia. There's a hint about book three.
I've not long returned from a trip to Hawaii. It was another fabulous holiday with my family. I thought I can't go to such a location and not write a book set there. I didn't have any ideas for a story when I arrived but I had the start of Book 4 before I left. My dilemma was why would the Thorntons want to go to Hawaii. Book two is set in 1928. Book three in 1928 also. So why in 1929 would they want to travel so far? The reason came to me. I was so pleased! Originally, I intended writing three books but now book four is on the schedule.
I hope you have a wonderful Christmas with your family and friends and I wish you a Happy New Year.
Categories 1920s Fashion, adult fiction, australian author, authorsofinstagram, Bookworms, Clean Romance, cosy mystery, Daylesford, Ellen Read, female author, Historical, indie author, murder, mystery, YA•Tags 1920s, All ages, book, Daylesford, Historical, murder, mystery, novel, secrets, young adult
REVIEW: Eléonore by Faith Rivens.
Published on November 1, 2017 by EllenReadAuthorLeave a comment
This if Faith Rivens debut novella and it certainly delivers. From the very beginning the story grabbed me and didn't let go. I haven't read an Urban Fantasy at all. For my first to find the protagonist is a demon hunter and a librarian and a mother is very appealing. I particularly love the relationship between Eléonore and her son. It's very touching and real. Rivens portrays a mother's love so heart-warmingly. Raphael is another engaging character and the dynamics between him and Eléonore are exciting and foreshadow more to be told.
It is well-written, with a snappy pace and has a great structure to the story. I liked the small diary entries at the beginning of each chapter that help the reader understand the demon hierarchy.
I highly recommend this book. You really can't go wrong.
Categories Bookworms, indie author, Urban Fantasy, YA•Tags book, Review, young adult
REVIEW: Wardens of Archos
Published on October 19, 2017 by EllenReadAuthorLeave a comment
Wardens of Archos is the second book in Sarina Langer's Relics of Ar'Zac fantasy series.
I was so pleased to be back in Rifarne with Rachael and her colleagues. It was great to pick up the story from where it finished in the first book. New characters were introduced and joined Rachael on her journey to new lands in an attempt to find the answers to what is hidden beneath the ancient Krymistian ruins of Archos.
The story moves at a good pace and always left me wanting to turn the page. Sarina Langer's world building is excellent, with plenty of description but nothing to slow the pace down. The new worlds came to life.
I loved the dynamic between Rachael and Cale. Their story develops further.
Thank you to the author for providing a free ARC in exchange for an honest review.
If you enjoy fantasy, you'll love this book.
Categories Bookworms, Fantasy, female author, indie author, Review, Sarina Langer, YA•Tags book, Fantasy, novel, Review, young adult
AGE OF THE ASHERS by DIANA TYLER and KINDLE SCOUT
Published on May 1, 2017 by EllenReadAuthorLeave a comment
One week ago I hadn't heard of Kindle Scout. As an author, that is probably remiss of me. When my friend and fellow author Diana Tyler said she had submitted a book to Kindle Scout, I had to find out more about it.
What was even more important, I wanted to vote for Diana's book.
If you follow the link, you can nominate Diana Tyler's book too. There's an excerpt for you to read. Believe me, you'll love it.
https://kindlescout.amazon.com/p/ZJOJPC213UVS
Age of the Ashers (The Petros Chronicles Book 1) By DIANA TYLER
What if all the ancient myths are true?
Eighteen-year-old Chloe Zacharias is perfectly content being an outsider. But an ancient prophecy has different plans, plans to catapult her into the middle of an ages-old war between beings she only thought were mythical. Filled with magic, mystery, and sprinklings of Greek mythology, Age of the Ashers is a powerful fantasy adventure for those who love to lose themselves in the world of make-believe.
There is one month, or 27 days left now, for you to nominate Age of the Ashers.
When the 30-day campaign ends, nominations are tallied and Diana will receive word if her book is to be published.
There something for you for nominating.
As a thank you from Kindle Scout and Diana Tyler, you will receive a free copy of Age of the Ashers.
Even if Kindle Scout don't pick up the book, Diana will send you a free copy to thank you for supporting her.
Diana has been writing all her life, starting with her own versions of Teenage Mutant Ninja Turtle comics when she was four. She's always been fascinated with Greek mythology and comic book superheroes, all of which inspire her fantasy novels. She's also a gym rat who loves to pretend she's Wonder Woman while lifting heavy weights and swinging from rings and pull-up bars. She co-owns CrossFit 925 in San Antonio, Texas with her husband Ben.
Co-owner of CrossFit 925 (www.crossfit925.com)
Contributing Writer to http://www.movieguide.org/
Contributing Writer to http://www.charismamag.com/
http://dianaandersontyler.com/
http://dianadeadlifts.com/
Facebook.com/dianafit4faith
Twitter @dandersontyler
Instagram @dianaandersontyler & @authordianatyler
Pinterest @dandersontyler
Categories Diana Tyler, Fantasy, female author, Greek & Roman, Myths & Legends, science fiction, Teen, USA Author, YA•Tags book, Fantasy, Kindle Scout, science fiction, Teen, young adult
INTERVIEW WITH DIANA ANDERSON-TYLER – Armor For Orchids
I am delighted to welcome Diana Anderson-Tyler to my blog.
Today we're discussing her book Armor For Orchids.
Diana is an author from Texas, USA.
Welcome Diana…
ER You recently published a new women's contemporary novel, Armor for Orchids. It follows the life of three young women in a small town. Please tell us something about the book?
DAT Armor for Orchids is a faith-based story told from four perspectives. At the heart of the story is a spunky, sage-like old woman named Poppy McAdams who takes the young women (her "Orchids") under her wing to teach them invaluable life lessons. Each of the Orchids is in the midst of a tremendously trying time and learns that their chances of overcoming and winning life's battles are infinitely greater when fought with spiritual weapons.
ER What inspired you to write Amor For Orchids?
DAT I've written a bit about my personal struggles in my nonfiction books but felt a strong desire to explore them through fiction. Each of the Orchids in the novel were inspired by pieces of my past, such as Marissa's struggle with depression, Charlotte's disillusionment, and Elise's grief over her father's sudden death.
ER Was it important to you that the story should carry a message of hope, inspiration and life-changing belief?
DAT I wanted the story to do more than entertain. I wanted women to feel like they were Poppy's Orchids, too, and that they also could be strengthened by her insight and inspired by her story. It's my hope that readers will walk away feeling uplifted and optimistic about their futures.
ER Do you have a favourite character in this book? Why?
DAT This is so tough! I think I would have to go with Poppy, though. She's got a heart of gold but she's no meek little church mouse. She's strong in the ways that truly matter. It was very fun to write Poppy too, as she's the one with whom I have the least in common, so it was quite a challenge to capture her voice and make her seem real… I hope I succeeded!
ER You've written other books. Do you prefer YA or do you equally like writing in other genres? What are they?
DAT I've written nonfiction books, but I definitely love writing fiction most! As far as fiction genres go, I've only written in YA Fantasy and Christian Women's Contemporary, and must say I enjoy them equally! I love switching back and forth between the two as it prevents me from feeling burned out, and each one presents unique challenges to me that help me grow as a storyteller.
ER Where do you get your ideas?
Various places. My own life, as with Armor for Orchids, as well as simply playing the "What-If Game" with myself in which I explore intriguing premises and keep asking questions until I land on a plot and/or characters that hold my attention for longer than an afternoon.
Word to the wise: always carry a notebook or electronic device with you for recording sudden bursts of inspiration!
ER When did you first start writing?
DAT I started writing when I was four or five, pretty much as soon as I was old enough to hold a crayon! I have bins full of my early attempts at storytelling. They're so fun to look back on and try to make sense of!
ER What are you working on now?
DAT I'm working on editing my YA Fantasy trilogy, The Petros Chronicles. The first book, Age of the Ashers, will be out later this year. I also recently started the first draft of book 2 in the Armor for Orchids series.
ER Who are you favourite authors?
DAT I have so many, but here are a few: Steven Pressfield (both his fiction and non-fiction works are incredible), Margaret George, Fannie Flagg, Barbara Kingsolver, and F. Scott Fitzgerald.
ER Do you have any advice for new writers? Are there any pitfalls they should look out for?
DAT I've said this in other interviews, but I can't emphasize it enough: Never give up!
This career path is not for the faint of heart. Like a freshman college class, it will try to "weed you out." The strong will survive if they persevere and keep showing up every day to do the work, despite how they feel. (Discipline is stronger than motivation.)
Expect to be tried and tested. Expect to fail and be frustrated. Expect to be rejected by agents, criticized by readers, and questioned by friends. But always remember your "why" for writing and hold that close to your heart. Doing so will ensure you don't let the bad times conquer you.
ER What do you do when you're not writing?
DAT I love to read, play board games, spend time outdoors, and lift weights!
Thank you for joining me today, Diana. It's been such a pleasure. I wish you great success for this and your future books.
Diana currently writes entertainment and media-related articles for movieguide.org and contributes regularly to charismamag.com. When she isn't writing or working out, she can be found playing Scrabble with her husband, watching Marvel and Pixar movies, and pinning recipes on Pinterest that she never gets around to cooking.
You can find Diana on her websites dianaandersontyler.com and dianadeadlifts.com, as well as on facebook.com/dianafit4faith, Twitter @dandersontyler, and on Instagram @dianaandersontyler and @authordianatyler.
Categories female author, Interview, USA Author, YA•Tags book, Interview, novel, young adult
INTERVIEW WITH KRYSTEN LINDSAY HAGAR – Dating the It Guy
Published on March 24, 2017 by EllenReadAuthor2 Comments
I am delighted to welcome Krysten Lindsay Hagar to my blog today to discuss her new book Dating the It Guy
Welcome Krysten…
ER Congratulations, Krysten on the publication of your new YA contemporary romance, Dating the It Guy. Please tell us a little about it.
KLH Thanks! The book is about a high school girl named Emme who winds up dating the son of a well-known senator. She goes through a lot of self-doubt as she watches his perfect ex-girlfriend trying to get him back and not feeling good enough for his new crowd. It's a book about love, family, and learning to be yourself.
ER What inspired you to write this story? What was your first idea?
KLH I was watching a biography of John F. Kennedy Jr. and wondering what it'd be like to date someone like that back when he was in high school. I started thinking about all the pressures you'd face being in that world. I started reading a ton of books and info on both JFK Jr. and Carolyn Bessette Kennedy. Brendon and Emme aren't based on John and Carolyn, but their love story did inspire me.
ER I would guess Emme would feel out of her comfort zone in Brendon's world. How does she adapt?
KLH Emme begins to feel out of place and often feels invisible by other girls who try to talk to Brendon when she's standing right there! There's a scene where she's invited to a party at the senator's home and you see her trying to navigate these very unfamiliar waters. She feels out of place at the party and the finds out Senator Agretti appreciates how she helps out a caterer at the event when everyone else there ignored the girl. We also see how Brendon appreciates what makes her different from his world and how he likes her for those things like her being authentic and real.
ER When Brendon's picture perfect ex, Lauren, gets into his father, Senator Agretti's old school, does Emme feel threatened? Does she doubt Brendon and think this has all been planned?
KLH Emme constantly feels threatened by Lauren especially since Lauren pounces and asks Brendon to homecoming the second he and Emme split up. So when Emme gets the news about Lauren getting into the college Brendon planned to attend (like his dad), her heart sinks. If she were to look deeper into what Brendon had shared with her about the future, she'd see what his future plans were.
ER Emme's last boyfriend cheated on her. It must have left her with trust issues. Does this colour all of Emme's way of thinking?
KLH Emme is dealing with a lot of mistrust and hurt after her last boyfriend's betrayal. Her ex, Jon, had been talking to his ex while he was dating Emme and it has left her self-esteem damaged. She's constantly worrying about being cheated on again with Brendon. Her friends also see how this has impacted her and they try to offer their support.
ER You deal with other issues as well, such as the illness of Emme's grandparents. How does Emme deal with something like dementia?
KLH Emme is very close to her grandparents and when her grandma gets sick, they become aware of things changing with her grandpa, too. Her grandpa moves in with them and Emme helps care for him. It's hard for her to watch him become so vulnerable, but she really steps up to be protective of him and help him in this new phase of his life.
ER This is a YA contemporary romance. The story deals with intricate relationships and very real characters. Do you think all age groups will enjoy your story?
KLH I've gotten some great feedback from both teens and adults and I love that people enjoy the story for different reasons. Some see themselves in Emme and realize some of her insecurity issues are things they see in themselves. I had a male beta reader who told me he got swept up in the story and he enjoyed seeing Emme's side of things with her relationship with both Darren and Brendon. Some see themselves in Brendon and how he often has to sacrifice what he wants to do for his family. So I think it's a story that all age groups can find something in.
Thank you so much for joining me today, Krysten. It's been an absolute chatting with you. All the best with the book. It sounds fabulous to me.
Besides mining her teen years and humiliating moments for her novels, Krysten is also a book addict who has never met a bookstore she didn't like. She's worked as a journalist and writes young adult, middle grade, new adult, and adult fiction as well as humor essays. She is originally from Michigan and has lived in Portugal, South Dakota, and currently resides in southwestern Ohio where you can find her reading and writing when she's not catching up on her favorite shows (she's addicted to American Dad to the point where she quotes episodes on a daily basis and also loves Girl Meets World). She's also a third generation Detroit Lions fan.
Krysten writes about friendship, self-esteem, fitting in, frenemies, crushes, fame, first loves, and values. She is the author of True Colors, Best Friends…Forever?, Next Door to a Star, Landry in Like, and Competing with the Star (The Star Series: Book 2). Her debut novel, True Colors, won the Readers Favorite award for best preteen book. Krysten's work has been featured in USA Today, The Flint Journal, the Grand Haven Tribune, the Beavercreek Current, the Bellbrook Times and on Living Dayton.
Praise for Dating the It Guy:
"A sweet, endearing story—you'll fall in love with Emme just like I did!" –Kimber Leigh Wheaton, YA/NA author
"Hager's authentic characters will resonate with readers of all ages as they are immersed in the story – complete with teen drama and angst, but also the relationships which make it all worthwhile." — Leslie L. McKee, book reviewer, Edits and Reviews by Leslie
Amazon paperback: http://a.co/hBydoYm
Amazon: http://amzn.to/2n2hHmB
and Noble: http://bit.ly/2m5y9OC
itunes: https://itunes.apple.com/us/book/dating-the-it-guy/id1208876011?mt=11
Kobo: https://www.kobo.com/us/en/ebook/dating-the-it-guy
Smashwords: www.smashwords.com/books/search?query=Dating+the+It+Guy
Follow Krysten
Website: http://www.krystenlindsay.com/
Instagram: https://www.instagram.com/krystenlindsay/
Facebook: https://www.facebook.com/KrystenLindsayHagerAuthor
Pinterest: http://www.pinterest.com/krystenlindsay/
Twitter: https://twitter.com/KrystenLindsay
YouTube: https://www.youtube.com/channel/UClIQCsRcKc97-25oXvabZ8A
Categories female author, Interview, Krysten Lindsay Hagar, USA Author, YA•Tags book, Interview, novel, young adult
INTERVIEW WITH NADIA L KING
Published on March 3, 2017 by EllenReadAuthor1 Comment
I am delighted to welcome Nadia L King to my blog today.
Nadia is an author from Perth, Australia. Today we're discussing her foray into the world of bullying.
Welcome Nadia…
ER Your debut book, Jenna's Truth, has been very successful. What was your inspiration for it?
NLK About this time last year, I came across a video on Youtube which literally broke my heart. It was a video posted by a fifteen-year-old girl sharing her story of being bullied. The girl was Amanda Todd and her life ended in suicide. I couldn't not respond to the death of this bright and lively girl. I had to do something and so I tried to make sense of this tragedy by writing a story which of course, was the birth of Jenna's Truth.
ER Bullying is something that is age-old. Do you think it's worse now with Internet and social media?
NLK I believe that cyberbullying is far more insidious than traditional bullying. Not only does it allow perpetrators a degree of anonymity but it also provides them with a far broader audience. Cyberbullies have the ability to ceaselessly torment their victims at any time of day or night. It is difficult to escape from cyberbullies. Amanda Todd moved house a number of times and the cyberbully tracked her down each time. Thankfully, here in Australia we have tough anti-cyberbullying legislation and we even have The Office of The Children's eSafety Commissioner. https://esafety.gov.au/cyberbullyingcomplaint
ER Has Jenna's Truth taken you to places you never imagined going, both emotionally and physically into places such as schools?
NLK Jenna's Truth seems to have taken on a life of its own. Elizabeth Gilbert talks about stories having lives of their own in Big Magic and it certainly rings true for Jenna's Truth. The story is being taught in a number of schools in a couple of countries and it looks as if it will soon be adapted for the stage. It will be more than thrilling to watch Jenna's Truth on stage. I'm quite flabbergasted when I think how far this short (only 6,000 word) story has gone. It has also meant that I have had to overcome my fear of public speaking.
ER What aspirations do you have for Jenna's Truth?
NLK Ultimately, I want to see Jenna's Truth be included in the curriculum in my home State of Western Australia. I am keen for dialogue to occur in the classroom and for teens to know there is always a way out. I can't bear to think there are kids out there who aren't having this conversation; that there are kids out there who are suiciding because they have been cyber-bullied.
ER Is there anything you'd like to say to anyone who finds themselves a victim of bullying?
NLK Don't let them win. You are precious and special and we need you in the world. You are not alone and somebody wants to help you. Please call the Kids Helpline 1800 55 1800.
NLK I'm really excited to be starting a brand new project. My first full-length novel (I'll try to get past 6,000 words this time :)), I'm still in the research phase but I plan to write a YA novel where the main protagonist is a 16-year-old male struggling with his sexuality. I'll keep you posted on my progress!
Thank you so much for joining me today, Nadia. I wish you continuing success with Jenna's Truth and good luck with your new work.
Australian author, Nadia L King, was born in Dublin, Ireland. She has a background in journalism and media relations, and has written for magazines in Europe, Australia, and the US. She reads voraciously and enthusiastically, and inhales books the same way her Labrador inhales her dog biscuits. Nadia is an overexcited person who adores words, loves writing short stories and keeps a blog at nadialking.wordpress.com. Her writing has been described as "raw, real and heart-wrenching." Her first book, Jenna's Truth, is published by Aulexic and is a powerful tool to arm teens against bullying. Nadia lives near the Swan River in Western Australia.
Connect with Nadia:
https://nadialking.wordpress.com
https://www.instagram.com/nadialking/
https://www.facebook.com/AuthorNadiaLKing/
https://twitter.com/NLKingauthor
https://www.aulexic.com.au/product/jennas-truth/
You can buy Jenna's Truth https://www.aulexic.com.au/product/jennas-truth/
Categories australian author, female author, Nadia L King, Pre-teens, Short Story, YA•Tags female author, Interview, Jenna's Truth, Short Story, young adult


text:
Published on August 26th, 2020 | by gareth
Cobra Kai: The Karate Kid Saga Continues Reveal Trailer
With the first two seasons coming to Netflix this is great timing.
Embrace your destiny in this new co-op beat 'em up, inspired by the rivalry & action of the hit Netflix series
MINNEAPOLIS – Aug. 26, 2020 – Cobra Kai: The Karate Kid Saga Continues, a new, side-scrolling, beat 'em up action game inspired by Sony's critically acclaimed series, coming to Netflix later this year, has been announced for PlayStation®4, Nintendo Switch and Xbox One. Launching Oct. 27, 2020, Cobra Kai: The Karate Kid Saga Continues features RPG-like progression, the opportunity to play as your favorite characters from the world of Cobra Kai, and two-player couch co-op.
Cobra Kai: The Karate Kid Saga Continues delivers an original two-fold story from dueling perspectives made in collaboration with the series showrunners, complete with character-driven cutscenes and dialogue featuring the voices of Ralph Macchio, William Zabka and more. Play as Daniel LaRusso and his students at Miyagi-Do Karate, or their Cobra Kai rivals, led by Daniel's old rival, Johnny Lawrence. The choice is yours, but only completing both sides of the campaign will unlock the ultimate ending.
Swap between eight playable characters seamlessly in battle, each with their own unique upgradeable attacks, combos and skill trees. Face down fierce enemies and bosses in hard-hitting brawls and explore the Los Angeles of the Cobra Kai universe across 28 story missions. The fight is in your hands!
Cobra Kai: The Karate Kid Saga Continues is published by GameMill Entertainment. For more information, visit playcobrakai.com.
World Of Warships Adds Lunar New Year Update →
Rainbow Six Siege Reveals The Road To S.I. →
The Crew 2 Reveals The Hunt Launch Trailer →
Monster Jam Steel Titans 2 →

redpajama_set_name: RedPajamaCommonCrawl


Middlesbrough Announce Brad Guzan Signing- United States goalkeeper Brad Guzan has completed a move to Middlesbrough from recently relegated Aston Villa.
31-year old Guzan joined newly-promoted Boro following Villa's relegation, signing a 2-year deal. Guzan joins former Barcelona and Manchester United goalkeeper Victor Valdes and Dimitrios Konstantopoulos as Middlesbrough's goalkeeping options as they hope to survive relegation.
According to ESPN FC, Guzan is expected to serve as back up for Valdes, who is expected to be handed the first team shirt.
Guzan had made 171 appearances in goal for Villa after joining the club from now defunct MLS side Chivas USA in 2014.


Standard stands are black to highlight the flutes. They can also be requested in blond, walnut, or cherry colors. If another color than black is desired, please make note of this when ordering.
All stands are made to easily come apart and assemble for travel. An excellent tool for holding flutes while at home, flute circle, or on stage.
Constructed with 1/4 inch Baltic Birch high density ply.


text:
package link.fls.swipestack;

import android.content.Context;
import android.content.res.TypedArray;
import android.database.DataSetObserver;
import android.os.Build;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Adapter;
import android.widget.FrameLayout;

import java.util.Random;

public class SwipeStack extends ViewGroup {

    public static final int SWIPE_DIRECTION_BOTH = 0;
    public static final int SWIPE_DIRECTION_ONLY_LEFT = 1;
    public static final int SWIPE_DIRECTION_ONLY_RIGHT = 2;

    public static final int DEFAULT_ANIMATION_DURATION = 300;
    public static final int DEFAULT_STACK_SIZE = 3;
    public static final int DEFAULT_STACK_ROTATION = 8;
    public static final float DEFAULT_SWIPE_ROTATION = 30f;
    public static final float DEFAULT_SWIPE_OPACITY = 1f;
    public static final float DEFAULT_SCALE_FACTOR = 1f;
    public static final boolean DEFAULT_DISABLE_HW_ACCELERATION = true;

    private static final String KEY_SUPER_STATE = "superState";
    private static final String KEY_CURRENT_INDEX = "currentIndex";

    private Adapter mAdapter;
    private Random mRandom;

    private int mAllowedSwipeDirections;
    private int mAnimationDuration;
    private int mCurrentViewIndex;
    private int mNumberOfStackedViews;
    private int mViewSpacing;
    private int mViewRotation;
    private float mSwipeRotation;
    private float mSwipeOpacity;
    private float mScaleFactor;
    private boolean mDisableHwAcceleration;
    private boolean mIsFirstLayout = true;

    private View mTopView;
    private SwipeHelper mSwipeHelper;
    private DataSetObserver mDataObserver;
    private SwipeStackListener mListener;
    private SwipeProgressListener mProgressListener;

    public SwipeStack(Context context) {
        this(context, null);
    }

    public SwipeStack(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public SwipeStack(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        readAttributes(attrs);
        initialize();
    }

    private void readAttributes(AttributeSet attributeSet) {
        TypedArray attrs = getContext().obtainStyledAttributes(attributeSet, R.styleable.SwipeStack);

        try {
            mAllowedSwipeDirections =
                    attrs.getInt(R.styleable.SwipeStack_allowed_swipe_directions,
                            SWIPE_DIRECTION_BOTH);
            mAnimationDuration =
                    attrs.getInt(R.styleable.SwipeStack_animation_duration,
                            DEFAULT_ANIMATION_DURATION);
            mNumberOfStackedViews =
                    attrs.getInt(R.styleable.SwipeStack_stack_size, DEFAULT_STACK_SIZE);
            mViewSpacing =
                    attrs.getDimensionPixelSize(R.styleable.SwipeStack_stack_spacing,
                            getResources().getDimensionPixelSize(R.dimen.default_stack_spacing));
            mViewRotation =
                    attrs.getInt(R.styleable.SwipeStack_stack_rotation, DEFAULT_STACK_ROTATION);
            mSwipeRotation =
                    attrs.getFloat(R.styleable.SwipeStack_swipe_rotation, DEFAULT_SWIPE_ROTATION);
            mSwipeOpacity =
                    attrs.getFloat(R.styleable.SwipeStack_swipe_opacity, DEFAULT_SWIPE_OPACITY);
            mScaleFactor =
                    attrs.getFloat(R.styleable.SwipeStack_scale_factor, DEFAULT_SCALE_FACTOR);
            mDisableHwAcceleration =
                    attrs.getBoolean(R.styleable.SwipeStack_disable_hw_acceleration,
                            DEFAULT_DISABLE_HW_ACCELERATION);
        } finally {
            attrs.recycle();
        }
    }

    private void initialize() {
        mRandom = new Random();

        setClipToPadding(false);
        setClipChildren(false);

        mSwipeHelper = new SwipeHelper(this);
        mSwipeHelper.setAnimationDuration(mAnimationDuration);
        mSwipeHelper.setRotation(mSwipeRotation);
        mSwipeHelper.setOpacityEnd(mSwipeOpacity);

        mDataObserver = new DataSetObserver() {
            @Override
            public void onChanged() {
                super.onChanged();
                invalidate();
                requestLayout();
            }
        };
    }

    @Override
    public Parcelable onSaveInstanceState() {
        Bundle bundle = new Bundle();
        bundle.putParcelable(KEY_SUPER_STATE, super.onSaveInstanceState());
        bundle.putInt(KEY_CURRENT_INDEX, mCurrentViewIndex - getChildCount());
        return bundle;
    }

    @Override
    public void onRestoreInstanceState(Parcelable state) {
        if (state instanceof Bundle) {
            Bundle bundle = (Bundle) state;
            mCurrentViewIndex = bundle.getInt(KEY_CURRENT_INDEX);
            state = bundle.getParcelable(KEY_SUPER_STATE);
        }

        super.onRestoreInstanceState(state);
    }

    @Override
    protected void onLayout(boolean changed, int l, int t, int r, int b) {

        if (mAdapter == null || mAdapter.isEmpty()) {
            mCurrentViewIndex = 0;
            removeAllViewsInLayout();
            return;
        }

        for (int x = getChildCount();
             x < mNumberOfStackedViews && mCurrentViewIndex < mAdapter.getCount();
             x++) {
            addNextView();
        }

        reorderItems();

        mIsFirstLayout = false;
    }

    private void addNextView() {
        if (mCurrentViewIndex < mAdapter.getCount()) {
            View bottomView = mAdapter.getView(mCurrentViewIndex, null, this);
            bottomView.setTag(R.id.new_view, true);

            if (!mDisableHwAcceleration) {
                bottomView.setLayerType(LAYER_TYPE_HARDWARE, null);
            }

            if (mViewRotation > 0) {
                bottomView.setRotation(mRandom.nextInt(mViewRotation) - (mViewRotation / 2));
            }

            int width = getWidth() - (getPaddingLeft() + getPaddingRight());
            int height = getHeight() - (getPaddingTop() + getPaddingBottom());

            LayoutParams params = bottomView.getLayoutParams();
            if (params == null) {
                params = new LayoutParams(
                        FrameLayout.LayoutParams.WRAP_CONTENT,
                        FrameLayout.LayoutParams.WRAP_CONTENT);
            }

            int measureSpecWidth = MeasureSpec.AT_MOST;
            int measureSpecHeight = MeasureSpec.AT_MOST;

            if (params.width == LayoutParams.MATCH_PARENT) {
                measureSpecWidth = MeasureSpec.EXACTLY;
            }

            if (params.height == LayoutParams.MATCH_PARENT) {
                measureSpecHeight = MeasureSpec.EXACTLY;
            }

            bottomView.measure(measureSpecWidth | width, measureSpecHeight | height);
            addViewInLayout(bottomView, 0, params, true);

            mCurrentViewIndex++;
        }
    }

    private void reorderItems() {
        for (int x = 0; x < getChildCount(); x++) {
            View childView = getChildAt(x);
            int topViewIndex = getChildCount() - 1;

            int distanceToViewAbove = (topViewIndex * mViewSpacing) - (x * mViewSpacing);
            int newPositionX = (getWidth() - childView.getMeasuredWidth()) / 2;
            int newPositionY = distanceToViewAbove + getPaddingTop();

            childView.layout(
                    newPositionX,
                    getPaddingTop(),
                    newPositionX + childView.getMeasuredWidth(),
                    getPaddingTop() + childView.getMeasuredHeight());

            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                childView.setTranslationZ(x);
            }

            boolean isNewView = (boolean) childView.getTag(R.id.new_view);
            float scaleFactor = (float) Math.pow(mScaleFactor, getChildCount() - x);

            if (x == topViewIndex) {
                mSwipeHelper.unregisterObservedView();
                mTopView = childView;
                mSwipeHelper.registerObservedView(mTopView, newPositionX, newPositionY);
            }

            if (!mIsFirstLayout) {

                if (isNewView) {
                    childView.setTag(R.id.new_view, false);
                    childView.setAlpha(0);
                    childView.setY(newPositionY);
                    childView.setScaleY(scaleFactor);
                    childView.setScaleX(scaleFactor);
                }

                childView.animate()
                        .y(newPositionY)
                        .scaleX(scaleFactor)
                        .scaleY(scaleFactor)
                        .alpha(1)
                        .setDuration(mAnimationDuration);

            } else {
                childView.setTag(R.id.new_view, false);
                childView.setY(newPositionY);
                childView.setScaleY(scaleFactor);
                childView.setScaleX(scaleFactor);
            }
        }
    }

    private void removeTopView() {
        if (mTopView != null) {
            removeView(mTopView);
            mTopView = null;
        }

        if (getChildCount() == 0) {
            if (mListener != null) mListener.onStackEmpty();
        }
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int width = MeasureSpec.getSize(widthMeasureSpec);
        int height = MeasureSpec.getSize(heightMeasureSpec);
        setMeasuredDimension(width, height);
    }

    public void onSwipeStart() {
        if (mProgressListener != null) mProgressListener.onSwipeStart(getCurrentPosition());
    }

    public void onSwipeProgress(float progress) {
        if (mProgressListener != null)
            mProgressListener.onSwipeProgress(getCurrentPosition(), progress);
    }

    public void onSwipeEnd() {
        if (mProgressListener != null) mProgressListener.onSwipeEnd(getCurrentPosition());
    }

    public void onViewSwipedToLeft() {
        if (mListener != null) mListener.onViewSwipedToLeft(getCurrentPosition());
        removeTopView();
    }

    public void onViewSwipedToRight() {
        if (mListener != null) mListener.onViewSwipedToRight(getCurrentPosition());
        removeTopView();
    }

    public void onClicked(){
        mListener.onClicked();
    }

    public void onLongClicked(long duration){
        mListener.onLongClicked(duration);
    }
    /**
     * Returns the current adapter position.
     *
     * @return The current position.
     */
    public int getCurrentPosition() {
        return mCurrentViewIndex - getChildCount();
    }

    /**
     * Returns the adapter currently in use in this SwipeStack.
     *
     * @return The adapter currently used to display data in this SwipeStack.
     */
    public Adapter getAdapter() {
        return mAdapter;
    }

    /**
     * Sets the data behind this SwipeView.
     *
     * @param adapter The Adapter which is responsible for maintaining the
     *                data backing this list and for producing a view to represent an
     *                item in that data set.
     * @see #getAdapter()
     */
    public void setAdapter(Adapter adapter) {
        if (mAdapter != null) mAdapter.unregisterDataSetObserver(mDataObserver);
        mAdapter = adapter;
        mAdapter.registerDataSetObserver(mDataObserver);
    }

    /**
     * Returns the allowed swipe directions.
     *
     * @return The currently allowed swipe directions.
     */
    public int getAllowedSwipeDirections() {
        return mAllowedSwipeDirections;
    }

    /**
     * Sets the allowed swipe directions.
     *
     * @param directions One of {@link #SWIPE_DIRECTION_BOTH},
     *                   {@link #SWIPE_DIRECTION_ONLY_LEFT}, or {@link #SWIPE_DIRECTION_ONLY_RIGHT}.
     */
    public void setAllowedSwipeDirections(int directions) {
        mAllowedSwipeDirections = directions;
    }

    /**
     * Register a callback to be invoked when the user has swiped the top view
     * left / right or when the stack gets empty.
     *
     * @param listener The callback that will run
     */
    public void setListener(@Nullable SwipeStackListener listener) {
        mListener = listener;
    }

    /**
     * Register a callback to be invoked when the user starts / stops interacting
     * with the top view of the stack.
     *
     * @param listener The callback that will run
     */
    public void setSwipeProgressListener(@Nullable SwipeProgressListener listener) {
        mProgressListener = listener;
    }

    /**
     * Get the view from the top of the stack.
     *
     * @return The view if the stack is not empty or null otherwise.
     */
    public View getTopView() {
        return mTopView;
    }

    /**
     * Programmatically dismiss the top view to the right.
     */
    public void swipeTopViewToRight() {
        if (getChildCount() == 0) return;
        mSwipeHelper.swipeViewToRight();
    }

    /**
     * Programmatically dismiss the top view to the left.
     */
    public void swipeTopViewToLeft() {
        if (getChildCount() == 0) return;
        mSwipeHelper.swipeViewToLeft();
    }

    /**
     * Resets the current adapter position and repopulates the stack.
     */
    public void resetStack() {
        mCurrentViewIndex = 0;
        removeAllViewsInLayout();
        requestLayout();
    }

    /**
     * Interface definition for a callback to be invoked when the top view was
     * swiped to the left / right or when the stack gets empty.
     */
    public interface SwipeStackListener {
        /**
         * Called when a view has been dismissed to the left.
         *
         * @param position The position of the view in the adapter currently in use.
         */
        void onViewSwipedToLeft(int position);

        /**
         * Called when a view has been dismissed to the right.
         *
         * @param position The position of the view in the adapter currently in use.
         */
        void onViewSwipedToRight(int position);

        /**
         * Called when the last view has been dismissed.
         */
        void onStackEmpty();

        void onClicked();

        void onLongClicked(long duration);
    }

    /**
     * Interface definition for a callback to be invoked when the user
     * starts / stops interacting with the top view of the stack.
     */
    public interface SwipeProgressListener {
        /**
         * Called when the user starts interacting with the top view of the stack.
         *
         * @param position The position of the view in the currently set adapter.
         */
        void onSwipeStart(int position);

        /**
         * Called when the user is dragging the top view of the stack.
         *
         * @param position The position of the view in the currently set adapter.
         * @param progress Represents the horizontal dragging position in relation to
         *                 the start position of the drag.
         */
        void onSwipeProgress(int position, float progress);

        /**
         * Called when the user has stopped interacting with the top view of the stack.
         *
         * @param position The position of the view in the currently set adapter.
         */
        void onSwipeEnd(int position);
    }
}

redpajama_set_name: RedPajamaGithub


Canonical URL: ; File formats: Plain Text PDF Discuss this RFC: Send questions or comments to [email protected] RFC Stream Control Discuss this RFC: Send questions or comments to [email protected] Abstract. This document obsoletes RFC and RFC The Stream Control Transmission Protocol (SCTP) is a computer networking communications protocol which operates at the transport layer and serves a role similar to the popular protocols TCP and UDP. It is standardized by IETF in RFC . RFC Stream Control Transmission Protocol (updated by RFC and.
Views Read Edit View history. This allows independent ordering of messages in different streams. RFC provides an introduction. Streaming Internet Standards Transport layer protocols Multihoming.
Retrieved from " https: If the chunk does not form a multiple of 4 bytes i.
However TCP does not allow the receiver to know how many times the sender application called on the TCP transport passing it groups of bytes to be sent out.
Archived from the original on One can characterize SCTP as message-oriented, meaning it transports a sequence of messages each being a group of bytesrather than transporting an unbroken stream of bytes as does TCP. It has since been widely ported. RFC defines the protocol. Adoption has been slowed by lack of awareness, lack of implementations particularly in Microsoft Windowslack of application support and lack of network support.
Eight flag bits, a two byte length field and the data compose the remainder of the chunk.
Each chunk starts with a one byte type identifier, with 15 chunk types defined by RFCand at least 5 more defined by additional RFCs . The two byte length field limits each chunk to a 65, byte length including the type, flags and length fields.
Some operating systems ship with SCTP support enabled, and, as it is not as well known as TCP or UDP, it is sometimes overlooked in firewall and intrusion detection configurations, thus often permitting probing traffic. Although encryption was not part of the original SCTP design, SCTP was designed with features for improved security, such as 4-way handshake compared to TCP 3-way handshake to protect against SYN flooding attacks, and large "cookies" for association verification and authenticity.
Success with Dual-Stack Hosts". Each SCTP end point needs to check reachability of iettf primary and redundant addresses of the remote end point using a heartbeat. Each SCTP end point needs to ack the heartbeats it receives from the remote end point.
It differs from those protocols by providing multi-homing and redundant paths to increase rf and reliability. However, message ordering is optional in SCTP; a receiving application may choose to process messages in the order of receipt instead of in the order of sending.
The following operating systems implement SCTP:. SCTP places messages and control information into separate chunks data chunks and control chunkseach identified by a chunk header.
Multihoming enables an association to stay open even when some routes and interfaces are down. The protocol can fragment a message into a number of rgc chunks, but each data chunk contains data from only one user message.
TCP preserves byte order in the stream by including a byte sequence number with each segment. As in UDP, in SCTP a sender sends a message in one operation, and that exact message is passed to the receiving application process in one operation. SCTP, on the other hand, assigns a sequence number or a message-id [note 1] to each message sent in a stream. TCP has provided the primary means to transfer data reliably across the Internet. At the sender, TCP simply appends more bytes to a queue of bytes waiting to go out over the network, rather than having to keep a queue of individual separate iietf messages which must be preserved as such.
The term multi-streaming refers to the capability of SCTP to transmit several independent streams of chunks in parallel, for example transmitting web page images together with the web page text.
This page was last edited on 5 Decemberat In essence, it involves bundling several connections into a single SCTP association, operating on messages or chunks rather than bytes. The designers of SCTP originally intended it for the transport of telephony Signaling System 7 over Internet Iwtf, with the goal of duplicating some of the reliability attributes of the SS7 signaling network in IP.
From Wikipedia, the free encyclopedia. Reliability was also a key part of the security design of SCTP. However, TCP has imposed limitations on several applications.