Sarri deserved more recognition for his achievements at Chelsea

first_img MOST READ IN FOOTBALL Getty Images – Getty Liverpool news live: Klopp reveals when Minamino will play and issues injury update However, the 60-year-old can leave with his head held high after enduring a rollercoaster season – full of ups and downs.The writing looked to be on the wall for Sarri after a troubling sequence of four defeats in seven games across all competitions, as well as the embarrassing Carabao Cup final incident which saw goalkeeper Kepa Arrizabalaga refuse to be substituted against Manchester City.Other managers would have walked away then and said enough was enough. Many were calling for Sarri to be axed then, with his control of the dressing room now in major doubt. latest The average first-team salaries at every Premier League club in 2019 Gerrard launches furious touchline outburst as horror tackle on Barisic sparks chaos TROPHY LATEST FOOTBALL NEWS That sequence of fixtures included games against three of the other ‘Big Six’, in Arsenal, Liverpool and Manchester United.They were four points behind the eventual champions Manchester City at the time, but there was every reason to be optimistic.Just as there was at the end of his only season in charge of the west Londoners, with Europa League glory and a third-place finish in the Premier League secured.Just as the Italian’s methods began to be paying off, he now returns to Serie A with Juventus. Unlike Sarri, the Spaniard didn’t deliver a trophy during that period.Jurgen Klopp also had to wait nearly four years to land his first piece of silverware at Liverpool – the Champions League.But with those two, you always sensed they’d get the time to build their own ideologies and get the resources to strengthen in the areas they needed to – and thus success would eventually follow. revealed Liverpool update ‘Champions Wall’ after ending 2019 as European and world champions getty Arsenal transfer news LIVE: Ndidi bid, targets named, Ozil is ‘skiving little git’ Fabregas, left, believes his former boss is too stubborn to move from his own ideas Liverpool update ‘Champions Wall’ after ending 2019 as European and world champions Arsenal transfer news LIVE: Ndidi bid, targets named, Ozil is ‘skiving little git’ The experienced midfielder pointed towards his former manager’s ‘stubbornness’ to move away from his own methods and ideas, claiming he listens to no-one else and will ‘never change’ in that respect.While Sarri obviously has his limitations, it never felt like he was truly appreciated or loved by the fans, nor did he get the backing by the board that he felt he deserved.Don’t get me wrong this isn’t a Rafa Benitez situation here, the vitriol he received during his stint at Stamford Bridge was on a whole new level.The fan mutiny he experienced at Cardiff back in April, with supporters calling for Sarri to be sacked, seemed to be the final nail in his coffin. The average first-team salaries at every Premier League club in 2019 TROPHY LATEST revealed Lampard appears to aim dig at Mourinho for handling of Salah and De Bruyne at Chelsea Gerrard launches furious touchline outburst as horror tackle on Barisic sparks chaos Video Player is loading.Play VideoPlayMuteCurrent Time 0:00/Duration 0:31Loaded: 31.96%Stream Type LIVESeek to live, currently playing liveLIVERemaining Time -0:31 Playback Rate1xChaptersChaptersDescriptionsdescriptions off, selectedCaptionscaptions settings, opens captions settings dialogcaptions off, selectedAudio Tracken (Main), selectedFullscreenThis is a modal window.Beginning of dialog window. Escape will cancel and close the window.TextColorWhiteBlackRedGreenBlueYellowMagentaCyanTransparencyOpaqueSemi-TransparentBackgroundColorBlackWhiteRedGreenBlueYellowMagentaCyanTransparencyOpaqueSemi-TransparentTransparentWindowColorBlackWhiteRedGreenBlueYellowMagentaCyanTransparencyTransparentSemi-TransparentOpaqueFont Size50%75%100%125%150%175%200%300%400%Text Edge StyleNoneRaisedDepressedUniformDropshadowFont FamilyProportional Sans-SerifMonospace Sans-SerifProportional SerifMonospace SerifCasualScriptSmall CapsReset restore all settings to the default valuesDoneClose Modal DialogEnd of dialog window.Close Modal DialogThis is a modal window. This modal can be closed by pressing the Escape key or activating the close button.PlayMuteCurrent Time 0:00/Duration 0:00Loaded: 0%Stream Type LIVESeek to live, currently playing liveLIVERemaining Time -0:00 Playback Rate1xFullscreen scrap gameday cracker latest 4 MAURIZIO SARRI’S CHELSEA RECORD Liverpool news live: Klopp reveals when Minamino will play and issues injury update Maurizio Sarri looks set to leave Chelsea for Juventus this summer Games: 63Wins: 40Draws: 11Defeats: 12AchievementsEuropa League winnersCarabao Cup runners-upPremier League (3rd) With Sarri, you get the feeling the Chelsea board changed their minds over him so many times already, and while the former should be grateful for the opportunity to manage one of Europe’s biggest clubs – and winning his first trophy as a manager – at the same time it’s been a bitter sweet experience.Former players have also weighed in with their opinions of Sarri of late.One of them being Cesc Fabregas, who rarely featured under the Italian before moving to Monaco in January. Simon Johnson gives his experience of covering Chelsea this season However, he proved all those doubters wrong – with real signs that ‘Sarriball’ was coming into fruition towards the end of the 2018/19 campaign.What Pep Guardiola has achieved at Manchester City has been mightily impressive, but it didn’t happen overnight.In his first full season in charge of City, they finished third in the Premier League and were FA Cup semi-finalists. scrap 4 Boxing Day fixtures: All nine Premier League games live on talkSPORT 4 JIBE SORRY Lampard appears to aim dig at Mourinho for handling of Salah and De Bruyne at Chelsea Sarri was furious with goalkeeper Kepa Arrizabalaga after he refused to be substituted in the Carabao Cup final Getty Images – Getty Sarri won the Europa League in his only season in charge at Stamford Bridge SORRY After 12 games of the 2018/19 season, Maurizio Sarri and Chelsea looked like a match made in heaven.The Italian broke the record for the longest unbeaten run at the start of a Premier League managerial career. 4 Sky Sports Sky Sports presenter apologises for remarks made during Neville’s racism discussion JIBE Boxing Day fixtures: All nine Premier League games live on talkSPORT Sky Sports presenter apologises for remarks made during Neville’s racism discussion gameday cracker LATEST But at the same time, for all the setbacks Sarri has endured and for what he has subsequently accomplished with this squad, his achievements have not been given the recognition they truly deserve.The emotion on his face when he lifted the Europa League was one of pure elation, but at the same time relief.Was Sarri ever really the right fit at Stamford Bridge? But at the same time who has really been the genuine long-term solution during Roman Abramovich’s 16-year tenure to date?Maybe it was never truly meant to be for Sarri and Chelsea, such are some things in life, but his departure leaves a real sense of what could have been.last_img read more

Spencer/Columbus wrestling captures team title at Merrill Invite

first_imgTim Bauer wins 138-pound championship for RocketsBy Paul LeckerSports ReporterMERRILL — Tim Bauer won the 138-pound title, and five others placed third as the Spencer/Columbus Catholic wrestling team won the team championship at the Bluejay Challenge on Saturday at Merrill High School.Bauer improved to 17-3 by beating Stetson Potrykus of Wittenberg-Birnamwood 6-2 in the 138-pound title match.Six Rockets lost in the semifinals, and five of them came back to win the third-place match. Taking third for Spencer/Columbus were Bryce Shaw at 126, Nathan Neumann at 160, Hunter Hildebrandt at 170, Hunter Luepke at 185, and Logan Zchernitz at 285. Carson Hildebrandt finished fourth at 152.Spencer/Columbus’ next match is Thursday at Eau Claire Regis.(Hub City Times Sports Reporter Paul Lecker is also the publisher of MarshfieldAreaSports.com.)Bluejay ChallengeJan. 9, at Merrill High SchoolTeam scores: 1. Spencer/Columbus Catholic 424.5; 2. Sun Prairie 403; 3. Wittenberg-Birnamwood 399; 4. Barron 363; 5. Merrill 341; 6. Escanaba (Mich.) 321; 7. Tomahawk 286.5; 8. Lakeland 285; 9. Oconto 264; 10. Marathon 242; 11. Amherst 203; 12. La Crosse Aquinas 176; 13. Crandon 175; 14. Southern Door 157.5; 15. Waukesha West 142.5; 16. Almond-Bancroft/Pacelli 125; 17. Three Lakes 116; 18. Mosinee 88; 19. Tri-County 58; 20. Elcho 56.Championships and Spencer finishers106: Championship – Nathan Franke (MAR) def. Wyatt Thiel (SP) 10-8; Fifth place – Jake Dick (SC) pinned Alex Cox (BAR) in 2:29.113: Championship – Josh Ehster (MOS) def. Aiden Wusterbarth (OC) 6-2.120: Championship – Drew Scharenbrock (SP) won major dec. over Logan Walker (SD) 13-0; Fifth place – Dominick Wichlacz (SC) pinned Courege Krueger (ESC) in 2:30.126: Championship – Devon Schultz (MER) def. Tyler Nelson (SP) 8-5; Third place – Bryce Shaw (SC) def. Tyler Wusterbarth (OC) 8-5.132: Championship – River Pawelski (SD) def. Elton Kelsey (OC) 3-1; Fifth place – Austin Post (SC) def. Jack Scandin (LAK) 4-3.138: Championship – Tim Bauer (SC) def. Stetson Potrykus (WB) 6-2.145: Championship – Jake McClintock (LAK) def. Zach Urquhart (WB) 2-1; Seventh place – Caden Schillinger (SC) def. Matt Turkowitcz (TOM) 5-0.152: Championship – Shane Gantz (WW) def. Tanner Pettit (MER) 7-3; Third place – Ethan Reid (LCA) won major dec. over Carson Hildebrandt (SC) 13-3.160: Championship – William Waldofski (BAR) pinned Griffin Magee (WB) in 1:00; Third place – Nathan Neumann (SC) def. Joe Sedivy (MAR) 13-6.170: Championship: Bryce Holderman (AM) pinned Will Van Pietersom (SP) in 0:28; Third place – Hunter Hildebrandt (SC) def. Jordan Schneeberger (MAR) 18-11.182: Championship: Quinn Wallenfang (TOM) won major dec. over Gavin Sneller (AM) 9-0; Seventh place – Dyan Bukovic (CRN) pinned Elijah Welsh (SC) in 2:15.195: Championship – August Peplinski (WB) def. Kaleb Kaminski (TOM) 3-2; Third place – Hunter Luepke (SC) def. Max Villnow (AM) 5-2.220: Championship – Dane Borchardt (TOM) def. Sam Presser (SP) 11-4.285: Championship – Cole Warzynski (ABP) pinned Mohammed Hoque (ESC) in 2:43; Third place – Logan Zschernitz (SC) def. Jacob Mohr (MAR) 7-0.last_img read more

South Africa’s adventure diversity

first_imgNight-time miracle Also, the cultural/historical/political dynamic that is prevalent in this land was fascinating to observe. The apartheid era ended only about 15 years ago and the Asian, black and white people are apparently still feeling each other out, so to speak. On our sojourn, we were delighted at how beautiful and varied the South African landscape is. From rolling green hills, fertile lands, soaring mountain ranges, plunging canyons, near jungle environments, Indian Ocean-side paradises, semi-desert regions, big city settings, and a non-stop montage of small African villages, it was one unexpected surprise after another. The lesson here is that there is more to South Africa than the great game parks. Pay a visit to the Drakensberg Mountain Range and other parts of this wonderful land and I guarantee that you won’t regret it. 15 January 2009 We came back sunburnt, cut, scraped, sore – and thoroughly satisfied, as the end result of adventure tourism should be! Our tour guide took us on a 16-kilometre hike as part of our time spent in the Drakensberg Mountains. It was a challenging experience, to be sure, as my bad knee swelled up like a grapefruit during the course of this adventure, as a result of all the climbing and descending. It was the big game parks and the country’s post-apartheid era of change that initially drew us to this land. But it was our observation that there is a relative sense of peace and security here that is missing in many other parts of Africa. Just me and South Africa in the middle of the night. The Barrier of Spears Still, the mountain vistas, the alpine meadows, the plethora of local flowers, plants and insects, a cascading waterfall, examples of Bushman rock art, and the curious mountain antelope and noisy baboons made for a memorable day. It was a breathtaking, emotional moment and it ended up being one of the highlights of a fantastic 18-day tour of this beautiful country. William Lindsay of Vancouver teaches at the University of British Columbia. The Lindsays’ tour was hosted by Drifters Adventure Tours. Particularly beautiful and memorable was the Drakensberg Mountain Range, a world heritage site in the northeast corner of the country. Called “The Barrier of Spears,” this impenetrable-looking wall of mountains looks like a cross between the Grand Canyon and the Grand Tetons in Wyoming. Drakensberg is a favourite vacation spot for many South Africans and they take justifiable pride in it. As well, visiting the famous Paul Kruger National Park and the historic and political black township of Soweto were certainly everything advertised and expected. The big game animals that Africa is famous for were a thrill to see. I awoke and walked outside my mountain cabin to a night-time miracle of sight and sound so spectacular it took my breath away: a three-quarters full moon lighting up the alpine landscape, the nearby mountain range a mixture of moon-tinged clarity and shadowy quarters, moonlit clouds reaching over a part of the range like a ghostly waterfall, croaking frogs and chirping insects adding a background harmony of natural sound, the Southern Cross and Orion constellations standing out in the midst of a starry belt above, with the lights of a faraway African settlement providing an earthly contrast. Cultural/historical/political dynamic However, it was a middle-of-the night event that caused my visit here to rise to the level of the sublime. Our family completed a wonderful tour of South Africa this past December. Our 18-day adventure tour took us from Johannesburg to Cape Town and interesting points in between, with a set of international travel companions from three continents. This article was first published in The Vancouver Sun. Republished here with kind permission of the author.last_img read more

LP Executives’ Family Members Tour Historic Bluffton, SC, at LPM Annual Meeting

first_imgWhile loss prevention retail and vendor executives were engaged in business meetings at the annual LP Magazine, LP Foundation, and RILA Asset Protection Leaders Council three-day event, sixteen family and guests of attendees were treated to a tour of nearby historic Bluffton, SC, sponsored by CAP Index and Zellman.The tour started with an hour-long boat ride down the May River through the unique South Carolina marshes with miles of oyster beds that wrap around the Bluffton area. Accompanied by beautiful sunshine, light breeze, and “refreshing” boat spray, the participants were welcomed by a resident dolphin, many egrets, and a hunting eagle.The May River cruise included educational facts provided by the boat captain about the flat, low country shoreline, including that there is a 10-foot tidal range that provides a lengthy oyster spawning season, natural oyster reefs grow in clusters versus individually, and why the oyster season takes place during the “R” months. The SC marshland ecosystem makes a perfect habitat for naturally growing abundant clusters of meaty, briny oysters.- Sponsor – The first stop was at the Bluffton Oyster Company—one of the last remaining companies harvesting naturally grown oysters—where their team of up to 27 pickers and shuckers process not only oysters, but also crab and shrimp.Church of the Cross, Bluffton, SCThe tour continued to historic Bluffton, a small Southern town classically decorated by tangled Spanish moss draping from century-old live oak trees and ferns hanging over wrap-around covered porches. The first stop in Bluffton was the Church of the Cross, a historic town landmark built in 1857. The participants then split into smaller groups to explore shops, art boutiques, farmer’s market booths, and chose a perfect spot for a leisurely lunch. All who went on the tour helped support the local economy by purchasing one or more treasured items from the local shops and vendors. Last, but certainly not least, all met new friends and enjoyed the camaraderie of the fun group of men and women.“I want to express how much I enjoyed this year’s family tour,” said Maureen Arigi, wife of Kroger executive Tom Arigi. “It is always great to see new and fun places and learn a bit about the local attractions. Even more important, I appreciate that family is included in the LPM annual meeting. Being part of the meeting allows me to meet with all the friends and business leaders Tom has worked with over the years. I know planning an event like the LPM annual meeting is no easy task. I appreciate those who worked so hard to make it a success!”John Vece, husband of Protos Security executive Kris Vece, said, “The family tour was a great way to meet and greet with other LP spouses. Together we took a boat tour from Hilton Head Island up to old town Bluffton, where we learned about local oyster harvesting, shopped, and enjoyed a nice lunch. It was a perfect day! Thank you for including me.” Stay UpdatedGet critical information for loss prevention professionals, security and retail management delivered right to your inbox.  Sign up nowlast_img read more

Getting To Know The MutationObserver API

first_imgSee live demo →After you start the observer, try using CTRL-B and CTRL-I to format the editable text. You’ll notice this works much more effectively than the previous characterData example. In this case, the broken up child nodes don’t affect the observer because we’re observing all nodes inside the targeted node, instead of a single text node.Recording Old ValuesOften when observing for changes to the DOM, you’ll want to take note of the old values and possibly store them or use them elsewhere. This can be done using a few different properties in the options object.attributeOldValueFirst, let’s try logging out the old attribute value after it’s changed. Here’s how my options will look along with my callback:options = { attributes: true, attributeOldValue: true}function mCallback (mutations) { for (let mutation of mutations) { if (mutation.type === ‘attributes’) { // Do something here… } }} function mCallback(mutations) { for (let mutation of mutations) { if (mutation.type === ‘characterData’) { // Do something here… } }}Notice again the type being looked for in the callback function is characterData.See live demo →In this example, I’m looking for changes to a specific text node, which I target via element.childNodes[0]. This is a little hacky but it will do for this example. The text is user-editable via the contenteditable attribute on a paragraph element.Challenges When Observing For Character Data ChangesIf you’ve fiddled around with contenteditable, then you might be aware that there are keyboard shortcuts that allow for rich text editing. For example, CTRL-B makes text bold, CTRL-I makes text italic, and so forth. This will break up the text node into multiple text nodes, so you’ll notice the MutationObserver will stop responding unless you edit the text that’s still considered part of the original node.I should also point out that if you delete all the text, the MutationObserver will no longer trigger the callback. I’m assuming this happens because once the text node disappears, the target element is no longer in existence. To combat this, my demo stops observing when the text is removed, although things do get a little sticky when you use rich text shortcuts.But don’t worry, later in this article, I’ll discuss a better way to use the characterData option without having to deal with as many of these quirks.Observing For Changes To Specified AttributesEarlier I showed you how to observe for changes to attributes on a specified element. In that case, although the demo triggers a class name change, I could have changed any attribute on the specified element. But what if I want to observe changes to one or more specific attributes while ignoring the others?I can do that using the optional attributeFilter property in the option object. Here’s an example:let options = { attributes: true, attributeFilter: [‘hidden’, ‘contenteditable’, ‘data-par’] }, observer = new MutationObserver(mCallback);function mCallback (mutations) { for (let mutation of mutations) { if (mutation.type === ‘attributes’) { // Do something here… } }}As shown above, the attributeFilter property accepts an array of specific attributes that I want to monitor. In this example, the MutationObserver will trigger the callback each time one or more of the hidden, contenteditable, or data-par attributes is modified.See live demo →Again I’m targeting a specific paragraph element. Notice the select drop down that chooses which attribute will be changed. The draggable attribute is the only one that won’t qualify since I didn’t specify that one in my options.Notice in the code that I’m again using the attributeName property of the MutationRecord object to log which attribute was changed. And of course, as with the other demos, the MutationObserver won’t start monitoring for changes until the “start” button is clicked.One other thing I should point out here is that I don’t need to set the attributes value to true in this case; it’s implied due to attributesFilter being set to true. That’s why my options object could look as follows, and it would work the same:let options = { attributeFilter: [‘hidden’, ‘contenteditable’, ‘data-par’]}On the other hand, if I explicitly set attributes to false along with an attributeFilter array, it wouldn’t work because the false value would take precedence and the filter option would be ignored.Observing For Changes To Nodes And Their Sub-TreeSo far when setting up each MutationObserver, I’ve only been dealing with the targeted element itself and, in the case of childList, the element’s immediate children. But there certainly could be a case where I might want to observe for changes to one of the following:An element and all its child elements;One or more attributes on an element and on its child elements;All text nodes inside an element.All of the above can be achieved using the subtree property of the options object.childList With subtreeFirst, let’s look for changes to an element’s child nodes, even if they’re not immediate children. I can alter my options object to look like this:options = { childList: true, subtree: true}Everything else in the code is more or less the same as the previous childList example, along with some extra markup and buttons.See live demo →Here there are two lists, one nested inside the other. When the MutationObserver is started, the callback will trigger for changes to either list. But if I were to change the subtree property back to false (the default when it’s not present), the callback would not execute when the nested list is modified.Attributes With subtreeHere’s another example, this time using subtree with attributes and attributeFilter. This allows me to observe for changes to attributes not only on the target element but also on the attributes of any child elements of the target element:options = { attributes: true, attributeFilter: [‘hidden’, ‘contenteditable’, ‘data-par’], subtree: true} See live demo →Start the observer, then try the add/remove buttons for both lists. The only catch here is that if you hit one of the “stop” buttons, the observer will stop observing for both lists, not just the one it’s targeting.Moving A Node Tree That’s Being ObservedOne last thing I’ll point out is that a MutationObserver will continue to observe for changes to a specified node even after that node has been removed from its parent element.For example, try out the following demo:See live demo →This is another example that uses childList to monitor for changes to the child elements of a target element. Notice the button that disconnects the sub-list, which is the one being observed. Click the “Start…” button, then click the “Move…” button to move the nested list. Even after the list is removed from its parent, the MutationObserver continues to observe for the specified changes. Not a major surprise that this happens, but it’s something to keep in mind.ConclusionThat covers just about all the primary features of the MutationObserver API. I hope this deep dive has been useful for you to get familiar with this standard. As mentioned, browser support is strong and you can read more about this API on MDN’s pages.I’ve put all the demos for this article intoa CodePen collection, should you want to have an easy place to mess around with the demos. (dm, il)From our sponsors: Getting To Know The MutationObserver API Try out the demo →Again, I’ve abbreviated the code for clarity, but the important parts are:The options object is using the attributes property, set to true to tell the MutationObserver that I want to look for changes to the targeted element’s attributes.The mutation type I’m testing for in my loop is attributes, the only one that qualifies in this case.I’m also using the attributeName property of the mutation object, which allows me to find out which attribute was changed.When I trigger the observer, I’m passing in the paragraph element by reference, along with the options.In this example, a button is used to toggle a class name on the targeted HTML element. The callback function in the mutation observer is triggered every time the class is added or removed.Observing For Character Data ChangesAnother change you might want to look for in your app is mutations to character data; that is, changes to a specific text node. This is done by setting the characterData property to true in the options object. Here’s the code:let options = { characterData: true }, observer = new MutationObserver(mCallback); Getting To Know The MutationObserver API Getting To Know The MutationObserver API Louis Lazaris 2019-04-26T13:30:16+02:00 2019-04-26T12:34:22+00:00In complex web apps, DOM changes can be frequent. As a result, there are instances where your app might need to respond to a specific change to the DOM.For some time, the accepted way to look for changes to the DOM was by means of a feature called Mutation Events, which is now deprecated. The W3C-approved replacement for Mutation Events is the MutationObserver API, which is what I’ll be discussing in detail in this article.A number of older articles and references discuss why the old feature was replaced, so I won’t go into detail on that here (besides the fact that I wouldn’t be able to do it justice). The MutationObserver API has near complete browser support, so we can use it safely in most — if not all — projects, should the need arise.Basic Syntax For A MutationObserverA MutationObserver can be used in a number of different ways, which I’ll cover in detail in the rest of this article, but the basic syntax for a MutationObserver looks like this:let observer = new MutationObserver(callback); See live demo →Notice the use of the attributeName and oldValue properties of the MutationRecord object. Try the demo by entering different values in the text field. Notice how the log updates to reflect the previous value that was stored.characterDataOldValueSimilarly, here’s how my options would look if I want to log old character data:options = { characterData: true, subtree: true, characterDataOldValue: true} function callback (mutations) { // do something here}observer.observe(targetNode, observerOptions);The first line creates a new MutationObserver using the MutationObserver() constructor. The argument passed into the constructor is a callback function that will be called on each DOM change that qualifies.The way to determine what qualifies for a particular observer is by means of the final line in the above code. On that line, I’m using the observe() method of the MutationObserver to begin observing. You can compare this to something like addEventListener(). As soon as you attach a listener, the page will ‘listen’ for the specified event. Similarly, when you start observing, the page will begin ‘observing’ for the specified MutationObserver.The observe() method takes two arguments: The target, which should be the node or node tree on which to observe for changes; and an options object, which is a MutationObserverInit object that allows you to define the configuration for the observer.The final key basic feature of a MutationObserver is the disconnect() method. This allows you to stop observing for the specified changes, and it looks like this:observer.disconnect();Options To Configure A MutationObserverAs mentioned, the observe() method of a MutationObserver requires a second argument that specifies the options to describe the MutationObserver. Here’s how the options object would look with all possible property/value pairs included:let options = { childList: true, attributes: true, characterData: false, subtree: false, attributeFilter: [‘one’, ‘two’], attributeOldValue: false, characterDataOldValue: false};When setting up the MutationObserver options, it’s not necessary to include all these lines. I’m including these simply for reference purposes, so you can see what options are available and what types of values they can take. As you can see, all except one are Boolean.In order for a MutationObserver to work, at least one of childList, attributes, or characterData needs to be set to true, otherwise an error will be thrown. The other four properties work in conjunction with one of those three (more on this later).So far I’ve merely glossed over the syntax to give you an overview. The best way to consider how each of these features works is by providing code examples and live demos that incorporate the different options. So that’s what I’ll do for the rest of this article.Observing Changes To Child Elements Using childListThe first and simplest MutationObserver you can initiate is one that looks for child nodes of a specified node (usually an element) to be added or removed. For my example, I’m going to create an unordered list in my HTML, and I want to know whenever a child node is added or removed from this list element.The HTML for the list looks like this: read more

Signs of ancient cells and proteins found in dinosaur fossils

first_imgThe cupboards of the Natural History Museum in London hold spectacular dinosaur fossils, from 10-centimeter, serrated Tyrannosaurus rex teeth to a 4-meter-long hadrosaur tail. Now, researchers are reporting another spectacular find, buried in eight nondescript fossils from the same collection: what appear to be ancient red blood cells and fibers of ancient protein.Using new methods to peer deep inside fossils, the study in this week’s issue of Nature Communications backs up previous, controversial reports of such structures in dinosaur bones. It also suggests that soft tissue preservation may be more common than anyone had guessed. “It’s encouraging,” especially because the proteins were found in what appear to be the most unremarkable, ordinary bones, says Matthew Collins, an archaeologist and biochemist at the University of York in the United Kingdom. But he and others caution that the team hasn’t proven beyond doubt that the structures do contain ancient proteins.As early as the 1970s, researchers captured images of what looked like cellular structures inside dinosaur fossils. But did the structures contain actual tissue? Proteins commonly decay hundreds to thousands of years after an organism dies, but in rare cases they have been known to survive up to 3 million years. In a series of studies beginning a decade ago, a team led by North Carolina State University paleontologist Mary Schweitzer reported that they had extracted what appeared to be collagen, the most abundant protein in bone, from a 68-million-year-old T. rex fossil. They sequenced fragments of the protein and concluded that it closely matched that of birds, dinosaurs’ living descendants (see here and here). But other teams haven’t been able to replicate the work, and others suggested that the collagen could be contamination.Sign up for our daily newsletterGet more great content like this delivered right to you!Country *AfghanistanAland IslandsAlbaniaAlgeriaAndorraAngolaAnguillaAntarcticaAntigua and BarbudaArgentinaArmeniaArubaAustraliaAustriaAzerbaijanBahamasBahrainBangladeshBarbadosBelarusBelgiumBelizeBeninBermudaBhutanBolivia, Plurinational State ofBonaire, Sint Eustatius and SabaBosnia and HerzegovinaBotswanaBouvet IslandBrazilBritish Indian Ocean TerritoryBrunei DarussalamBulgariaBurkina FasoBurundiCambodiaCameroonCanadaCape VerdeCayman IslandsCentral African RepublicChadChileChinaChristmas IslandCocos (Keeling) IslandsColombiaComorosCongoCongo, The Democratic Republic of theCook IslandsCosta RicaCote D’IvoireCroatiaCubaCuraçaoCyprusCzech RepublicDenmarkDjiboutiDominicaDominican RepublicEcuadorEgyptEl SalvadorEquatorial GuineaEritreaEstoniaEthiopiaFalkland Islands (Malvinas)Faroe IslandsFijiFinlandFranceFrench GuianaFrench PolynesiaFrench Southern TerritoriesGabonGambiaGeorgiaGermanyGhanaGibraltarGreeceGreenlandGrenadaGuadeloupeGuatemalaGuernseyGuineaGuinea-BissauGuyanaHaitiHeard Island and Mcdonald IslandsHoly See (Vatican City State)HondurasHong KongHungaryIcelandIndiaIndonesiaIran, Islamic Republic ofIraqIrelandIsle of ManIsraelItalyJamaicaJapanJerseyJordanKazakhstanKenyaKiribatiKorea, Democratic People’s Republic ofKorea, Republic ofKuwaitKyrgyzstanLao People’s Democratic RepublicLatviaLebanonLesothoLiberiaLibyan Arab JamahiriyaLiechtensteinLithuaniaLuxembourgMacaoMacedonia, The Former Yugoslav Republic ofMadagascarMalawiMalaysiaMaldivesMaliMaltaMartiniqueMauritaniaMauritiusMayotteMexicoMoldova, Republic ofMonacoMongoliaMontenegroMontserratMoroccoMozambiqueMyanmarNamibiaNauruNepalNetherlandsNew CaledoniaNew ZealandNicaraguaNigerNigeriaNiueNorfolk IslandNorwayOmanPakistanPalestinianPanamaPapua New GuineaParaguayPeruPhilippinesPitcairnPolandPortugalQatarReunionRomaniaRussian FederationRWANDASaint Barthélemy Saint Helena, Ascension and Tristan da CunhaSaint Kitts and NevisSaint LuciaSaint Martin (French part)Saint Pierre and MiquelonSaint Vincent and the GrenadinesSamoaSan MarinoSao Tome and PrincipeSaudi ArabiaSenegalSerbiaSeychellesSierra LeoneSingaporeSint Maarten (Dutch part)SlovakiaSloveniaSolomon IslandsSomaliaSouth AfricaSouth Georgia and the South Sandwich IslandsSouth SudanSpainSri LankaSudanSurinameSvalbard and Jan MayenSwazilandSwedenSwitzerlandSyrian Arab RepublicTaiwanTajikistanTanzania, United Republic ofThailandTimor-LesteTogoTokelauTongaTrinidad and TobagoTunisiaTurkeyTurkmenistanTurks and Caicos IslandsTuvaluUgandaUkraineUnited Arab EmiratesUnited KingdomUnited StatesUruguayUzbekistanVanuatuVenezuela, Bolivarian Republic ofVietnamVirgin Islands, BritishWallis and FutunaWestern SaharaYemenZambiaZimbabweI also wish to receive emails from AAAS/Science and Science advertisers, including information on products, services and special offers which may include but are not limited to news, careers information & upcoming events.Required fields are included by an asterisk(*)The new study, led by materials scientist Sergio Bertazzo and paleontologist Susannah Maidment, both of Imperial College London, has a different strategy for hunting down ancient proteins. Bertazzo, an expert on how living bones incorporate minerals, uses a tool called a focused ion beam to slice through samples, leaving pristine surfaces that are ideal for high-resolution imaging studies. He teamed up with Maidment to apply the technique to eight chunks of dinosaur toe, rib, hip, leg, and claw.What they found shocked them. Imaging the fresh-cut surfaces with scanning and transmission electron microscopes, “we didn’t see bone crystallites” as expected, Maidment says. “What we saw instead was soft tissue. It was completely unexpected. My initial response was these results are not real.”The U.K. team tested more fossils and ran microscopic samples from what appear to be collagen fibers through a mass spectrometer to get the weight of the component molecules. The weights came back as identical to those of the three most common amino acids in collagen, the team reports.But outsiders, including Schweitzer, say that the weights aren’t conclusive proof that the molecules being analyzed are amino acids, or that they came from a dinosaur rather than a contaminant. A different type of mass spectrometer that can provide the sequence of the amino acids in a protein fragment would strongly suggest the existence of collagen and replicate the earlier work, Collins says. Maidment says the team hopes to do such studies soon. If they succeed, the work may spur additional efforts to isolate dinosaur proteins and understand how they differed from those of their modern relatives.last_img read more

Vishwanathan Anand declines doctorate over nationality controversy

first_imgA move to confer an honorary doctorate on world chess champion Vishwanathan Anand was on Tuesday embroiled in a raging controversy over his citizenship, forcing him to decline the honour at least for now.After the Union Human Resource Development Ministry raised doubts over the nationality of Anand, who holds an Indian passport but lives in Spain, the University of Hyderabad had to delay the function to confer the honour on him.With his ministry’s name figuring in the controversy, HRD Minister Kapil Sibal spoke to Anand and is understood to have urged him to accept the award.But after media reported the delay, the University of Hyderabad decided to confer the doctorate to Anand at a function on Tuesday night.”We are ready to award the honorary doctorate to Anand. The doctorate has only been delayed and not denied as the HRD Ministry has raised doubts over the chess champion’s nationality,” Head of Mathematics Department in the University Rajat Tandon told PTI.”We learnt somewhere in July this year that the HRD Ministry is suspecting Anand’s nationality. We sent several clarifications to them but still they have not cleared the file related to the award of honorary doctorate,” he said.Coinciding with the International Conference on Maths currently on here, the University was planning to honour Anand along with Harvard University mathematician David Mumford.In the wake of the controversy, Tandon said the university planned to hold a function tonight to honour Anand but the champion declined to accept it in view of the controversy.advertisementStating that they were left “extremely embarrassed” over the entire issue, Tandon, also the organizing secretary of the ongoing International Congress of Mathematicians, apologised to Anand over this.last_img read more