Christopher Lopez, Youth Development and Community Engagement Supervisor for the City of Avondale, was honored with a Gabe Zimmerman Public Service Community Builder Award. The 2017 honors were presented on Thursday, July 20 at the Arizona City/County Management Association Summer Conference hosted this year in Marana, AZ.
The Gabe Zimmerman Public Service Community Builder Award recognizes public servants in cities and towns who advance community pride and connectedness. These leaders have be instrumental in transforming their communities through a variety of efforts including job creation and training, healthy communities, environmental and historical preservation, volunteerism and philanthropy, and educational advancement.
Chris Lopez spearheads numerous programs, services and partnerships that benefit local youth in the Avondale area. Under his leadership, the Youth and Community Engagement Division works to address the needs of underserved youth and provides meaningful community engagement opportunities for all Avondale residents.
Lopez introduced the Kids at Hope philosophy to the city and paved the way for Avondale to become the first official Kids at Hope city in the nation. As a result, staff from various school districts, local government and community leaders have adopted the Kids at Hope support system and belief that all children are capable of success, no exceptions. He also was instrumental in fostering relationships with the Corporation for National and Community Service, as well as expanding youth workforce development and teen leadership opportunities in Avondale.
The Gabe Zimmerman Public Service Awards are sponsored by the Center for the Future of Arizona and supported by Arizona City/County Management Association, Arizona Department of Administration, County Supervisors Association of Arizona, Inter Tribal Council of Arizona, Inc., and League of Arizona Cities and Towns.
The Center for the Future of Arizona is a nonpartisan, nonprofit that combines research with collaborative partnerships and initiatives that drive the state's economic prosperity, quality of life, and civic health to create a better future for all Arizonans. www.arizonafuture.org.
Congratulations to Sandy McGeorge! The Town of Queen Creek recently recognized Sandy for her dedicated service to the town, commemorating her 20th anniversary.
The town has experienced many changes since Sandy McGeorge started in 1997. Initially serving as the Town Clerk, Sandy transitioned to the role of grant writer in 1999. As a young community, Sandy was instrumental in securing grants to help develop programs and services, particularly in the area of Parks and Recreation. She also assisted the communications area by coordinating community outreach events and the Citizen Leadership Institute.
In 2007, Sandy began working on real estate matters on the Town's behalf in addition to her other duties. In 2010, she became a Management Assistant II, focusing solely on real estate, where she is essential to the success of road improvement projects and economic development efforts. In 2012, she received the Senior Right-of-Way Agent distinction from the International Right-of-Way Association, the most prestigious professional designation granted to right-of-way professionals.
Learn more about Sandy, Queen Creek and read the full story by clicking here.
What is the most rewarding part of your job? To have our department be recognized by citizens for our exceptional customer service.
What is your favorite memory as a city/town clerk? Being recognized by the AMCA for Municipal Clerk of the Year in 2006.
What is the most rewarding part of your job? Being able to provide people with the information they need, whether it be a cemetery record for family research, utility assistance information or legislative history of the city.
What is your favorite memory as a city/town clerk? Having people participate in local government, either by coming to council meetings and addressing the council or running and serving as a council member; they come in and meet with me to learn about the city, the council, where they can find information, etc. I've had two people decide to run – and they served – on council after meeting with me regarding their questions.
How many years have you served as a clerk? Deputy town clerk for nine years and town clerk 13 years.
Where are you originally from? Born in St. Louis and grew up in Parry Sound, Ontario, Canada.
What is the strangest/most unique task you have had to perform as part of your duties? Snake catcher! When a little red racer snake was slinking across the floor in our records center everyone deserted me, leaving me to catch it and take it outside.
What is the most rewarding part of your job? Mentoring those who will follow me in the municipal clerk profession is something I enjoy doing. Nothing is more rewarding than helping a 'new recruit' discover that continuing education leads to success.
How many years have you served as a clerk? 24 years in the city clerk department with five years as city clerk.
What is the craziest question you have been asked by a resident? A voter asking about the procedure to change their vote the day after the election.
What is the most rewarding part of your job? Working with other clerks and staff who are so dedicated to serving the public, and being able to assist people who are uncertain about where to go or are intimidated about interacting with government when they need information or records.
How many years have you served as a clerk? Eight years in department and three and a half years as clerk.
What is the most rewarding part of your job? Being able to serve the citizens of our city, working with city council, preserving the records for the city's history, and initiating new ideas and programs to streamline the workload.
What is your favorite memory as a city/town clerk? One of my most favorite memories was the second grade class coming to city hall to learn about elections. The mayor was present and talked to the students about an election, and when he asked if there were any questions, they all wanted to know about the large key on the wall and what it opened!
How many years have you served as a clerk? Six and a half years in Tempe. Prior to that, 12 years as city clerk in Yuma.
What is the most rewarding part of your job? Working with community members to increase their knowledge of city government, programs and services, and seeing them become actively involved in their city.
What is your favorite memory as a city/town clerk? My favorite memories are working with city staff and various election officials to coordinate election activities and working late into the night on election night to count ballots and distribute results.
What is the craziest question you have been asked by a resident? I was asked if the city clerk's office could send someone to sweep a street that contained gravel.
What is the most rewarding part of your job? The ability to be a helpful resource and provide service to internal and external customers in an ethical, impartial professional and excelling manner.


The quality of your client base in commercial real estate brokerage will have a direct reflection on your commissions. So the real issue is how do you attract and serve the top clients of the market? How do you get those clients to change agent or broker?
Far too many agents think that the prospecting process is easy. It is not. It takes real commitment and strategy to build a quality database of good clients with top properties. It also takes time.
It really doesn't matter who you work for in real estate brokerage but it does matter what you do about it. Most quality leads and client contacts will occur through the efforts of individuals. A good brokerage is only the start.
The answer was as expected and typically less than 2 new people per person. Some agents had not spoken to any new people. What a disaster! You cannot make commissions by talking to yourself. You must talk to new people every day to find the opportunities.
It should also be said that talking to only your existing client base will place limits on your results and market share. You can do something with this and you do have choices.
So I go back to the fact that the quality of your client base will radically impact the commissions that you make over time. If you deliberately chase down the best clients and property owners in a relevant way, you will eventually make some good contacts; over time that leads to leases, sales, and property management appointments.
Over time it is not hard to contact 5 new people each day, but it does take total focus and system to get the job done. Every day some research is required to make the calls and connect with the right people.
Do you want more commissions, correct? The choices that you make here with these things are really important.


text:
Ancient Egypt: 800 Tombs Discovered In Massive Grave Site Lurking Between Two Pyramids
By Katherine Hignett On 9/13/18 at 9:06 AM EDT
Tech & Science Ancient Egypt Tombs Graves History
Archaeologists have uncovered more than 800 tombs in Egypt thought to date back some 4,000 years. The massive haul of graves were revealed during an expedition into an ancient cemetery site archaeologists have been aware of for more than a century, Egypt's Ministry of Antiquities reported.
Although they aren't obvious above ground today, archaeologist and expedition co-leader Prof. Sarah Parcak said the graves would have featured roofs and even causeways to the nearby riverbank. "Given the number and density of tombs, it probably looked a lot like the cemeteries of New Orleans do today," she told Newsweek.
One of the 802 Middle Kingdom tombs documented during the 2017 Lisht Season, Lisht, Egypt. Sarah Parcak
The gravesite lies between a pair of pyramids near Lisht, a village near Al Ayat to the south of Cairo, National Geographic stated. "Lisht is a fairly well known ancient site, and the location of Egypt's Middle Kingdom capital, called Itj-Tawy," Parcak said. "It is exciting because we have a real opportunity to lean more about the diverse classes and groups of people that lived and then died at Itj-Tawy." The city itself, she added, has never been discovered.
"[The discovery] adds a great deal to what we know about the Middle Kingdom, a time which has long been overlooked in favor of the earlier Old Kingdom 'Pyramid Age' and the later New Kingdom 'Golden Age' of Tutankhamen and Nefertiti," Professor Joann Fletcher of the University of York told Newsweek. By investigating and ultimately safeguarding the site—which has been known for illegal looting—Parcak and team have shed light on the "often shadowy" period, she added.
The Middle Kingdom, which stretched from about 2000 to 1650 B.C.E., is characterized by a "blossoming" of art and culture, Parcak told National Geographic. This period also saw Osiris, god of the underworld, rise to prominence among the deities commonly worshipped in Egypt.
Image from the tomb of Intef, carved and painted face of Intef, a tomb owner, from Dynasty 12, Lisht, Egypt. Sarah Parcak
The pyramids near the cemetery mark the graves of pharaohs Senusret I and his father Amenemhet I, kings of the Twelfth Dynasty of Egypt. This period is often considered a peak of the Middle Kingdom. "These tombs and the information we get from them will begin to address this gap of information about Egypt's Renaissance period," Parcak told Newsweek.
Amenemhet I's pyramid—which resembles those of Egypt's Old Kingdom—is poorly preserved. Much of the structure has disintegrated and it has been very difficult for archaeologists to reach the pyramid's interior. Once a highly imposing monument, it now stands at roughly 65 feet tall.
Researchers found the tombs during an expedition led by the University of Alabama-Birmingham and the Egyptian Ministry of Antiquities. They mapped the complex of tombs and began restoring an elite tomb, National Geographic reported.
Archaeologists explore the Lisht site, Egypt. Egyptian Ministry of Antiquities/Sarah Parcak
"From this area, there really aren't very many tombs that are known, except for the royal tombs there," Kathryn Bard, an archaeologist at Boston University who was not involved in the work, told the publication. "That's why this cemetery is important."
"A discovery on this scale is incredibly exciting," Fletcher said. "[It] has huge ramifications for what we will be able to say about 'the real people' of Middle Kingdom Egypt, rather than just the royal family."
Officials have widely publicised recent archaeological discoveries such the remains of a Neolithic village. Tourism continues to suffer in Egypt following the 2011 Egyptian revolution. Minister of Antiquities Khaled al-Anani recently encouraged visitors to see a recently-unearthed sphinx statue, Egypt Today previously reported.
In other ancient news, archaeologists recently discovered an ancient board game in the hidden chamber of a castle located in today's Russia. The remains of an ancient lost city in China, meanwhile, are transforming scientists' understanding of the country's history.
This article has been updated to include further comment from Sarah Parcak and Joann Fletcher.
Ancient Egypt: 800 Tombs Discovered In Massive Grave Site Lurking Between Two Pyramids | Tech & Science
Egyptian Village Older than Pharaohs Unearthed
Have Researchers Found the World's Oldest Cheese?
Ancient Board Game Discovered in Secret Castle Chamber

redpajama_set_name: RedPajamaCommonCrawl


text:
#H50 – A Decade of Fun – An Introduction
April 18, 2020 lindamstein 17 Comments
Photo Credit: CBS
Hi everyone. As much as I know there are some out there who would prefer to never hear from me again, I'm back with more love for Hawaii Five-0. It's taken me awhile to get my head around the ending of the show and how, or even if, I was going to write on this blog again.
To be honest if it wasn't for the fact that the finale has caused so much heated debate within the fandom, this "hiatus" wouldn't really feel all that different than any other. I always feel a letdown at the end of each season. Not because the show itself has let me down in any way (well, most of the time) but because it will be months before I'll get to see my favorite characters again in new episodes.
What I'm feeling now is pretty much the same. Not too different to every other April or May after the end of a season. It really only hits me when my mind naturally goes to the place it's gone for 10 years. The place that says, "I know it's tough, but it's ok, it's only 3 months until filming starts again". That's when it comes to me. Comes with a very resounding "clunk". That's when I feel it in full force. There won't be any filming starting… ever again.
But such is life. Everything has a beginning, a middle and an end. All good things come, eventually, to an end, whether we're prepared for it or not. Whether we like it or not. Life goes on and so, I suppose, do blogs.
I debated with myself on what the content of this blog in a post-H50 world would be. What would the first topic be? There was the obvious one, of course, but I decided that particular dead horse has been beaten far long enough. Both in lame episode reappearances and in (while quite entertaining) the ongoing discussions on social media. I think, for the fans who frequent this blog, those opinions were covered pretty well in the review of the finale and its subsequent comments.
That's not to say the topic won't ever come up again. It's inevitable that it will. After all, you can't discuss the sinking of the Titanic without mentioning the iceberg, right? Those discussions will go on, I'm sure, as do all discussions when a finale is a huge disappointment to the larger part of a fan base. I know people who are still scratching their heads over the end of LOST or are infuriated with the end of The Sopranos.
In the weeks since the series ended, once the initial disappointment over the way the finale basically trashed ten years of character development, I found my thoughts moving away from what might have been; away from what should have been and back to what was. What were the reasons I fell in love with this show from the very first moments I watched? The individual episodes that stood out. The special moments. The guest stars. So many wonderful things that made Hawaii Five-0 stand out as so exceptional for so long.
When we learned that Season 10 was going to be only 22 episodes, I'd planned to use the extra hiatus time to go back and re-watch from the beginning. I used to do that every summer hiatus. Before Season 2, I re-watched Season 1. Before Season 3, I re-watched Seasons 1 and 2. And so forth. It was only in the last three years or so that I didn't go all the way back, but still re-watched at least two or three prior seasons before the newest September premiere. Because Season 10 was ending so early, I was excited to have a lot of extra time before the show returned in September to do a full re-watch. Well, now I have all the time in the world.
So that's what I'm going to concentrate on. Starting from the very beginning. Because, for all the action, adventure, angst, love, hate, drama, ridiculousness, beautiful people in beautiful places, Aloha, Ohana, etc., what this show was first and foremost was a hell of a lot of fun.
I'm not going to do any full episode reviews. I admit I did think about it. Since I stared this blog at the beginning of Season 5, there are four seasons that I did not review. But to be honest, I really don't think I have the stamina to write ninety-three more full length reviews. Besides, a lot of the fun for me in the reviews is in the speculation of things to come, trying to guess where the writers are going with a story and all the "what's going to happen next?" Obviously, I can't do that because we all already know all of what came next.
There are two choices when we sit down with a stack of DVDs of our favorite shows. Do we pop in disc #1 and watch straight through to the end or do we pick and choose which episodes to watch based on particular stories or favorite scenes or guest stars who were in those individual episodes? For the purpose of the next few blogs, I'm going with option #2.
Sitting down to re-watch from the beginning, which episodes would I gravitate to first and why? I hope, as I post these blogs over the coming days and weeks, you'll chime in with what you agree with and, please do, what you don't agree with. Add in any favorite episodes or individual scenes or moments you feel I shouldn't have left out or make your opinions known if I added something you feel wasn't up to par. You know how much I love an honest, friendly debate!
Hawaii Five-0 has come to an end. But the fascination for the show, the love for the characters, the location, the stories, and the friends we have all made along the way will always be alive and well. I look forward to continuing those friendships here and on social media for a long time to come. I hope you all will continue to like this blog now that new shows are over. If so, I will be eternally grateful. For those who leave, who chose to follow other shows or blogs, thank you for the support you've given to me and this blog and I hope for nothing but the best for you.
See you all soon. Stay home… stay safe…. Aloha. Malama Pono.
→ #H50 – A Decade of Fun – Season ONE (Part I)
← #H50 Review: 10.22 – Aloha (Series Finale)
17 thoughts on "#H50 – A Decade of Fun – An Introduction"
Dan Gibson says:
Good for You, Linda … by all means, Bring It ! Last nite around 9pm I felt the same emotion as l did Friday a week ago.. But the pain is easing a little, bit by bit. On the positive side, I marvel at the video tributes that have flooded YouTube in the past 12-13 days. What an exciting way to celebrate 10 terrific years. I'll be watching for your takes with great interest !
I am also very sad that I didn't have my Hawaii 50 last night. My favorite will always be the first episode, with the way that Steve and Danny met. It roped me in right from the beginning. It was explosive. It made me love Mondays. I looked forward to every Monday after that. And I fell in love with Danny. Steve was pretty awesome too. I will never forget that first show. There were a lot of other great ones to but I loved the first one. It was a love affair that lasted 10 years. I wish we could have another 10 but it is what it is. They all deserve a break. It is well earned. Thank you for taking the time to write this article.
Bert Hayling says:
Looking back, I realized there are whole seasons for which I never went back and looked at the deleted scenes and other DVD set extras (the DVD sets not coming out 'til the new season was up and running didn't help) — so that right there is something I can do to stay in the 5-0 groove.
Come to think of it, there's at least one episode I never went back to watch (missed it 'cos I was off-island when it aired) — the one where Danny and the there-and-gone forensics lady get stuck in the stalled elevator and Danny's claustrophobia kicks in. I'm also not sure that I saw all the eps in the Alicia vs the murderer lady arc.
I get what you're saying about your review process; going back over the earlier seasons would mean changing your approach to the review, making it mostly an analysis of the episode and maybe discussing how it sets things up for later episodes. I still think it would be cool, but then I'm not the one who'd have to do the work. 😉
Episodes to rewatch… they all tend to blend together in my memory, right up until I pick one and start it — and then turns out I remember more than I thought. 😀 S1 is the only one I've rewatched, and that was 'cos I had the DVD set and one of those netbook-style portable DVD players on flights to and from Oahu. 😉
So, thinking a little about this paragraph:
In hindsight, it's striking me how Steve and Danny were sort of two sides of the same coin — very different ways of expressing things, very different ways of addressing situations, very different life experiences, but at their core, very similar — loyal to a fault, deeply caring, compassionate, familiar with grief and loss, hugely protective of those they love or consider their responsibility (and for all Danny seemed on the surface to be a stickler for detail in re: getting things done right so they'd stick, look at him when Gracie or Steve were threatened – he was ready to kill to protect his family, rules be damned).
I'm also struck by one of the qualities Danny seemed to treasure above all else about Steve — the gentle, compassionate heart, the "testosterone-filled marshmallow" whose greatest joy was finding and fixing broken toys and bringing them into his found family. Danny got to see and recognize those qualities by refusing to back down, by challenging Steve to let him in, by proving himself worthy of Steve's trust over and over. Their partnership, their friendship, made the show for me; without it, I'd never have stood with H50 for a decade.
jlopie1 says:
Such a great idea, Linda! I couldn't imagine doing 93 more reviews, but I kinda like Bert's idea of rewatching from the beginning and discussing how to put those early episodes in perspective with what we know happened going forward!
Looking forward to more discussion centered on the entire series! Can't wait for the next installment!
Oh, remember how we drove ourselves batty trying to figure out how the writers would get Steve's neck out of that seemingly air-tight noose going from 1.24 to 2.01? I remember trying to come up with workable scenarios for Danny them to prove Steve's innocence, and then PL them came up with something completely out of left field (and threw in a convenient "one/two week later" to allow for all sorts of stuff to be tidied up off-screen, if we were so bold as to say "oh, by the way, what about *this* plot point?") 😉
There were certainly a lot of interesting plot branches that were never explored after they popped up in their specific episodes — like Danny actually *seeing* and talking to a ghost at that fancy apartment building (Mrs. Kekoa, the older lady gardening out in front of the building, who warned him about the dodgy elevator). Dude SAW A GHOST!! a real, live, identifiable ghost. That was trippy. (Though I guess Steve saw and spoke to his dead father often enough, and we have to accept that as ghosts being a real part of the H50 universe, or Steve having some troubling mental issues…) 😉
Nancy 13 says:
I was hooked from the pilot. I miss my Friday nights in Hawaii. Magnum P I can't replace my Friday nights in Hawaii, sorry to say. I hope to see both Alex & Scott in new projects someday. Thank you for continuing the blog. It will be fun remembering favorite episodes with you all here.
I've been watching MPI now it's back on and in H50's timeslot, but it's a bittersweet experience – like visiting a friend's house after someone else has moved into it. The house (Oahu) is still the same, but the old, familiar faces aren't there any more – only your memories of them and the good times shared there.
The familiar aerial establishing shots – the Honolulu skyline, coming over the Ko'olaus towards Kaneohe, tracking along the H-1 through downtown, flying along the Waiks shoreline… stylistically the two shows are understandably very similar.
It's a shared universe, so we're inevitably going to see Magnum & Co at (or at least outside) familiar official buildings, like the Water Board building that's served as the exterior for the CME's office all these years – not to mention the buildings on either side of the Ali'iolani Hale (the multi-storey one "Diamond Head" of the Hale stood in for HPD HQ a few times early on, and the old sorta Spanish-style post office building Ewa of the Hale played courthouse many times). I'm wondering how long it'll be before we see either the Ali'iolani Hale or Hilton Hawaiian Village turn up – the Hale especially, as it's so tightly bound to H50.
I think the first time we see Kamekona's shrimp truck in this post-H50 world is going to be more than a bit melancholic – it's been our team's go-to hangout place for years, now. (Though I guess MPI has La Mariana).
Did H50 ever go up into the Aloha Tower? I know they shot several times at the (I think?) now defunct Aloha Tower Marketplace, but I don't remember them ever going up into the tower itself.
I don't think they ever went out to the Polynesian Cultural Center either, did they? Or Sealife Park, out by Waimanalo? Or the Pearl Harbor Visitor Center and Museums? (I was going to say Fort DeRussy, but I think H50 did shoot there).
So I guess there are still a lot of places H50 never went – or haven't been to in years – that MPI could use as locations. That's the beauty of being home-based on Oahu — a mind-boggling array of cool places to take your show on location without treading on the toes of LOST or H50.
I really needed this. I'm so glad you're continuing the blog. Friday night's will never be the same. I've been losing myself in audio books and fan fixes, definitely avoiding the TV…..still feeling way too much animosity to a certain EP, so thank you, thank you because this already makes me feel better.
ZiaDiane says:
Hi Linda,
A great Idea. I miss this show terribly as do so many fans. I am more disappointed each week with finale, even though we can't change it, I am not ready to let go as yet.
I would enjoy the reviews continuing and thank you for doing this.
Somewhere in my mind I am hoping TPTB would do a movie to properly end this show as it should be with more thought and time to show what these characters meant to each and change the history of the show the way they did.. We have a lot of time on our hands these days and probably for a while longer, so seeing my favorite show and characters from the start would be something that I would appreciate. Take care.
rhondagemini says:
I am so glad you are continuing this blog, Linda! I,for one, would miss it terribly. Having said that, I want to go back to the premiere of this series and my thoughts about it. Having been a fan of the original series, I wasn't sure if this series would-or even could-measure up to the original. I shouldn't have worried, as there were connections to the original right from the start,beginning with the opening credits and of course, we had the ultimate connection, Dennis Chun,whose father,Kam Fong,was Chin Ho Kelly in the original series. I will always be appreciative that Dennis was a part of this show and I know his father would have been proud,too.I really loved the dynamics of the Steve & Danny relationship and only wish it hadn't been tortured so in the series finale. When DDK & GP left at the end of season 7,I knew the show would not be the same and it wasn't,but Meaghan & Beulah breathed new life into it and I really enjoyed seeing their on-screen relationship as Tani & Junior evolve and I believe it would have evolved further had there been a Season 11. Looking forward to the discussions in the weeks to come!
Brooklyngirl says:
What a great idea! I'm looking forward to more! I was in love with Alex from his prior 2 tv shows and was so excited that he was cast for H50 (I watched the original with my dad so very sweet memories). I watched the pilot, fell head-over-in-heels in love with him all over again and was completely hooked.
Let the discussions begin! Thanks for doing this!
Susan Schoppe says:
Thank Goodness you're continuing this blog. I wasn't sure you would but really hoped you would. I absolutely agree, the show was for me the heart of Steve & Danny's loyalty to each other in working & solving cases together. The Whole show grew each season from that base, even stronger right up to the middle of the finale. So it literally blew my mind that the entire premiss of that core base was just abandoned in the end. Ten years of being presented in that view (for me) Ruined in the last 15 or so minutes. The minute Steve left Danny on the beach the rest of the writing seemed thrown together like dough on the wall, eventually it falls off and hits the floor with a thud! That whole last scene was dough on the floor to be out in the trash.
Take care & stay safe ❤
Deneé (@adtfrom73) says:
Thank you, Linda, for deciding to do some blogging on the earlier episodes of Hawaii Five-0. I look forward to seeing them. I wasn't sure I wanted to come back to anything related to the show. I've finally been able to forget the last few episodes. I found your site two or three years ago and I've read some of your earlier posts from seasons before that. Your thoughts seem to be similar to some of mine so I'd like to see what you think about earlier episodes as well as some of your posters. I have always appreciated your love for this show even when you didn't agree with its direction. I could always tell you had a genuine love for the show in general and not just specific characters. I'm sure having something fun to escape to will be valuable in this current situation. Stay safe and be well!
Hi, Susan! I kind of laughed at the end of your post. The series finale and your post reminded me of the early 90's when I was in college. Spike Lee was very popular for his culturally insightful movies. After watching several of his movies I became disappointed. The movies would start of well and would continue to tell a good story. However, Lee would put his artist take or spin on the final scene or ending of the movie and I would sit there thinking what the hell did that have to do with the whole movie. My father and I had the same thoughts and to this day my sister won't even bother to watch his movies.
It's rare that I see a series finale these days and find any satisfaction. I almost dread hearing a show is having their series finale for fear that I'll be disappointed. I was expecting that much from this one, but I thought that there would be only one disappointing part. I was wrong. Someone I follow posted a link to this site from a McDanno shipper and I think it is one of the most objectively insightful views on the finale. After reading this and seeing a few other posts from followers on the board it has really helped me to overlook at lot of the finale.
I don't know if I should post these links or if it is a good idea. Some may enjoy this if you haven't already read these. Linda, if you think that his wasn't a good idea or inappropriate and need to remove this I understand and apologize for posting it.
https://cowandcalf.tumblr.com/post/614648402494521344/the-end-scene-steve-and-catherine-as-in
https://cowandcalf.tumblr.com/post/614562582912696320/the-goodbye-scene-steve-and-danny-1022
https://cowandcalf.tumblr.com/post/615677370933919744/detective-danny-williams-appreciation-post-1022
Hi Denee! No need to apologize. There is a setting on this blog which prevents comments with links from posting on the page. You wouldn't believe how many people try to post stuff on here that is wildly inappropriate. But I read through the posts you linked to and even I don't agree with 100% of what was said, they all make very valid points so I see no reason to remove them. Thanks! ♥
Hi Denee, I loved that. Yes, that helps more than you know. I'm seeing it this way from this point on, LoL finally something I can handle! Thank you for posting this. Thank you Linda for keeping it. I was sort of venting in my earlier comment but it just came out the way I felt, like in the original move "The Odd Couple" when Oscar throws the spegitti/linguine on the wall & it just hangs there sliding down the wall. That's how the ending felt like to me, just a big mess on the floor. But I have a new perspective now, thanks to you, stay safe 🤗


If you're going to have to look for an ice cream maker that can give you everything that you would need for business and personal use, then this is the product that you should look for. We will try to give you all the proper details that we can about the Mini Ice Cream Maker so that you will be able to have a clear view of what you can expect from the product.
With this Mini Ice Cream Maker, you can surely make a fresh, homemade ice cream in just 20 to 40 minutes. It also has a 1.5 l capacity that will make it enjoyable not only for you but for the whole family as well. It also comes with a fast freezing insulated bowl that will definitely save you time and effort when it comes to preparation. Aside from this, assembly is quite easy because of the removable, clear lid that you can use together with the machine itself.
Also, see here all my favorite ice cream machines.
In addition to this, you will also have nonstick material that will allow you to work with a bowl without any difficulties in terms of cleaning up and maintaining the quality of the product. It also has a large feed tube that will give you more room to add more ingredients as you go along with your preparations for a sweet and frosty ice cream for your children and for yourself as well.
Aside from this, it also has a conveniently located on and off switch that you can easily find. You will never have to worry about complicated interface to use if ever you decide to get the Mini ice cream maker as soon as possible.
These are just some of the most prominent features that you can look forward to in case you decide to buy the product right away. It is truly a timesaving and energy saving device that you can use in your kitchen. However, you have to also keep in mind, the pros and cons that you may encounter in the process of using this device. Here are some of those pros and cons as follows.
These are just some of the most helpful points that you have to remember when it comes to researching about this specific ice cream maker. Hopefully, we helped you figure out if you would want to have this in your kitchen or not. It is important for you to consider all the advantages and disadvantages before you buying any products because you will be the one to use it for a long time. If it turns out effective, it will be a great addition to your kitchen appliances.
That being said, we can assure you that this is one of the best kitchen appliances that you can have in your own house. You will never regret getting yourself one of these machines as soon as possible.
Bayers Ice Cream Maker is a straightforward bread maker that utilizes frozen fruits to produce a fun and healthy treat that tastes somewhat like frozen treats but without all of the calories. Bayers Ice Cream Maker uses frozen fruit to produce a smooth and attractive treat but it's not frozen treats meaning that frozen treats is made of cream or milk.
The Bayers Ice Cream Maker is a different sort of appliance having a chute on top just like a food processer and taking advantage of the plunger you push the fruit in to the rotor blades to mash the frozen fruit. The edge cone guarantees all of the fruit makes connection with the rotor blades that are six metal toothed rotor blades imbedded in to the tough plastic cone.
These rotor blades rotate and therefore are right over the chute so anything heading down the chute comes directly into connection with the spinning rotor blades. The motor is 200 w but doesn't spin extremely fast and may handle very frozen fruit you're forcing lower the chute.
The motor might be a little noisy which is among the complaints I've come across but any can openers I've heard is nearly as noisy otherwise even louder. Using frozen fruit means it's not necessary to have use ice or any other method to freeze the treat when you are which makes it but you have to freeze the fruit in advance.
You should use either fruit you freeze, together with other activities, or buy frozen fruit like bananas, blueberries yet others. The device is most effective with fruits which have a particular consistency like bananas and bananas although some fruits need the aid of bananas to create a creamy texture.
Using fruit which will cream or perhaps be smooth after running with the Bayers Ice Cream Maker machine may be the life blood from the concept behind the treat maker. Fruit which has small sections like raspberries and blackberries will not prosper from the teeth because they simple falter in their sections however this even bakes an interesting treat by itself.
If you want to have an energy saving device but still be able to make the best ice cream there is, then this ice cream maker is the one for you. The Gelato Elite ice cream maker is the only gadget that can give you everything that you need in terms of functionality and advantage. Would you like to learn more? Here are some additional details that can help you understand why you need to buy this product as soon as possible.
It works with only 230 watts so you do not have to use up a lot of electrical energy to make it function well for you. In addition, it can take up to 1.2 liters of ingredients. This means that you will have more ice cream for yourself and for the whole family as well.
Aside from this, you also get to have a special paddle that can add to the quality of the finished product. Because of this special battle, you will be able to mix ingredients more efficiently than ever before. It also has transparent lids that can ensure the perfect freezing temperature for your ice cream. Because of the lids, you will be able to maintain a freezing cold ice cream for as long as you want to.
In addition, you will also get a stainless steel bowl that will be easy to clean up and maintain as soon as you use it regularly. This is why it would be very advantageous for you to get this machine as soon as possible. It also comes with a recipe book that can give you ideas as to how you can prepare your ice cream much more deliciously than before.
It will serve as an instant chiller for your ice cream as well. This is why you do not have to worry about your ice cream melting just a few minutes after you take it out from the freezer. Aside from this, you will also be able to get an idea about the pros and cons of using this machine.
This will help you find out what you can look forward to if ever you decide to use this machine to make your favorite ice cream flavor as much as you would like. Here are the pros and cons of using the machine as follows.
It is very easy to operate. The user interface is easy to understand.
The accompanying bowl and paddle is dishwasher safe.
It also has a compressor that will make it easier to use for some beginners.
There will be no need to freeze the bowl before using the machine. This saves you time and electricity when using this particular ice cream maker.
You would have to prepare your ice cream in small batches but it is extremely easy to clean so it would not take much time and you can prepare a new batch in just a few minutes.


What did the Buddha actually teach?
The earliest teachings of the Buddha presented a schema for understanding why there is suffering, how it manifests, the role that ego plays in perpetuating it, and the way out—the path to enlightenment.
In this one-day offering, we'll explore what Shakyamuni Buddha actually taught in the First Turning of the Wheel of Dharma, commonly referred to as the "Hinayana" teachings. Together we'll survey the principal teachings, with references to the sutras (original written form of the oral teachings of the Buddha), contemplations, and discussion.
Topics to be covered include: The Four Noble Truths, The Noble Eightfold Path, Karma, Samsara, Nirvana, the Three Marks of Existence, the Four Dharma Seals, the Twelve Nidanas, the Five Skandhas, the consciousnesses, shamatha, and vipashyana.
Who is this for? Anyone who has been curious to learn more about what the Buddha taught (not just the commentaries)! Shambhala teachers and senior students are also encouraged to attend and share their knowledge and experience with these teachings.
Join us at the Shambhala Center or online via Zoom.
If you'll be joining online, please register and pre-pay online first, and then send an e-mail to practice@dc.shambhala.org to let us know so we can send you the information you'll need to participate in the class.


Flow - Sign · forums · community | osu!
This includes some of my latest work in my Naruto skin.
Last edited by Chaos Anime X November 29, 2009 at 10:38:34 PM GMT , edited 1 times in total.
I should just get over it. I should stop feeling it.
I don't care if I'm hurt, 'cause I don't feel pain anymore.
All while you limped on, dragging your feet behind you.
Do you remember it? That sky of tears?


text:
Q: 'ascii' codec can't encode character when redirecting Python script to file through Bash I have the following script (test.py), printin a non-ASCII character:
# -*- coding: utf-8 -*-
print u"café"

It works as expected when running at shell:
$ python test.py
café

However, if I try the usual bash redirect with > it fails in the following way:
$ python test.py > result.txt
Traceback (most recent call last):
  File "test.py", line 2, in <module>
    print u"café"
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 3: ordinal not in range(128)

How this can be solved?
Python version, in the case it helps:
$ python --version
Python 2.6.6

EDIT1: note this question is not a duplicated of this other. In the referred question they are using file abstraction in Python, e.g. open(), etc. while in my question these abstractions are not used and I'm using bash redirection.
EDIT2: check bash unicode support, as suggested in comments:
$ bash --version | head -n 1
GNU bash, versión 4.1.2(1)-release (x86_64-redhat-linux-gnu)
$ stty -a
speed 38400 baud; rows 35; columns 150; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts -cdtrdsr
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc ixany imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
$ echo -e '\xe2\x82\xac'
€

redpajama_set_name: RedPajamaStackExchange


Have you received a fraudulent email or spoofed spam email? If you have received an email from an address such as xyxxyz@country-landscapes.com or similar, it is not from us and we recommend you delete it!
Legitimate emails from us it will not be xyxxyz@country-landscapes.com or similar.
Due to spoofing of our domain (illegal use by doom virus / spammers) we do not use s a l e s@country-landscapes.com to reply or send you email.
Spoofing is the unfortunate use of someone elses domain/email address to provide a cover for spam email marketing and / or virus propagation. Unfortunately not everyone has updated their antivirus software to prevent spammers accessing email address boxes!
If you know how to stop spoofing - please let us know!


text:
Home Power GE, NDPHC sign letter of intent on end-to-end power delivery
GE, NDPHC sign letter of intent on end-to-end power delivery
on: July 05, 2018 In: Power
*To focus on expansion, repair & upgrade of all critical transmission/ distribution infrastructure
05 July 2018, Sweetcrude, Lagos, Nigeria — GE (NYSE: GE), the world's premier digital industrial company, yesterday announced its intention to collaborate with the Niger Delta Power Holding Company (NDPHC) on the development of an End-To-End to Power Intervention (EEIP).
This is part of its efforts to help boost power supply in Nigeria
This announcement followed a signing of a Letter of Intention (LOI) by both parties during the France-Nigeria Business Forum held today in Lagos, one of several events hosted during the visit of President of France, Emmanuel Macron, to Nigeria. This event was witnessed by the French Secretary of State to the Minister of Economy and Finance, Delphine Geny-Stephann.
GE's EEIP is aimed at delivering incremental power from the NIPP's underutilized or stranded capacity to several industrial and commercial hubs through multiple solutions across the entire electricity value chain. Under the agreement, GE will provide End-to-End power solutions across the value chain to deliver 2.5GW of Power. The company will also provide financing support for the power projects including funding for the refurbishment of distribution and transmission infrastructure amongst other critical support services to analyze and improve the power value chain. The Letter of Intent also states the willingness of BPIFrance (the French export credit agency) to provide financing support given that the technology to be deployed in this project will be manufactured in GE Power's facilities in France.
The collaboration will see NDPHC partner with GE to work with Discos, TCN and other relevant stakeholders, to identify and prioritize critical projects to reduce technical and commercial losses. The focus will be on the expansion, repair, and upgrade of all critical transmission and distribution infrastructure.
According to Lazarus Angbazo, CEO & President of GE Nigeria, "GE is proud to partner with an organization of high repute like NDPHC. There is an alignment in our objectives to drive positive change in Nigeria's power industry so this partnership is a good fit and we look forward to positive outcomes in the near future."
In the same vein, Chiedu Ugbo, MD/CEO of NDPHC expressed the company's delight to work with GE in delivering end-to-end solutions under the EEIP's mandate. He said that the collaboration will bring about a much-needed boost to the Nigerian power sector.
GE and the Federal Government of Nigeria signed a Country to Company agreement in 2014 to achieve the country's additional electric power generation capacity target of 10,000 MW. With the acquisition of Alstom by GE, approximately 70 percent of Nigeria's gas-powered electricity generation currently runs on GE technology. GE delivers across the entire energy ecosystem for Nigeria's national development, from generation to transmission and distribution as well as Multi-year service agreements.
South Africa's Eskom to shut down units of nuclear plant for refueling


text:
2003-09-07 20:42 UTC X is always for Xylophone
There are certain things that are quite obviously bad ideas, things that will obviously quickly cascade out of control.
For example, introducing a linguist to magnetic poetry.
I don't know who is to blame, but whoever it is deserves a good talking to. It should have been obvious what would happen!
Alphabet Soup:
Someone really needs to go through these and put them in alphabetical order. I mean, trying to write anything is nearly impossible just because you spend so long looking through the pile to find the word you want that you end up forgetting what you were trying to write in the first place. And that's no good.
Jump to Latest 2003-12-04 16:34 UTC - Extending HTML4 Forms 2003-12-02 17:14 UTC - The mystery of why only four properties apply to table columns 2003-11-30 19:43 UTC - Boring Web log 2003-11-18 16:44 UTC - Movement 2003-11-14 18:23 UTC - An hour in the life of gate A22 2003-11-09 22:27 UTC - SSSS 2003-11-08 06:24 UTC - San Diego 2003: Part 2 2003-11-07 00:41 UTC - San Diego 2003: Part 1 2003-10-28 09:45 UTC - Spotting vendor lock-in 2003-10-14 15:28 UTC - The Absolute Minimum Every "The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)" Author Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) 2003-10-09 17:31 UTC - A reason why I don't respect the concept of religion 2003-09-29 15:28 UTC - Naked girls, DHCP, GPRS, ART, and high notes 2003-09-29 09:35 UTC - Never send content in proprietary formats over the wire 2003-09-23 13:49 UTC - A crash course in UTF-8 mathematics 2003-09-23 00:05 UTC - Reopenings, green tints, and myths 2003-09-17 20:08 UTC - Hm indeed. 2003-09-16 23:17 UTC - Hmm. 2003-09-16 20:15 UTC - JavaScript evaluation sidebar 2003-09-15 22:13 UTC - You may now sacrifice virgins to ensure there are no last call comments 2003-09-07 20:42 UTC - X is always for Xylophone 2003-08-27 20:07 UTC - Horrah! 2003-08-26 17:19 UTC - There are no hidden messages 2003-08-24 17:53 UTC - Geeks 2003-08-18 15:50 UTC - I like Bergen now! ☺ 2003-08-16 16:32 UTC - Bergen 2003-08-11 14:58 UTC - data:text/plain;base64,SSBzdGlsbCBsb3ZlIGRhdGE6IFVSTHM%3D 2003-08-10 21:20 UTC - Back from the boat race 2003-08-10 12:32 UTC - Watching the boat race 2003-08-08 18:55 UTC - Potato chip art 2003-08-08 11:16 UTC - On the way to work 2003-08-04 19:27 UTC - How to install X-Chat in five hours (or more) 2003-08-03 21:06 UTC - I hate X 2003-08-01 23:28 UTC - My meeting with the black mowmow 2003-07-29 18:55 UTC - Yet another simple entry detailing my recent exploits 2003-07-27 13:02 UTC - What to do in Oslo 2003-07-27 11:24 UTC - Day 28 2003-07-26 14:29 UTC - Day 27 2003-07-22 08:30 UTC - Day 23 2003-07-21 01:31 UTC - Oh and Hunter adopted a Drocken baby... Start


text:
Celtfather Unkilted
Celtic Christmas Elf. Listen to Celtic Christmas Greeting Cards
Marc Gunn
Celtfather Music & Travel gives you an inside look into the life of musicians. You'll hear interviews with people I meet on the road and online who are involved in the Celtic and Geek communites. You'll enjoy stories from my Celtic Invasion Vacations and travels around the world. Plus, you'll get my inside thoughts on music marketing, cats, science fiction conventions, and the ideas that move me. This is more than Celtic music and culture. It's more than a Geek lifestyle audio blog or travel show. This is about what it means to be Scots-Irish and a Geek.
Publié le mardi 21 octobre 2014 à 18:17 par Celtic Christmas Elf. Listen to Celtic Christmas Greeting Cards
This is still one of my favorite Celtic Christmas songs that I've written. It captures a little bit of the American Christmas mythos while merging it with the leprechauns of Ireland and the old English recruitment tactic of the 19th century.
You can get this and other Celtic Christmas music as part of my Celtic Christmas Greeting Cards that are now on Kickstarter. Go to http://celticmusic.org/CelticChristmasGreetingCards
A podcast about rock and/or roll. Part of Pantheon Podcasts
ListenNow
The heaviest 5 Minutes Of Your Day!
ListenNow podcast is meant to bring metal to your day, covering the good stuff in metal, here you will listen to a 5 minutes review for an amazing album every day! There are tons of heavy metal podcast around, but ListenNow is the only with a masterclass metal curation, agile and sharp. shredding your timeline every morning
UnFictional
In this season of Unfictional, Stories of Transformation, and the ways in which the world — and all of us — have fundamentally changed since the pandemic began. One man watched his children suddenly turn into grown-ups, while another upended every part of his life. Someone else had to learn to live with hardship and found their true identity along the way, all while living in two worlds. Meanwhile, a subculture ascends, one reporter explores Olvera Street, and another finds an old notebook filled with memories from his time in a cabin. It's UnFictional, hosted by Bob Carlson.
Nude Beach Ska Podcast
The fortnightly (ish) ska podcast bringing you my favourite ska/reggae/rocksteday/soul music from around the world, clothing optional!
How Good It Is
A weekly show that dives into rock's history. Find me at www.howgooditis.com
Every week I choose a song from the 50s through the 80s and dive into its history, the story behind the song and other items of interest. Find more stuff at www.howgooditis.com
Boston Rock Talk
Boston Rock / Talk is Boston's first and only web…
Boston Rock / Talk is Boston's first and only web, TV and podcast series that highlights the most talented, up-and-coming to top-established names in music as they come to play the city's venues. Video episodes are an hour of high-caliber content, featuring an interview with host Jim Sullivan (former Boston Globe and Phoenix rock music critic), and a performance by the musician. Each show is broadcast live in partnership with Comcast to produce a video series for digital distribution via Xfinity On Demand including the interview, performance and behind-the-scenes footage. Podcasts range from past and current interviews with national and international musicians playing in the Boston area and beyond. Jim is known for his informed interviews and deep knowledge of the music scene, past and present, and Boston Rock / Talk captivates its audience with an intimate experience.


text:
/*
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package io.trino.event;

import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableMultimap;
import com.google.common.collect.Multimap;
import com.google.common.collect.Multimaps;
import io.airlift.json.JsonCodec;
import io.airlift.log.Logger;
import io.airlift.node.NodeInfo;
import io.airlift.stats.Distribution;
import io.airlift.stats.Distribution.DistributionSnapshot;
import io.airlift.units.DataSize;
import io.trino.SessionRepresentation;
import io.trino.client.NodeVersion;
import io.trino.connector.CatalogName;
import io.trino.cost.StatsAndCosts;
import io.trino.eventlistener.EventListenerManager;
import io.trino.execution.Column;
import io.trino.execution.ExecutionFailureInfo;
import io.trino.execution.Input;
import io.trino.execution.QueryInfo;
import io.trino.execution.QueryStats;
import io.trino.execution.StageInfo;
import io.trino.execution.TaskInfo;
import io.trino.execution.TaskState;
import io.trino.metadata.Metadata;
import io.trino.metadata.SessionPropertyManager;
import io.trino.operator.OperatorStats;
import io.trino.operator.TableFinishInfo;
import io.trino.operator.TaskStats;
import io.trino.server.BasicQueryInfo;
import io.trino.spi.QueryId;
import io.trino.spi.eventlistener.OutputColumnMetadata;
import io.trino.spi.eventlistener.QueryCompletedEvent;
import io.trino.spi.eventlistener.QueryContext;
import io.trino.spi.eventlistener.QueryCreatedEvent;
import io.trino.spi.eventlistener.QueryFailureInfo;
import io.trino.spi.eventlistener.QueryIOMetadata;
import io.trino.spi.eventlistener.QueryInputMetadata;
import io.trino.spi.eventlistener.QueryMetadata;
import io.trino.spi.eventlistener.QueryOutputMetadata;
import io.trino.spi.eventlistener.QueryStatistics;
import io.trino.spi.eventlistener.StageCpuDistribution;
import io.trino.spi.resourcegroups.QueryType;
import io.trino.spi.resourcegroups.ResourceGroupId;
import io.trino.sql.analyzer.Analysis;
import io.trino.sql.planner.PlanFragment;
import io.trino.sql.planner.plan.PlanFragmentId;
import io.trino.sql.planner.plan.PlanNode;
import io.trino.sql.planner.plan.PlanNodeId;
import io.trino.sql.planner.plan.PlanVisitor;
import io.trino.sql.planner.planprinter.ValuePrinter;
import io.trino.transaction.TransactionId;
import org.joda.time.DateTime;

import javax.inject.Inject;

import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.OptionalLong;
import java.util.stream.Collectors;

import static com.google.common.collect.ImmutableList.toImmutableList;
import static com.google.common.collect.ImmutableSet.toImmutableSet;
import static io.trino.execution.QueryState.QUEUED;
import static io.trino.execution.StageInfo.getAllStages;
import static io.trino.sql.planner.planprinter.PlanPrinter.textDistributedPlan;
import static java.lang.Math.max;
import static java.lang.Math.toIntExact;
import static java.time.Duration.ofMillis;
import static java.time.Instant.ofEpochMilli;
import static java.util.Objects.requireNonNull;

public class QueryMonitor
{
    private static final Logger log = Logger.get(QueryMonitor.class);

    private final JsonCodec<StageInfo> stageInfoCodec;
    private final JsonCodec<OperatorStats> operatorStatsCodec;
    private final JsonCodec<ExecutionFailureInfo> executionFailureInfoCodec;
    private final JsonCodec<StatsAndCosts> statsAndCostsCodec;
    private final EventListenerManager eventListenerManager;
    private final String serverVersion;
    private final String serverAddress;
    private final String environment;
    private final SessionPropertyManager sessionPropertyManager;
    private final Metadata metadata;
    private final int maxJsonLimit;

    @Inject
    public QueryMonitor(
            JsonCodec<StageInfo> stageInfoCodec,
            JsonCodec<OperatorStats> operatorStatsCodec,
            JsonCodec<ExecutionFailureInfo> executionFailureInfoCodec,
            JsonCodec<StatsAndCosts> statsAndCostsCodec,
            EventListenerManager eventListenerManager,
            NodeInfo nodeInfo,
            NodeVersion nodeVersion,
            SessionPropertyManager sessionPropertyManager,
            Metadata metadata,
            QueryMonitorConfig config)
    {
        this.eventListenerManager = requireNonNull(eventListenerManager, "eventListenerManager is null");
        this.stageInfoCodec = requireNonNull(stageInfoCodec, "stageInfoCodec is null");
        this.operatorStatsCodec = requireNonNull(operatorStatsCodec, "operatorStatsCodec is null");
        this.statsAndCostsCodec = requireNonNull(statsAndCostsCodec, "statsAndCostsCodec is null");
        this.executionFailureInfoCodec = requireNonNull(executionFailureInfoCodec, "executionFailureInfoCodec is null");
        this.serverVersion = requireNonNull(nodeVersion, "nodeVersion is null").toString();
        this.serverAddress = requireNonNull(nodeInfo, "nodeInfo is null").getExternalAddress();
        this.environment = requireNonNull(nodeInfo, "nodeInfo is null").getEnvironment();
        this.sessionPropertyManager = requireNonNull(sessionPropertyManager, "sessionPropertyManager is null");
        this.metadata = requireNonNull(metadata, "metadata is null");
        this.maxJsonLimit = toIntExact(requireNonNull(config, "config is null").getMaxOutputStageJsonSize().toBytes());
    }

    public void queryCreatedEvent(BasicQueryInfo queryInfo)
    {
        eventListenerManager.queryCreated(
                new QueryCreatedEvent(
                        queryInfo.getQueryStats().getCreateTime().toDate().toInstant(),
                        createQueryContext(queryInfo.getSession(), queryInfo.getResourceGroupId(), queryInfo.getQueryType()),
                        new QueryMetadata(
                                queryInfo.getQueryId().toString(),
                                queryInfo.getSession().getTransactionId().map(TransactionId::toString),
                                queryInfo.getQuery(),
                                queryInfo.getUpdateType(),
                                queryInfo.getPreparedQuery(),
                                QUEUED.toString(),
                                ImmutableList.of(),
                                ImmutableList.of(),
                                queryInfo.getSelf(),
                                Optional.empty(),
                                Optional.empty())));
    }

    public void queryImmediateFailureEvent(BasicQueryInfo queryInfo, ExecutionFailureInfo failure)
    {
        eventListenerManager.queryCompleted(new QueryCompletedEvent(
                new QueryMetadata(
                        queryInfo.getQueryId().toString(),
                        queryInfo.getSession().getTransactionId().map(TransactionId::toString),
                        queryInfo.getQuery(),
                        queryInfo.getUpdateType(),
                        queryInfo.getPreparedQuery(),
                        queryInfo.getState().toString(),
                        ImmutableList.of(),
                        ImmutableList.of(),
                        queryInfo.getSelf(),
                        Optional.empty(),
                        Optional.empty()),
                new QueryStatistics(
                        ofMillis(0),
                        ofMillis(0),
                        ofMillis(queryInfo.getQueryStats().getQueuedTime().toMillis()),
                        Optional.empty(),
                        Optional.empty(),
                        Optional.empty(),
                        Optional.empty(),
                        Optional.empty(),
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        ImmutableList.of(),
                        0,
                        true,
                        ImmutableList.of(),
                        ImmutableList.of(),
                        Optional.empty()),
                createQueryContext(queryInfo.getSession(), queryInfo.getResourceGroupId(), queryInfo.getQueryType()),
                new QueryIOMetadata(ImmutableList.of(), Optional.empty()),
                createQueryFailureInfo(failure, Optional.empty()),
                ImmutableList.of(),
                ofEpochMilli(queryInfo.getQueryStats().getCreateTime().getMillis()),
                ofEpochMilli(queryInfo.getQueryStats().getEndTime().getMillis()),
                ofEpochMilli(queryInfo.getQueryStats().getEndTime().getMillis())));

        logQueryTimeline(queryInfo);
    }

    public void queryCompletedEvent(QueryInfo queryInfo)
    {
        QueryStats queryStats = queryInfo.getQueryStats();
        eventListenerManager.queryCompleted(
                new QueryCompletedEvent(
                        createQueryMetadata(queryInfo),
                        createQueryStatistics(queryInfo),
                        createQueryContext(queryInfo.getSession(), queryInfo.getResourceGroupId(), queryInfo.getQueryType()),
                        getQueryIOMetadata(queryInfo),
                        createQueryFailureInfo(queryInfo.getFailureInfo(), queryInfo.getOutputStage()),
                        queryInfo.getWarnings(),
                        ofEpochMilli(queryStats.getCreateTime().getMillis()),
                        ofEpochMilli(queryStats.getExecutionStartTime().getMillis()),
                        ofEpochMilli(queryStats.getEndTime() != null ? queryStats.getEndTime().getMillis() : 0)));

        logQueryTimeline(queryInfo);
    }

    private QueryMetadata createQueryMetadata(QueryInfo queryInfo)
    {
        return new QueryMetadata(
                queryInfo.getQueryId().toString(),
                queryInfo.getSession().getTransactionId().map(TransactionId::toString),
                queryInfo.getQuery(),
                Optional.ofNullable(queryInfo.getUpdateType()),
                queryInfo.getPreparedQuery(),
                queryInfo.getState().toString(),
                queryInfo.getReferencedTables(),
                queryInfo.getRoutines(),
                queryInfo.getSelf(),
                createTextQueryPlan(queryInfo),
                queryInfo.getOutputStage().flatMap(stage -> stageInfoCodec.toJsonWithLengthLimit(stage, maxJsonLimit)));
    }

    private QueryStatistics createQueryStatistics(QueryInfo queryInfo)
    {
        ImmutableList.Builder<String> operatorSummaries = ImmutableList.builder();
        for (OperatorStats summary : queryInfo.getQueryStats().getOperatorSummaries()) {
            operatorSummaries.add(operatorStatsCodec.toJson(summary));
        }

        Optional<StatsAndCosts> planNodeStatsAndCosts = queryInfo.getOutputStage().map(StatsAndCosts::create);
        Optional<String> serializedPlanNodeStatsAndCosts = planNodeStatsAndCosts.map(statsAndCostsCodec::toJson);

        QueryStats queryStats = queryInfo.getQueryStats();
        return new QueryStatistics(
                ofMillis(queryStats.getTotalCpuTime().toMillis()),
                ofMillis(queryStats.getElapsedTime().toMillis()),
                ofMillis(queryStats.getQueuedTime().toMillis()),
                Optional.of(ofMillis(queryStats.getTotalScheduledTime().toMillis())),
                Optional.of(ofMillis(queryStats.getResourceWaitingTime().toMillis())),
                Optional.of(ofMillis(queryStats.getAnalysisTime().toMillis())),
                Optional.of(ofMillis(queryStats.getPlanningTime().toMillis())),
                Optional.of(ofMillis(queryStats.getExecutionTime().toMillis())),
                queryStats.getPeakUserMemoryReservation().toBytes(),
                queryStats.getPeakNonRevocableMemoryReservation().toBytes(),
                queryStats.getPeakTaskUserMemory().toBytes(),
                queryStats.getPeakTaskTotalMemory().toBytes(),
                queryStats.getPhysicalInputDataSize().toBytes(),
                queryStats.getPhysicalInputPositions(),
                queryStats.getInternalNetworkInputDataSize().toBytes(),
                queryStats.getInternalNetworkInputPositions(),
                queryStats.getRawInputDataSize().toBytes(),
                queryStats.getRawInputPositions(),
                queryStats.getOutputDataSize().toBytes(),
                queryStats.getOutputPositions(),
                queryStats.getLogicalWrittenDataSize().toBytes(),
                queryStats.getWrittenPositions(),
                queryStats.getCumulativeUserMemory(),
                queryStats.getCumulativeSystemMemory(),
                queryStats.getStageGcStatistics(),
                queryStats.getCompletedDrivers(),
                queryInfo.isCompleteInfo(),
                getCpuDistributions(queryInfo),
                operatorSummaries.build(),
                serializedPlanNodeStatsAndCosts);
    }

    private QueryContext createQueryContext(SessionRepresentation session, Optional<ResourceGroupId> resourceGroup, Optional<QueryType> queryType)
    {
        return new QueryContext(
                session.getUser(),
                session.getPrincipal(),
                session.getGroups(),
                session.getTraceToken(),
                session.getRemoteUserAddress(),
                session.getUserAgent(),
                session.getClientInfo(),
                session.getClientTags(),
                session.getClientCapabilities(),
                session.getSource(),
                session.getCatalog(),
                session.getSchema(),
                resourceGroup,
                mergeSessionAndCatalogProperties(session),
                session.getResourceEstimates(),
                serverAddress,
                serverVersion,
                environment,
                queryType);
    }

    private Optional<String> createTextQueryPlan(QueryInfo queryInfo)
    {
        try {
            if (queryInfo.getOutputStage().isPresent()) {
                return Optional.of(textDistributedPlan(
                        queryInfo.getOutputStage().get(),
                        queryInfo.getQueryStats(),
                        new ValuePrinter(metadata, queryInfo.getSession().toSession(sessionPropertyManager)),
                        false));
            }
        }
        catch (Exception e) {
            // Sometimes it is expected to fail. For example if generated plan is too long.
            // Don't fail to create event if the plan cannot be created.
            log.warn(e, "Error creating explain plan for query %s", queryInfo.getQueryId());
        }
        return Optional.empty();
    }

    private static QueryIOMetadata getQueryIOMetadata(QueryInfo queryInfo)
    {
        Multimap<FragmentNode, OperatorStats> planNodeStats = extractPlanNodeStats(queryInfo);

        ImmutableList.Builder<QueryInputMetadata> inputs = ImmutableList.builder();
        for (Input input : queryInfo.getInputs()) {
            // Note: input table can be mapped to multiple operators
            Collection<OperatorStats> inputTableOperatorStats = planNodeStats.get(new FragmentNode(input.getFragmentId(), input.getPlanNodeId()));

            OptionalLong physicalInputBytes = OptionalLong.empty();
            OptionalLong physicalInputPositions = OptionalLong.empty();
            if (!inputTableOperatorStats.isEmpty()) {
                physicalInputBytes = OptionalLong.of(inputTableOperatorStats.stream()
                        .map(OperatorStats::getPhysicalInputDataSize)
                        .mapToLong(DataSize::toBytes)
                        .sum());
                physicalInputPositions = OptionalLong.of(inputTableOperatorStats.stream()
                        .mapToLong(OperatorStats::getPhysicalInputPositions)
                        .sum());
            }

            inputs.add(new QueryInputMetadata(
                    input.getCatalogName(),
                    input.getSchema(),
                    input.getTable(),
                    input.getColumns().stream()
                            .map(Column::getName).collect(Collectors.toList()),
                    input.getConnectorInfo(),
                    physicalInputBytes,
                    physicalInputPositions));
        }

        Optional<QueryOutputMetadata> output = Optional.empty();
        if (queryInfo.getOutput().isPresent()) {
            Optional<TableFinishInfo> tableFinishInfo = queryInfo.getQueryStats().getOperatorSummaries().stream()
                    .map(OperatorStats::getInfo)
                    .filter(TableFinishInfo.class::isInstance)
                    .map(TableFinishInfo.class::cast)
                    .findFirst();

            Optional<List<OutputColumnMetadata>> outputColumnsMetadata = queryInfo.getOutput().get().getColumns()
                    .map(columns -> columns.stream()
                            .map(column -> new OutputColumnMetadata(
                                    column.getColumn().getName(),
                                    column.getColumn().getType(),
                                    column.getSourceColumns().stream()
                                            .map(Analysis.SourceColumn::getColumnDetail)
                                            .collect(toImmutableSet())))
                            .collect(toImmutableList()));

            output = Optional.of(
                    new QueryOutputMetadata(
                            queryInfo.getOutput().get().getCatalogName(),
                            queryInfo.getOutput().get().getSchema(),
                            queryInfo.getOutput().get().getTable(),
                            outputColumnsMetadata,
                            tableFinishInfo.map(TableFinishInfo::getConnectorOutputMetadata),
                            tableFinishInfo.map(TableFinishInfo::isJsonLengthLimitExceeded)));
        }
        return new QueryIOMetadata(inputs.build(), output);
    }

    private static Multimap<FragmentNode, OperatorStats> extractPlanNodeStats(QueryInfo queryInfo)
    {
        // Note: A plan may map a table scan to multiple operators.
        ImmutableMultimap.Builder<FragmentNode, OperatorStats> planNodeStats = ImmutableMultimap.builder();
        getAllStages(queryInfo.getOutputStage())
                .forEach(stageInfo -> extractPlanNodeStats(stageInfo, planNodeStats));
        return planNodeStats.build();
    }

    private static void extractPlanNodeStats(StageInfo stageInfo, ImmutableMultimap.Builder<FragmentNode, OperatorStats> planNodeStats)
    {
        PlanFragment fragment = stageInfo.getPlan();
        if (fragment == null) {
            return;
        }

        // Note: a plan node may be mapped to multiple operators
        Map<PlanNodeId, Collection<OperatorStats>> allOperatorStats = Multimaps.index(stageInfo.getStageStats().getOperatorSummaries(), OperatorStats::getPlanNodeId).asMap();

        // Sometimes a plan node is merged with other nodes into a single operator, and in that case,
        // use the stats of the nearest parent node with stats.
        fragment.getRoot().accept(
                new PlanVisitor<Void, Collection<OperatorStats>>()
                {
                    @Override
                    protected Void visitPlan(PlanNode node, Collection<OperatorStats> parentStats)
                    {
                        Collection<OperatorStats> operatorStats = allOperatorStats.getOrDefault(node.getId(), parentStats);
                        planNodeStats.putAll(new FragmentNode(fragment.getId(), node.getId()), operatorStats);

                        for (PlanNode child : node.getSources()) {
                            child.accept(this, operatorStats);
                        }
                        return null;
                    }
                },
                ImmutableList.of());
    }

    private Optional<QueryFailureInfo> createQueryFailureInfo(ExecutionFailureInfo failureInfo, Optional<StageInfo> outputStage)
    {
        if (failureInfo == null) {
            return Optional.empty();
        }

        Optional<TaskInfo> failedTask = outputStage.flatMap(QueryMonitor::findFailedTask);

        return Optional.of(new QueryFailureInfo(
                failureInfo.getErrorCode(),
                Optional.ofNullable(failureInfo.getType()),
                Optional.ofNullable(failureInfo.getMessage()),
                failedTask.map(task -> task.getTaskStatus().getTaskId().toString()),
                failedTask.map(task -> task.getTaskStatus().getSelf().getHost()),
                executionFailureInfoCodec.toJson(failureInfo)));
    }

    private static Optional<TaskInfo> findFailedTask(StageInfo stageInfo)
    {
        for (StageInfo subStage : stageInfo.getSubStages()) {
            Optional<TaskInfo> task = findFailedTask(subStage);
            if (task.isPresent()) {
                return task;
            }
        }
        return stageInfo.getTasks().stream()
                .filter(taskInfo -> taskInfo.getTaskStatus().getState() == TaskState.FAILED)
                .findFirst();
    }

    private static Map<String, String> mergeSessionAndCatalogProperties(SessionRepresentation session)
    {
        Map<String, String> mergedProperties = new LinkedHashMap<>(session.getSystemProperties());

        // Either processed or unprocessed catalog properties, but not both.  Instead of trying to enforces this while
        // firing events, allow both to be set and if there is a duplicate favor the processed properties.
        for (Map.Entry<String, Map<String, String>> catalogEntry : session.getUnprocessedCatalogProperties().entrySet()) {
            for (Map.Entry<String, String> entry : catalogEntry.getValue().entrySet()) {
                mergedProperties.put(catalogEntry.getKey() + "." + entry.getKey(), entry.getValue());
            }
        }
        for (Map.Entry<CatalogName, Map<String, String>> catalogEntry : session.getCatalogProperties().entrySet()) {
            for (Map.Entry<String, String> entry : catalogEntry.getValue().entrySet()) {
                mergedProperties.put(catalogEntry.getKey().getCatalogName() + "." + entry.getKey(), entry.getValue());
            }
        }
        return ImmutableMap.copyOf(mergedProperties);
    }

    private static void logQueryTimeline(QueryInfo queryInfo)
    {
        try {
            QueryStats queryStats = queryInfo.getQueryStats();
            DateTime queryStartTime = queryStats.getCreateTime();
            DateTime queryEndTime = queryStats.getEndTime();

            // query didn't finish cleanly
            if (queryStartTime == null || queryEndTime == null) {
                return;
            }

            // planning duration -- start to end of planning
            long planning = queryStats.getPlanningTime().toMillis();

            // Time spent waiting for required no. of worker nodes to be present
            long waiting = queryStats.getResourceWaitingTime().toMillis();

            List<StageInfo> stages = getAllStages(queryInfo.getOutputStage());
            // long lastSchedulingCompletion = 0;
            long firstTaskStartTime = queryEndTime.getMillis();
            long lastTaskStartTime = queryStartTime.getMillis() + planning;
            long lastTaskEndTime = queryStartTime.getMillis() + planning;
            for (StageInfo stage : stages) {
                // only consider leaf stages
                if (!stage.getSubStages().isEmpty()) {
                    continue;
                }

                for (TaskInfo taskInfo : stage.getTasks()) {
                    TaskStats taskStats = taskInfo.getStats();

                    DateTime firstStartTime = taskStats.getFirstStartTime();
                    if (firstStartTime != null) {
                        firstTaskStartTime = Math.min(firstStartTime.getMillis(), firstTaskStartTime);
                    }

                    DateTime lastStartTime = taskStats.getLastStartTime();
                    if (lastStartTime != null) {
                        lastTaskStartTime = max(lastStartTime.getMillis(), lastTaskStartTime);
                    }

                    DateTime endTime = taskStats.getEndTime();
                    if (endTime != null) {
                        lastTaskEndTime = max(endTime.getMillis(), lastTaskEndTime);
                    }
                }
            }

            long elapsed = max(queryEndTime.getMillis() - queryStartTime.getMillis(), 0);
            long scheduling = max(firstTaskStartTime - queryStartTime.getMillis() - planning, 0);
            long running = max(lastTaskEndTime - firstTaskStartTime, 0);
            long finishing = max(queryEndTime.getMillis() - lastTaskEndTime, 0);

            logQueryTimeline(
                    queryInfo.getQueryId(),
                    queryInfo.getSession().getTransactionId().map(TransactionId::toString).orElse(""),
                    elapsed,
                    planning,
                    waiting,
                    scheduling,
                    running,
                    finishing,
                    queryStartTime,
                    queryEndTime);
        }
        catch (Exception e) {
            log.error(e, "Error logging query timeline");
        }
    }

    private static void logQueryTimeline(BasicQueryInfo queryInfo)
    {
        DateTime queryStartTime = queryInfo.getQueryStats().getCreateTime();
        DateTime queryEndTime = queryInfo.getQueryStats().getEndTime();

        // query didn't finish cleanly
        if (queryStartTime == null || queryEndTime == null) {
            return;
        }

        long elapsed = max(queryEndTime.getMillis() - queryStartTime.getMillis(), 0);

        logQueryTimeline(
                queryInfo.getQueryId(),
                queryInfo.getSession().getTransactionId().map(TransactionId::toString).orElse(""),
                elapsed,
                elapsed,
                0,
                0,
                0,
                0,
                queryStartTime,
                queryEndTime);
    }

    private static void logQueryTimeline(
            QueryId queryId,
            String transactionId,
            long elapsedMillis,
            long planningMillis,
            long waitingMillis,
            long schedulingMillis,
            long runningMillis,
            long finishingMillis,
            DateTime queryStartTime,
            DateTime queryEndTime)
    {
        log.info("TIMELINE: Query %s :: Transaction:[%s] :: elapsed %sms :: planning %sms :: waiting %sms :: scheduling %sms :: running %sms :: finishing %sms :: begin %s :: end %s",
                queryId,
                transactionId,
                elapsedMillis,
                planningMillis,
                waitingMillis,
                schedulingMillis,
                runningMillis,
                finishingMillis,
                queryStartTime,
                queryEndTime);
    }

    private static List<StageCpuDistribution> getCpuDistributions(QueryInfo queryInfo)
    {
        if (queryInfo.getOutputStage().isEmpty()) {
            return ImmutableList.of();
        }

        ImmutableList.Builder<StageCpuDistribution> builder = ImmutableList.builder();
        populateDistribution(queryInfo.getOutputStage().get(), builder);

        return builder.build();
    }

    private static void populateDistribution(StageInfo stageInfo, ImmutableList.Builder<StageCpuDistribution> distributions)
    {
        distributions.add(computeCpuDistribution(stageInfo));
        for (StageInfo subStage : stageInfo.getSubStages()) {
            populateDistribution(subStage, distributions);
        }
    }

    private static StageCpuDistribution computeCpuDistribution(StageInfo stageInfo)
    {
        Distribution cpuDistribution = new Distribution();

        for (TaskInfo taskInfo : stageInfo.getTasks()) {
            cpuDistribution.add(taskInfo.getStats().getTotalCpuTime().toMillis());
        }

        DistributionSnapshot snapshot = cpuDistribution.snapshot();

        return new StageCpuDistribution(
                stageInfo.getStageId().getId(),
                stageInfo.getTasks().size(),
                (long) snapshot.getP25(),
                (long) snapshot.getP50(),
                (long) snapshot.getP75(),
                (long) snapshot.getP90(),
                (long) snapshot.getP95(),
                (long) snapshot.getP99(),
                (long) snapshot.getMin(),
                (long) snapshot.getMax(),
                (long) snapshot.getTotal(),
                snapshot.getTotal() / snapshot.getCount());
    }

    private static class FragmentNode
    {
        private final PlanFragmentId fragmentId;
        private final PlanNodeId nodeId;

        public FragmentNode(PlanFragmentId fragmentId, PlanNodeId nodeId)
        {
            this.fragmentId = requireNonNull(fragmentId, "fragmentId is null");
            this.nodeId = requireNonNull(nodeId, "nodeId is null");
        }

        @Override
        public boolean equals(Object o)
        {
            if (this == o) {
                return true;
            }
            if (o == null || getClass() != o.getClass()) {
                return false;
            }
            FragmentNode that = (FragmentNode) o;
            return fragmentId.equals(that.fragmentId) &&
                    nodeId.equals(that.nodeId);
        }

        @Override
        public int hashCode()
        {
            return Objects.hash(fragmentId, nodeId);
        }

        @Override
        public String toString()
        {
            return fragmentId + ":" + nodeId;
        }
    }
}

redpajama_set_name: RedPajamaGithub


This wonderfully unique flower produces an aroma which blends sweet florals with many vibrantly fresh citrus overtones. A beautifully light and joyous fragrance.
More information and product images can be found using the links above. If you have ordered these products before and would quickly like to add Bergamot products to your cart, you can do so using the quick order form below.


text:
TAYLOR: WE ARE DELIGHTED GEORGE IS HOME
Peter Taylor reveals he will be visiting George Howard following the goalkeeper's accident while on holiday
Gills boss Peter Taylor has revealed he and Chairman Paul Scally will visit George Howard on Wednesday as the goalkeeper continues to recover from injuries sustained while on holiday.
, and has only recently been flown home.following an accident in South Africa in MayHoward was in hospital for several days
Several of the club's first team players have already visited George and the Manager will be doing so later today.
Peter is relieved to see the player come home, telling the club's website:
"I'm delighted for him and his family as it must have been horrendous news for his parents that something like that all of a sudden happened to George, and of course it must have been a nightmare for him too.
"I've been speaking to a couple of the players who have already been to see him and he's done great so at least we are looking forward.
"When we heard about the news everything sounded terrible, it's still not brilliant but he's doing very well and I will go and see him on Wednesday with the Chairman and he knows he has our best wishes.
"We just hope he keeps recovering well."
here.George's JustGiving page has raised nearly £14,000 since the news emerged. You can add to that total by clicking


Ehrlichiosis also known as Tick Fever , canine rickettsiosis, canine hemorrhagic fever is a tick-borne disease of dogs usually caused by the organism Ehrlichia canis. Cats can also be infected.
ACUTE PHASE: This is generally a mild phase and occurs 1 to 3 weeks after the host is bitten by the tick. The Ehrlichia organism is replicated in this time period and attaching to white blood cell membranes. During this time the platelet count will drop and platelet destruction will occur. The dog will be listless, off food, and may have enlarged lymph nodes. There may be fever as well but rarely does this phase kill a dog. Most dogs clear the organism if they are treated in this stage but those that do not receive adequate treatment will go on to the next phase.
SUBCLINICAL PHASE: In this phase, the dog appears normal. The organism has sequestered in the spleen and is essentially hiding out there. Dogs can stay in this phase for months or even years. The only hint that Ehrlichia is hiding is a somewhat reduced platelet count and/or elevated globulin level on a blood test.
CHRONIC PHASE: In this phase the dog gets sick again. Up to 60% of dogs infected with Ehrlichia canis will have abnormal bleeding due to reduced platelets numbers.
Diagnosis is achieved most commonly with a blood test for the presence of antibodies against the ehrlichia organism. In addition, blood tests may show abnormalities in the numbers of red blood cells, white blood cells, and most commonly platelets, if the disease is present.
The antibiotics, tetracycline or doxycycline are used. (Doxicycline at 11 mg/kg). Treatment is usually for 3-4 weeks, even though the dog's symptoms generally improve after several days of therapy. Some dogs will need blood transfusions or intravenous fluids depending on the severity of the disease. Generally, the prognosis during the acute phase is good, if the animal is properly treated. Dogs who go on to the chronic phase have a poorer prognosis. German Shepherds and Doberman Pinschers tend to have a more severe chronic form of the disease.
Tick control is the main way to prevent Ehrlichiosis. Products which repel and kill ticks such as those containing permethrins are excellent choices. Tick collars containing the active ingredient amitraz (Preventic collars) are also used, sometimes in conjunction with permethrin products in those areas with high tick infestations. There is no vaccine for ehrlichiosis.


As I already wrote in How-to remove the author from your Twenty-Ten posts most blogs do not need the section "by author" since there is only one author.
Let's see how-to remove the author's name from the post info.
$post_info = '[post_date] ' . __('By', 'genesis') .
This is all you need if you're your blog's only author.
Great post, Latz. I've been looking for this tips for quite some time.
Another question: I want to insert image navigation (Previous Image/Next Image) in my gallery attachment page, but I can't find out how. Can you help me with this?
Thanks for this post… It is really helpful….
Thanks for this tips, worked great, and was able to hide the post author in mysite. But I have a question, that you probably can answer (I hope).
If I hide the author name with this code, will be the authorship hidden too?
Thanks for the advice.But not only the author name but i would like to remove the date,comments also.Please help me to remove this from the genesis theme.Thanks once again.
Thanks! Works good but I would also like to find a way to add something after author's name. Any idea how?
Great…so simple. Really no need for a lot of the plugins out there when all it takes is a little coding…thanks Latz, works like a charm!
🙁 didn't work for me. I added the code to function.php, saved and refreshed the post. Nothing.
in case you ask, I am using Genesis Sample theme.
OK, found this one. Works smoothly!
Thank you for your comments, Doobie. I'm not using the Genesis framework anymore, so I'm a bit behind its current state. Seems they have added this option since I wrote the post.
Others will surely find your finding helpful.


text:
Desktop Image: Kunselman, Michael
Mobile Image: Kunselman, Michael
Michael Kunselman
E michaelkunselman@dwt.com
Michael Kunselman is a partner in the firm's energy group where he focuses his practice on matters involving electricity regulation. He represents a broad array of electric industry clients across the country, such as investor-owned electric utilities, transmission owners, generation owners and developers, end-use customers, and a large regional independent system operator.
Over the past two decades, Michael has been involved in most of the key regulatory issues facing the electricity industry, including wholesale market design and oversight, generator interconnection, open access, transmission rates, and transmission planning. He has particular strengths in the areas of renewable power and energy storage development, and has represented developers and owners of such projects located in both organized markets and traditionally regulated regions.
Michael frequently represents his clients in hearings and settlement proceedings before federal and state regulators. He also assists clients in contract negotiations and disputes with various industry counterparties.
Represents both investor-owned utilities and an independent system operator regarding a variety of transmission planning issues, including implementation of and compliance with FERC Order Nos. 890 and 1000.
Played a key role in preparing and obtaining FERC approval of the interconnection procedures, as well as subsequent queue reform filings, for an independent system operator. Litigated a number of interconnection-related complaints. Represents generation developers in negotiating interconnection agreements in regions throughout the country.
Renewable and storage resources
Provides guidance and representation to renewable energy and storage developers and owners with respect to issues such as interconnection, transmission access, and wholesale market participation. Represented the first wind generator in the United States to receive regulatory approval establishing a rate for reactive power service.
Maryland, 2000
J.D., University of Maryland School of Law, 2000, honors
Editorial Board, Maryland Law Review
B.A., Political Science, University of Maryland, College Park, 1996
Energy Bar Association
Partner, 2008-2020; Associate, 2005-2007 – Alston & Bird, LLP, Washington, D.C.
Associate, Swidler Berlin LLP, Washington, D.C., 2000-2005