text:
The Two Cathedrals of Zaragoza, Spain
December 26, 2021 December 14, 2021 by Tom Bartel
The vaulted ceiling, and organ, of La Seo Cathedral of Zaragoza.
Zaragoza, the ancient capital of Aragón, has, if you will, competing cathedrals. There is the older Cathedral of the Savior (Catedral del Salvador, known as La Seo) and the Cathedral of Our Lady of the Pillar (La Basilica de Nuestra Señora del Pilar, or simply, El Pilar.) The rivalry between the two cathedrals was only settled in the 17th Century when the Pope created them co-cathedrals, merging their administration under one Canon. So, in actuality, both churches hold the title Cathedral of Zaragoza.
The Cathedral of the Savior – La Seo
El Pilar certainly leads in the number of pilgrims it attracts, because that church houses the pillar which was, according to the Church, the site of an apparition of the Virgin Mary to Saint James (known as Santiago in Spain). El Pilar, as it currently exists, was mostly built in the 18th Century. La Seo, though, is much older, as the building dates back to the reconquista of Aragón in the early 12th Century. The Aragonese word "seo", by the way, means "see" as in the seat of a bishop, in case you were wondering.
The Mudejar style exterior of the La Seo Cathedral displays its age and history.
The mudéjar-style exterior of La Seo hearkens back to its history as a former mosque. The Christians first built a Romanesque style church on the site of the demolished mosque, but when La Seo was rebuilt in the early 14th Century in a Gothic style, the original Romanesque ground floor was gloriously topped with mudéjar decoration.
The sculpted side of the La Seo choir.
Although the main style of the La Seo construction is Gothic, during the subsequent centuries the church was overtaken by Baroque elements, especially in the myriad chapels and the choir.
The sides of the enclosed choir are intricately sculpted from top to bottom, creating a full enclosure within the larger church. The front and rear of the choir are even more spectacularly ornate.
The golden front gates of the La Seo choir.
The front gates are golden and topped with multiple shields, disembodied faces, and finally, a statue of Christ flanked by saints. The grand tableau borders on the characteristic tastelessness that over-the-top Baroque can evoke.
The chapel of the Holy Cross at the rear of the choir.
The excess of the choir's front is redeemed somewhat by the chapel of the Holy Cross that is affixed to the rear, opposite the gilded gates. There, a crucifixion is flanked by twisted black marble columns reminiscent of Bernini's altar in Rome's Saint Peter's. The columns support a giant Baroque scroll, which in turn becomes the base for a triumphant risen Christ.
The Chapel of Santiago in La Seo: another example of the unavoidable tendency toward the Baroque within the older Gothic church.
But, while the choir is a remarkable example of the ornate sculptural style of the day, don't forget to also spend some time in the various chapels, where painting also flourishes.
Why stop with the chapels, when there are Gothic pillars that can be highly decorated, too?
The columns between the chapels were not immune to the tendency to over decorate. The tableau, above, for example, has a vaguely Oriental bent, especially in the figures on the right that resemble Japanese temple guardians, and the Chinese-style lion at the feet of the warrior on the left.
Not all the original Gothic decoration gave way to the Baroque.
But be assured that not all the original Gothic art disappeared. Here's the altar in one of the chapels that survived the Baroque onslaught. A much simpler, yet still beautiful, collection of figurative art.
A detail from one of the several enormous tapestries in the upstairs museum of La Seo.
While you can easily spend hours perusing the details of the various elements of La Seo, don't neglect the opportunity to go upstairs in the adjacent museum to see the spectacular Flemish Renaissance tapestries. Flanders was the commercial capital of Europe and was under the control of Spain in the 16th Century. These highest examples of the art luckily made their way to Zaragoza.
If you love European church art and architecture like we do, you might want to check out the book Europe's 100 Best Cathedrals, by Simon Jenkins. Jenkins is a noted British journalist and has published several books of European and British history, concentrating on the art. The American edition of the book, with a title change to Cathedrals: Masterpieces of Architecture, Feats of Engineering, Icons of Faith, will be issued in February 2022. Two of my photos (of the Cathedrals of Salamanca and Toledo, Spain) are in the book.
The Basilica of Our Lady of the Pillar – El Pilar
Looking over the roof of El Pilar and its Moorish-inspired tile cupolas from one of its towers. That's La Seo and its tower in the background, and the Ebro River on the left.
According to the ancient local tradition, Saint James was preaching the Gospel in Spain, but was disheartened by the resistance of the Iberians. Tradition says the Mother of God appeared to him on the banks of the Ebro and gave him a column of stone and instructed him to build a church in her honor. James is believed to have had a small chapel built in Mary's honor, the first church ever dedicated to her.
Numerous churches have since been built upon the site. The chapel built by James later gave way to a basilica during the time of the first Christian emperor, Constantine. Subsequently, a Romanesque church was built and damaged by fire in the 15th Century. Following that, a Gothic/Mudéjar style church was built.
The present church in Baroque style was begun in 1681 and completed in 1686. In 1725, it was decided to change the orientation of the Chapel of the Pillar and enclose it in an even larger edifice. The building then realized its present dimensions of 130 meters long by 67 wide, with eleven cupolas and four towers.
The Goya fresco on the ceiling of the aisle of El Pilar.
It's good to know a little about the cathedral before you go, otherwise you might forget to look up at the ceiling frescoes. It would be especially bad luck to miss this one, by Zaragoza native son, Francisco de Goya. The ceiling panel was one of Goya's first commissions, before he gained fame as the court painter to the Spanish king Carlos IV, and before he composed his most famous works now in The Prado. (Be sure you visit the Goya Museum while you're in Zaragoza, too.)
The altar surrounding the venerated pillar. Spectacular in its own right.
According to the story as depicted at the altar of the pillar, the Virgin Mary appeared to Saint James (Santiago) to encourage him in his efforts to bring the message of Jesus to the Iberian people in the year 40 AD. The centerpiece is the Virgin looking down on Saint James on the left, and pointing to the pillar she appeared on on the right. This site ranks right up there with other appearances of the Virgin in places like Fatima, Lourdes, and Guadalupe. In other words, it's a pretty special place to Catholics.
The pillar itself, supporting a small statue of the Virgin and child, and a crown/halo that was added in the early 20th Century.
The legendary pillar sits at the right side of the altar and supports an unusually modest – for this church – statue of the Virgin and Child. It's tiny size, only 39 centimeters/15 inches high, and dark material almost allow it to disappear in front of the silver and gold crown erected behind it.
Supposedly the pillar has never moved from its original placement at the time of Santiago. All the subsequent churches have been built around it.
At the back of the altar is a place where a pilgrim can kneel and kiss the pillar.
At the back of the altar is a niche which exposes a small, worn, bit of the stone pillar. As the sign says, this is where one can venerate and kiss the pillar. The little exposed bit of the pillar in the inner oval shows the grooves from the lips that have touched it over the centuries. Now, though, the kissing part is roped off due to Covid, so the veneration is done from a safe distance.
Luckily, the alabaster altar from the earlier Gothic iteration of the church was preserved.
Opposite the altar of the pillar is the alabaster Gothic-Renaissance altar from the 15th Century Gothic church. This altar was sculpted by the Valencian artist Damià Forment between 1509-12. It was preserved when that basilica was destroyed by fire and reinstalled as the main altar in the present 17th-century structure.
The massive organ sits atop the beautiful carved choir.
Another spectacular feature of the cathedral is the choir and organ, parts of which also date from the Gothic cathedral. The organ was built so large in order to compete with the organ of La Seo, which it dwarfs.
A carving on one of the choir seats.
The choir features intricately carved seats, with biblical scenes, as well as odd grotesques like the one above.
As I mentioned above, the Cathedral of El Pilar gets many more visits per day than does La Seo. In fact, there is a mass celebrated for the pilgrims every hour every day from 8:30 a.m. to 8:30 p.m. and tourist visits are therefore much more difficult to obtain. Luckily, we were able to gain special permission to visit and photograph after the last mass of the day.
Thanks to the Tourism Office of Zaragoza, and especially to their excellent representative Diana Ortega, for arranging our visits to the two Zaragoza cathedrals, and especially for arranging for us to photograph in the cathedrals, which is allowed only by special permission. Also, muchissimas gracias al Don Ignacio Sebastián Ruiz Hernández, the Director of the Artistic Patrimony of the Cathedrals of Zaragoza, for the personal tour. Many thanks, too, to Spain Tourism, for helping to arrange our latest trip to our favorite country. Also, thank you to Eurail rail passes for getting us to Zaragoza on the Spanish national rail service, RENFE.
La Seo, especially its exterior, makes up part of a Spanish UNESCO World Heritage site, the Mudéjar Architecture of Aragon. Both La Seo and El Pilar are among the best cathedrals of Spain. Click the link to see our post on many of the other Spanish Cathedrals we've visited and photographed.
You can help yourself get ready for your own travels by reading our Get Started Planning Your Trip Now page.We love traveling–with the right gear. We've gathered a lot of the stuff we use to make travel more pleasant and efficient all on one page. Shop our Travel Past 50 Amazon page to find our favorite gear. If you purchase something from the store, Travel Past 50, as an Amazon affiliate, may receive a small commission at no extra charge to you. Thanks.
We never leave home without our travel insurance. Nor should you. Search for the travel insurance from Allianz that best meets your needs, whether it be an annual plan or a single trip.
You can see (and buy prints) of most of our travel photos in one place on this page.
Categories Europe, Spain, Unesco World Heritage Sites Tags church, churches, Zaragoza


Junghye Yoon is an award-winning designer with 2 featured award-winning projects.
Honeydew Rabbit has children's best interests at heart and values their fun and safe experience. The smiles of little kings and queens of the world never fail to warm the atmosphere. Honeydew Rabbit keeps children's smiles in mind. We always strive to create something delightful, not dull, that would make a child smile. Honeydew Rabbit wants to give only the best to children. Non-toxic, environmentally-friendly materials and thoughtful, safe designs protect children's health and safety. All production processes take place in Korea, which ensures easy quality control. A smile from a kid makes the parents quickly forget the hardship of childcare. We feel genuine excitement thinking about a child happily playing with our products. We are committed to creating something that will make parents at ease and children happy. Honeydew Rabbit means 'a rabbit wearing the rind of an white honeydew melon on its head'. The color white signifies children's pure hearts, while the rabbit wearing the melon on its head symbolizes children's simple-mindedness.


text:
Tag: studies
2 studies paint encouraging picture of Covid vaccine performance
Two new studies published Wednesday report good news about the updated Covid-19 vaccine, with one suggesting it is more effective than the previous monovalent vaccine and the other showing that…
Real-world studies show updated Covid-19 boosters offer important protection against urgent care visits and hospitalizations
CNN — Although the updated Covid-19 vaccines don't offer complete protection against a trip to the hospital or urgent care, they do offer important defense against the virus, particularly for…
Structural studies offer 'how-to' guide for designing cancer drugs — ScienceDaily
To design drugs that stall the growth of aggressive cancers, it helps to know the structures of the proteins that are revving the cancers' engines. In a series of three…
Pair of studies uncover surprising new roles for spinal cord and brainstem in touch — ScienceDaily
The sense of touch is essential to almost everything we do, from routine tasks at home to navigating unfamiliar terrains that may conceal dangers. Scientists have long been interested in…
Studies in mice suggest circuitry role for missing gene — ScienceDaily
Part of understanding the underlying causes of autism spectrum disorder relies on figuring out which cells' signaling patterns in the brain are disrupted, and when during nervous system development the…
A common dietary fiber promotes allergy-like immune responses in preclinical studies — ScienceDaily
A type of dietary fiber called inulin, commonly used in health supplements and known to have certain anti-inflammatory properties, can also promote an allergy-related type of inflammation in the lung…
WCSU's Institute for Holistic Health Studies offers 'Navigating the New Normal' workshop on Nov. 2
Western Connecticut State University's Institute for Holistic Health Studies invites the public to attend a program that will help participants deal with the "new normal" we are experiencing after the…
Hundreds of peer-reviewed studies to be RETRACTED because they were "manipulated" – NaturalNews.com
(Natural News) Another couple hundred peer-reviewed papers are slated for removal from the journals in which they were published after it was revealed that they are all "manipulated." The latest…
Vitamin D doesn't prevent COVID-19, studies find
Vitamin D doesn't prevent COVID-19, studies find Vitamin D supplements do not protect individuals against COVID-19 or other respiratory infections, according to two large clinical trials published yesterday in BMJ.…
Vitamin D won't protect you from Covid or respiratory infections, studies say
Vitamin D supplementation at either dose "did not result in reduced risk of all-cause acute respiratory infections (ARI), or in risk or severity of COVID-19 specifically," said study author Dr.…

redpajama_set_name: RedPajamaCommonCrawl


text:
Sheykhvanlu () may refer to:
 Sheykhanlu-ye Olya
 Sheykhanlu-ye Sofla

redpajama_set_name: RedPajamaWikipedia


These boxes are ideal for storing craft items. They have been designed and built to withstand the hard knocks of storage. They stack easily, minimising storage footprint. Clips are hinged from either end for quick access without removing the lid.
Sistema have designed a range of accessories so that you can customise your storage to meet your needs more effectively.
A very handy size for storaging gardening equipment. Boxes have been designed and built to withstand the hard knocks of storage. They stack easily, minimising storage footprint. Clips are hinged from either end for quick access without removing the lid.
Perfect for storing linens and toys under your bed. Boxes have been designed and built to withstand the hard knocks of storage. They stack easily, minimising storage footprint. Clips are hinged from either end for quick access without removing the lid.
Sistema have designed a range of accessories so that you can customise your storage.
Team up with our filing system clips and suspension files to make a mobile office. They have been designed and built to withstand hard knocks of storage. They stack easily, minimising storage footprint. Clips are hinged from either end for quick access without removing the lid.
When you've got lots of things to store use these bins to keep your garage tidy. Boxes have been designed and built to withstand the hard knocks of storage. They stack easily, minimising storage footprint. Clips are hinged from either end for quick access without removing lid.
The biggest Sistema bin is built to keep all your sporting equipment, toys and household items. They have been made to withstand the hard knocks of storage. They stack easily, minimising storage footprint. Clips are hinged from either end for quick access without removing the lid.
A range of accessories have been designed so you can customise your storage.


text:
module TimelineHelper
  class TimelineWidget
    include ActionView::Helpers::JavaScriptHelper

    def initialize()
      @events = []
    end

    def add_event(date1, date2, title, attrs={})
      dates = []
      dates << TimelineWidget.jsdate(date1) unless date1.nil?
      dates << TimelineWidget.jsdate(date2) unless date2.nil?

      @events << "{
        dates: [#{dates.join(',')}],
        title: '#{escape_javascript(title)}',
        attrs: #{attrs.to_json}
      }"
    end

    def add_custom_event(code)
      @events << code
    end

    def events
      "[#{@events.join(',')}]"
    end

    def script(element_id, var_name, days, start_date, end_date)
      "<script>
        var #{var_name} = #{events};
        var timeline = new Chronoline(document.getElementById('#{escape_javascript(element_id)}'), #{var_name},
          {animated: true,
          draggable: true,
          visibleSpan:  DAY_IN_MILLISECONDS * #{days},
          fitVisibleSpan: false,
          labelFormat: '',
          markToday: false,
          eventHeigh: 3,
          topMargin: 0,
          startDate: #{TimelineWidget.jsdate(start_date)},
          endDate: #{TimelineWidget.jsdate(end_date)},
          floatingSubLabels: false,
          scrollLeft: prevSemester,
          scrollRight: nextSemester
        });
      </script>"
    end

    def self.jsdate(date)
      "new Date(#{date.year}, #{date.month - 1}, #{date.day})"
    end

    def self.color_attrs(color)
      {
        fill: color,
        stroke: color,
      }
    end

  end

end

redpajama_set_name: RedPajamaGithub


text:
Donohue, Joseph W., 1935-
Joseph Donohue Collection of Theatre Programs and Theatrical Ephemera
23 boxes 12 linear feet
Call no.: MS 696
An historian of modern British drama, Joseph Donohue was a longtime member of the Department of English at UMass Amherst. A native of Brookline, Mass., Donohue was educated at Johns Hopkins and Georgetown before receiving his doctorate at Princeton (1965), and he studied directing at both Columbia and Yale. After five years at Princeton, he joined the faculty at UMass in 1971, where he remained for thirty four years. The author of numerous articles and books on the British and Irish theatre, Donohue was author — among many other works — of Dramatic Character in the English Romantic Age (1970) and Theatre in the Age of Kean (1975) and editor of the London Stage, 1800-1900 Project. A past president of the American Society for Theatre Research, he was also a fixture in local performances, including the Valley Light Opera Company. Upon retirement from the department in 2005, Donohue was named Professor Emeritus.
Consisting of hundreds of theatrical programs and other ephemera, the Donohue collection documents a lifetime of avid theater-going. The astonishing array of playwrights and plays represented in the collection, and the diversity of theatres (mostly in New York and London), provides a nearly exhaustively chronicle of Donohue's theatrical habits from his days as a graduate student to nearly the present.
Theater--England--LondonTheater--New York (State)--New York
EphemeraPlaybills
Related collections: Performing arts
Dmss


Express Gateway Enterprise is a microservices API gateway that lets Developer and DevOps quickly and easily expose microservices as APIs.
APIs are the connective tissue of the cloud. Make as many digital connections through APIs to expand your products and grow your customers more quickly.
Development and DevOps have lots of inter-dependencies. Express Gateway Enterprise enables your infrastructure and application to be defined the same way so they work better – together.
In the digital economy, APIs form the backbone of all cloud enabled integration. Express Gateway Enterprise acts as a single point of entry and makes internal and external API consumption easy for any consumer.
Express Gateway Enterprise collects all information about who, what and how APIs are being used to call upon your services. Get better insight and provide a superior experience for customers and partners while you increase profitability.
Express Gateway Enterprise is the gatekeeper between what your business exposes externally and what it runs internally. Create trust through security by allowing for breakthrough visibility and control over who can consume your APIs.
Express Gateway Enterprise runs on your public cloud account and utilizes it to its fullest capability without the lock-in and cost. As a true multi cloud gateway, Express Gateway Enterprise runs seamlessly on-premise and in any multi cloud combination through common infrastructure built on Kubernetes.
Today's web, mobile, and IoT applications are built using frameworks that talk to your backend exclusively through an API secured by an API gateway. Developing for the cloud means developing with APIs and a microservices API gateway.
Extend your products and features from existing customers and partners to more potential users by giving them access through web standard APIs. Start building the ecosystem around your digital offerings.
Modern enterprise applications are increasingly leveraging existing data and services both internal and external. Create seamless experiences for your customers and partners with the combined power of integrations enabled by a microservices API gateway.
Microservices are compartmentalizing how we build and think about the discreet parts that comprise applications. When it comes to unifying your microservices, a microservices API gateway enables internal service communication so you can focus on building microservice based applications that can scale in the cloud while be more easily maintained.
"Traditional tools bypassed the developer even though they are building and integrating to APIs. LunchBadger products build on this precept and marry it with a new ease for architects and business users."
An intuitive visual interface that is a "single pane of glass" to unify viewing and managing your API producers and consumers as one seamless experience.
Authentication, authorization, audit (AAA) and quality of service capabilities and integrations into your existing systems is powered by middleware from a library of over 3,000 community written modules.
A true microservices API gateway that is built like microservices itself. Pipelines are discrete sets of policies that can be deployed, replicated and scaled exactly like a microservices application.
User, applications, credentials and authorization scopes all ready to be used inside the box. The right extension points and modularity to interface with your existing consumer management systems of record for identity and authorization.
Declare your entire gateway's configuration and behavior dynamically through declarative and easy to understand YAML files that are continuous deploy/continuous development (CI/CD) and cloud native ready for container orchestration.
Auto deploy and scale multiple gateway instances easily into Kubernetes without worrying about dockerizing and container image management. Run in any combination of on-premise, public and private cloud that makes sense for your organization.
Stay up to date with the latest blog posts, announcements and how-tos written by developers for developers.


Jay D. Luzum, 45, of Exeter, passed away on Monday, June 7, in rural Mulligan. There is no public visitation. Memorial services are planned for 10:30 a.m. on Friday, June 11. A celebration service will follow at the Milligan Legion. Graveside services will be at the Bohemian National Cemetery in Milligan. Memorials are directed to the Milligan Sons of the American Legion. A full obituary will be in The Nebraska Signal.


text:
Creating Digital Scarcity for Mass Market Games
This post was originally posted on Medium by Rudy Koch on October 23rd, 2020. You can read the full article here.
This week marks the official launch of our Blankos Founder's Packs sale. We are proud to finally introduce you to the 4 new Blankos and all the cool stuff that comes with each of the packs. Even more than that we are so excited to announce that beta is officially launching on Nov 17th, and everyone who has bought a Founder's Pack gets guaranteed day 1 access to the private beta. I can't wait to party with you all.
With another big milestone out the door, I'd like to talk a bit about our vision for digital assets, and answer some of the questions from our community!
We set out 2 years ago with the goal of driving mass adoption of blockchain in the games industry. We were inspired by concepts like true ownership, verifiable scarcity, and secondary markets. We believe that these concepts are ushering in an exciting change in the way we design and think about game economies.
We assembled a world class team who have built some of the most prolific games in the industry. We are excited to tackle blockchain through the lens of mass market, AAA games. Blankos Block Party is built, first and foremost, to be a mass market game. If we want mass market gamers to adopt blockchain, we need to build a game they want to play. We can't lose sight of that.
Here's what that means:
As soon as we add blockchain to a mass market game, we are in uncharted territory.
We've had to introduce solutions that are going to be new to everyone.
And every step of the way, we ask ourselves: how do we bring all this awesome tech to market in a way that makes sense to mainstream gamers?
We are bringing blockchain to the masses because we share your passion. We want the industry to see the potential.
Relative Scarcity
We've heard a lot of questions about supply and limited quantity. It's a topic that's important to us, but it's also a concept we need to solve at scale in a game that could have millions of players.
We believe that owning a digital asset with actual utility in a game with the potential for millions of players is the future of blockchain asset ownership and gaming monetization. The game becomes a tangible platform for a true in-game economy. In this scenario, we believe owning an asset that is 1 of 5,000 or even 30,000 is a better opportunity than owning 1 of 5 assets that is traded in an ecosystem of a few thousand traders with no utility outside of trading between owners.
Founder's Packs
The Founder's Packs are an awesome opportunity to get day 1 access into the beta, celebrate your purchase as a founder in both our communication channels and in the game, and own some very cool NFTs to stand out. There is a cap set on each of the four packs but we aren't revealing that supply cap for a few reasons.
The primary reason is that we actually don't want a small group of buyers to do the math and buy out the entire inventory. This is important because we want this game in the hands of a strong early user base to jump start the game. This creates the basis of a long-term community and a healthy economy that will drive value to Blankos asset holders long-term vs being narrowly held by a few thousand traders that might not be planning to play the game at all. If we have too many asset holders who don't play the game, then we don't have a game. It's the usage of these items by mainstream gamers that helps create value.
Having said that, we have set these caps to what we anticipate will ultimately be significantly less than 1% of the total player base by the end of 2021. From our experience, game items with <1% ownership are indeed rare to players and are sought after more and more over the lifetime of a game thus driving value over time for NFT owners.
Where we're going
Something we like to say at Mythical is that we are not building blockchain games, we are building mass market games that use blockchain technology. This is an important distinction, because it means we're not just bringing blockchain to mass market for the first time, but we're also introducing mass market concepts to blockchain for the first time.
We are building games where NFTs are at the center of our game economies. Economies that enable us to create open ecosystems where liquidity, value, and digital assets can flow freely and globally between developers, creators, and players.
We are building this new economy with the goal of introducing it to millions of mainstream gamers. That means we need to design the economy from that perspective. If we hit this goal, then the definitions of scarcity and limited-quantity are on a completely different scale. When we hit our stride through launch and into our first season, we expect our Founder's Packs to be some of the most limited and coveted items ever made.
A few months ago, Blankos Block Party was featured in some of the biggest media channels in the games industry — a first for the blockchain industry. Mainstream gamers from around the globe watched our trailer, and joined the conversation on Discord. We saw crypto gamers and mainstream gamers come together to share their excitement for the same game.
With that said, as we go through beta and our next milestones, there's a lot of awesome stuff coming from us. We'll be bringing concepts to the table that will challenge the status quo and be new to everyone. We are breaking new ground.
Uphold UK and EU Update
Uphold will be making updates to new user onboarding following new requests from regulators.
#marketplace


text:
Jana, Sunirmal and Lim, Mi Ae and Baek, In Chan and Kim, Chang Hae and Seok, Sang Il (2008) Non-hydrolytic sol-gel synthesis of epoxysilane-based inorganic-organic hybrid resins. Materials Chemistry and Physics, 112 (3). pp. 1008-1014. ISSN 0254-0584
A silica-based inorganic-organic hybrid resins (IOHR) were synthesized by non-hydrolytic sol-gel process from 3-glycidoxypropyltrimethoxyrsi lane (GLYMO) and diphenylsilanediol (DPSD) at a fixed amount of (20 mol%) phenyltrimethoxysilane using barium hydroxide as a catalyst. The confirmation of condensation reaction in the IOHR was done by liquid state (29)Si NMR (Nuclear Magnetic Resonance) spectroscopy, measurement of viscosity as well as weight average molecular weight (W(m)) of the IOHR. The W(m) of the IOHR was varied from 1091 to 2151, depending upon the DPSD content. Fourier transform infrared (FTIR) spectroscopic measurements were performed to investigate the details of vibrational absorption bands in the IOHR. It was seen that up to 50 mol% of DPSD there were no absorption peaks in the region of 3000-3600 cm(-1) responsible for O-H groups and it reappeared at 60 mol% of DPSD due to some unreacted OH groups present in the resin. The IOHR at all the compositions was oily transparent liquid, miscible with various organic solvents like toluene, cyclohexanone, chloroform, tehrahydrofuran (THF), etc., and also commercial epoxy resins but immiscible with water. The color of the IOHR was pale yellow, which lightened with increasing DPSD content. The IOHR having 40-50 mol% ofDP5D were storable. The refractive index at 632.8 nm of the resin films varied from 1.556 to 1.588, depending upon the resin composition. Physico-chemical properties such as the thermal stability, visible transparency, etc. after curing were investigated as a function of the chemical composition. (C) 2008 Elsevier B.V. All rights reserved.
Sol-gel growth; Chemical synthesis; Optical materials; Coatings
Crystal Chemistry, Thermodynamics, Phase Equilibria
Sol Gel


text:
Wam/Abu Dhabi
Fiji keen to work with UAE to create global model of relocating climate-vulnerable communities: PM
khaleejtimes.com 01/16/2020 13:50:07 Wam/Abu Dhabi
Having trouble reading this article? Read the Original Article »
As Fiji faces bad impacts of climate change in the form of natural calamities and lands being inundated by rising water levels, the Pacific island nation plans to build a globally applicable solution with UAE's support.
"We are very keen to relocate climate-vulnerable communities; by building out a body of knowledge and experiences in relocating vulnerable people, we create models that can be applied globally, and we are keen to work with the UAE in this regard," the Fijian Prime Minister Frank Bainimarama told the Emirates News Agency, Wam.
"Fiji and the UAE share a close partnership, and we have been grateful for the UAE's assistance to affected Fijian communities in the aftermath of Cyclone Winston in 2016," he added in an exclusive interview in Abu Dhabi.
The ravages of climate change will force communities around the world to escape to more habitable regions, he pointed out.
An Oceanian island nation in the South Pacific Ocean with an area of 18,274 square kilometres and a population of over 900,000, Fiji lies about two-thirds of the way from Hawaii to New Zealand.
A global leader in the fight against climate change who also presided over the UN's leading climate change body, COP23, in 2017, Bainimarama revealed that climate talks with some world leaders in international forums had often been frustrating.
"All too often in the climate change space, we see international negotiations bogged down by bureaucracy and technicalities," he said.
"It is frustrating to attend these conferences and try to compel those high-emitting countries who are largely responsible for global temperature rise to act.
"Their economies are more insulated from climate change than small islands, developing states such as Fiji, so they are entering these negotiations from a place of privilege. We don't have that luxury in the Pacific.
"On the world stage, what we see over the next 50 years will depend entirely on the ambition of global climate action over the next decade.
"In November, at COP26 [the UN's leading climate change body meeting], the industrialised nations of the world must come with stronger commitments to slash emissions, or else the world of 2070 will be unrecognisable to the planet we know today," he added.
As part of the global efforts to achieve net-zero emissions by 2050, every nation can and must do more, the prime minister emphasised. "At the moment, our collective climate action plans are wildly off-track from the Paris Agreement's 1.5-degree target."
Bainimarama said his experience at Abu Dhabi Sustainability Week, ADSW, where he was a prominent guest and speaker alongside many other world leaders, was "rewarding" and his interaction with youngsters gave him hope about the future.
"My experience has been very rewarding; it has been valuable and encouraging to see what a historically oil-dependent country like the UAE is doing to secure a more sustainable future. If you can do it, other fossil fuel producing nations certainly have no excuse," he noted.
"I have also particularly enjoyed hearing from our young people; their passion and their innovative thinking has given me great hope for humankind's ability to turn the tides against climate change."
As Fiji is celebrating 50 years of Independence, the prime minister believes that the Fijian Constitution, introduced in 2013, is one of the nation's most enduring achievements since independence.
"Because it finally establishes the common and equal citizenry the Fijian people have yearned for decades. Under our constitution, every Fijian is guaranteed a vast range of civil, political and socioeconomic rights, as well as equal votes of equal value in a genuine democracy, undoing an unjust, ethnically-weighted electoral system," he explained.
"Looking forward to the next Fijian half-century, Fiji aims to lead by example in marrying sustainability with prosperity for our people."
Talking about Fiji's ambitious target of reaching net-zero emissions by 2050, he said, "Fiji has a clear strategy laying out how we plan to halve our emissions by 2030 and achieve net-zero emissions by mid-century. While our own emissions are negligible, we are prepared to set an example for larger economies to follow."
Fiji has banned single-use plastics, with a ban on Styrofoam (a kind of expanded polystyrene used especially for making food containers) coming next year.
"We are exploring a game-changing Pacific-wide partnership to decarbonise shipping networks. We are pursuing innovative nature-based solutions that lower emissions and help adapt communities to climate impacts," he said.
As part of involving the people in the path toward carbon neutrality, Fiji will table an "innovative" climate change law in parliament to create the collaborative environment necessary to implement the commitments under the Paris Agreement, the prime minister concluded.
Getting some related news for you...
Todays top news
Show todays news
Published on Thu, 16 Jan 2020 13:50:07 GMT, © All rights reserved by the publisher.
</> with in
Report · Archive · About


Having left her native South Africa in 2016, to make a new life in the UK with her husband Howard and young daughter Isobel, Jamie joined our KCFRT Heatstart Team in 2017.
As a fully qualified Paramedic in South Africa, Jamie was a fantastic addition to our team of volunteers; having all the necessary skills to help us support the Knutsford Community in "Saving Lives".
Jamie is also a very experienced professional Photographer and has now set up her own Photographic Company. Since arriving in the UK, she has given birth to a beautiful baby boy – Mark.
Jamie initially became a Heartstart Facilitator, but soon progessed to a fully quailified Heartstart Instructor, joining our other small team of Heartstart Instructors. Jamie gave her first Heartstart Course last month to 31 attendees!
Our dedicated volunteer Terry has had a great success with her fundraising scheme and has bene featured in the Knutsford Guardian this week. Well done Terry!
For a few years now at the KCFRT Christmas do awards have been awarded to several of our volunteers to demonsatrate how much their hard work is appreciated. The Knutsford Guardian has published an article about this years event. Click here to read it.
A team of tuneful volunteers seranaded customers of Booths in Knutsford on Saturday who were clearly impressed as they donated an incredible £1165! We are turely grateful for this generosity and we will be putting this money to good use across our initiatives all aimed at saving lives in Knutsford. THANK YOU!
Thanks also to the volunteers who helped make this possible including all our singers, musicians and bucket shakers.
If you missed out on hearing us, don't worry – we are in Booths again on Sunday 23rd December from 3 to 4pm.
Scroll down for information about our upcoming events!


text:
Class 5M – Production Brewery
July 1, 2015 by datachie
The Class 5 Brewery license is meant to be predominantly a brewing facility, with limited accommodation of the public on-site. The M5 (= manufacturer Class 5) is allowed to brew an unlimited amount of beer, and has the following restrictions/allowances:
§2–207. IN EFFECT
(a) In this section, "affiliate" means a person that directly or indirectly through one or more intermediaries controls, is controlled by, or is under common control with a holder of a Class 5 brewery license.
(b) There is a Class 5 brewery license.
(c) A license holder may:
(1) establish and operate a plant for brewing and bottling malt beverages at the location described in the license;
(2) import beer from a holder of a nonresident dealer's permit;
(3) contract to brew and bottle beer with and on behalf of the holder of a Class 2 rectifying license, Class 5 brewery license, Class 7 micro–brewery license, Class 8 farm brewery license, or a nonresident dealer's permit;
(4) sell and deliver beer to:
(i) a holder of a wholesaler's license that is authorized to acquire beer; or
(ii) a person outside of the State that is authorized to acquire beer;
(5) subject to subsection (i) of this section, serve, at no charge, samples of beer, consisting of a total of not more than 18 ounces of beer per visit, to an individual who:
(i) has attained the legal drinking age; and
(ii) is participating in a guided tour of the brewery or attends a scheduled promotional event or other organized activity at the brewery;
(6) subject to subsections (d) and (i) of this section, sell beer for off–premises consumption at retail in a container other than a keg to an individual participating in a guided tour of the brewery or attending a scheduled promotional event or other organized activity at the brewery; and
(7) subject to subsection (f) of this section, sell beer at the location described in the license for on–premises consumption.
(d) An individual may purchase beer under subsection (c)(6) of this section if the individual:
(1) purchases not more than 288 ounces of beer per visit; and
(2) has attained the legal drinking age.
(e) The annual license fee is $1,500.
(f) (1) A local licensing board may grant an on–site consumption permit to an applicant that holds a Class 5 brewery license and, subject to paragraph (6) of this subsection, a Class D beer license.
(2) Subject to the maximum volume limit under paragraph (4) of this subsection, a Class D beer license or an equivalent license under paragraph (6) of this subsection entitles the holder to sell to an individual who has attained the legal drinking age, for on–premises consumption at the brewery:
(i) beer:
1. of which the holder of the Class 5 license is the brand owner; and
2. that is fermented and brewed entirely at the brewery of the license holder;
(ii) beer that is fermented and brewed entirely at the brewery under contract with a brand owner who does not possess a Class 5 license; and
(iii) subject to paragraph (3) of this subsection, beer brewed at a location other than the Class 5 brewery if:
1. the brand owner of the beer is the holder of the Class 5 license or an affiliate of the holder of the Class 5 license;
2. the number of barrels of the beer sold for on–premises consumption under the Class D beer license or an equivalent license or an on–site consumption permit in a calendar year does not exceed the greater of:
A. 25% of the total number of barrels of beer sold for on–premises consumption under the Class D license or an equivalent license or an on–site consumption permit in that calendar year; or
B. 1.2% of total finished production under the Class 5 brewery license; and
3. A. the license holder contracts with or on behalf of a holder of a manufacturer's license or nonresident dealer's permit; or
B. the beer is manufactured by an affiliate of the license holder.
(3) (i) This paragraph applies to a Class 5 brewery with more than 1,000,000 barrels of finished production annually, alone or in combination with its affiliates.
(ii) Beer that is delivered to the Class 5 brewery in finished form may be sold for on–premises consumption under paragraph (2)(iii)2 of this subsection only if it is purchased from a licensed wholesaler.
(4) Except as provided in paragraph (5) of this subsection, the total amount of beer sold each year for on–premises consumption under this subsection may not exceed 2,000 barrels.
(5) (i) If, in a single year, the license holder reaches 80% of the volume authorized to be sold for on–premises consumption under paragraph (4) of this subsection, the license holder may file a request with the Comptroller for permission to sell up to an additional 1,000 barrels for on–premises consumption in that year.
(ii) The maximum volume that a license holder may sell for on–premises consumption in a single year is 3,000 barrels.
(iii) Any beer that the license holder sells for on–premises consumption in excess of the 2,000–barrel limit under paragraph (4) of this subsection shall be purchased from a licensed wholesaler.
(6) Before a local licensing board that does not issue a Class D beer license may grant an on–site consumption permit, the local licensing board shall:
(i) establish an equivalent license; and
(ii) require the applicant to obtain that equivalent license.
(7) A local licensing board may charge a fee for granting an on–site consumption permit.
(8) A local licensing board shall require the holder of an on–site consumption permit or a Class D beer license or an equivalent license under paragraph (6) of this subsection to:
(i) comply with the alcohol awareness requirements under § 4–505 of this article; and
(ii) abide by all applicable trade practice restrictions.
(g) (1) The Comptroller may issue a brewery promotional event permit to a holder of a Class 5 brewery license.
(2) Subject to subsection (i) of this section, the permit authorizes the holder to conduct on the premises of the brewery a promotional event at which the holder may, with respect to individuals who have attained the legal drinking age:
(i) provide samples consisting of a total of not more than 18 fluid ounces to a consumer; and
(ii) sell beer to individuals who participate in the event.
(3) Subject to subsection (i) of this section, the beer at the event shall be sold by the glass for on–premises consumption only.
(4) To obtain a permit, an applicant, at least 15 days before the event, shall file with the Comptroller an application that the Comptroller provides.
(5) A holder of a Class 5 brewery license may not be issued more than 12 permits in a calendar year.
(6) A single promotional event may not exceed 3 consecutive days.
(7) The permit fee is $25 per event.
(h) (1) This subsection does not apply to:
(i) the holder of a Class 5 brewery license that held an on–site consumption permit and a Class D license or an equivalent license on or before April 1, 2017;
(ii) an individual who held a minority interest in an on–site consumption permit and a Class D license or an equivalent license on or before April 1, 2017, and then obtains by transfer a majority interest in the same license or permit;
(iii) a location in the State for which a completed brewer's notice form was filed with the U. S. Department of Treasury on or before April 1, 2017;
(iv) a promotional event conducted under subsection (g) of this section; and
(v) a guided tour during which:
1. samples of beer are served under subsection (c)(5) of this section; or
2. beer is sold for off–premises consumption under subsection (c)(6) of this section.
(2) This subsection applies to:
(i) a holder of a Class 5 brewery license who:
1. after April 1, 2017, obtains an on–site consumption permit and a Class D beer license or equivalent license for on–premises consumption; or
2. not holding a minority interest in an on–site consumption permit and a Class D license or an equivalent license on or before April 1, 2017, obtains a majority interest by transfer in an on–site consumption permit and a Class D license or an equivalent license; and
(ii) notwithstanding paragraph (1)(iii) of this subsection, a manufacturer of beer with more than 1,000,000 barrels of finished production annually alone or in combination with its affiliates.
(3) Notwithstanding any provision in Division II of this article, the sales and serving privileges of an on–site consumption permit and a Class D license or an equivalent license may be exercised only from 10 a.m. to 10 p.m. Monday through Sunday.
(i) All beer offered, served, or sold to a consumer under subsection (c)(5) or (6) or (g) of this section shall be:
(1) fermented and brewed entirely at the Class 5 brewery; or
(2) beer of which the license holder or an affiliate of the license holder is the brand owner.
(j) (1) (i) The Comptroller may issue a refillable container permit for draft beer under § 4–1104 or Subtitle 11 of the various titles in Division II of this article to a holder of a Class 5 brewery license:
1. on completion of an application form that the Comptroller provides; and
2. at no cost to the holder of the Class 5 brewery license.
(ii) A refillable container permit may be renewed each year concurrently with the renewal of the Class 5 brewery license.
(2) The hours of sale for a refillable container permit issued under this subsection are the same as the hours when a guided tour, a promotional event, or other organized activity at the licensed premises authorized under subsection (c) of this section may be conducted.
(k) (1) On or before October 1 each year, the Comptroller shall report to the Senate Education, Health, and Environmental Affairs Committee and the House Economic Matters Committee, in accordance with § 2–1246 of the State Government Article, on the following, identified by jurisdiction and Class 5 license holder:
(i) the total beer production of the license holder in the preceding fiscal year;
(ii) the total sales of the license holder for on–site consumption under an on–site consumption permit, a Class D beer license, or an equivalent license in the preceding fiscal year;
(iii) whether the license holder has requested permission to sell additional beer under subsection (f)(5)(i) of this section, and whether the Comptroller granted that permission, for the preceding fiscal year; and
(iv) the total sales of the license holder of additional beer under subsection (f)(5)(i) of this section in the preceding fiscal year.
(2) Each holder of a Class 5 license shall report to the Comptroller the information needed to prepare the annual report under this subsection.
(3) The Comptroller may include the information reported under this subsection in the annual report submitted under § 1–306 of this article.
§2–207. // EFFECTIVE JUNE 30, 2022 PER CHAPTER 813 OF 2017 //
Read the law: Maryland Alcohol Article §2-207
WHAT'S BREWIN' IN THE NEWS
Kevin Atticks Transitions To Role As Maryland's Secretary of Agriculture


text:
Bernard Boutet de Monvel
Date: French painter, illustrator, designer, printmaker, 1881–1949
Biography: The son of the artist and illustrator Maurice Boutet de Monvel, Bernard Boutet de Monvel is regarded as one of the finest illustrators of the Art Deco era. He began to study painting in 1900, with the painter Luc-Olivier Merson. Although he is perhaps best known as a portrait painter and a painter of urban views, Boutet de Monvel also produced book illustrations, particularly for children's books, as well as fashion illustrations. He provided illustrations for Harper's Bazaar in the 1920's and 1930's, and contributed illustrations to the first French edition of Vogue, published in June 1920, for which he continued to illustrate the latest fashions. He was himself a well-known dandy, known for his innate style and elegant dress sense.
Boutet de Monvel was a frequent exhibitor at the Salons in Paris, showing portraits, landscapes and nudes. Boutet de Monvel died in a plane crash in 1949. Works by the artist are today in the collections of the Musée des Arts Décoratifs, the Bibliothèque Nationale and the Musée National d'Art Moderne in Paris, as well as the Metropolitan Museum of Art in New York.
La Rue de la Paix


text:
Various options if nuclear deal ditched, Iran says
TEHRAN – Majlis Speaker Ali Larijani has said that Iran has various options if the U.S. will "not be wise enough" and quit the 2015 nuclear deal.
The nuclear deal, known as the Joint Comprehensive Plan of Action, is an international agreement signed by the European Union, Russia and China and not just by the U.S., Larijani said in an interview with Sputnik, Mehr news agency reported on Monday.
"The path having been taken by the U.S. is not simple. Suppose that the U.S. will not be wise enough and quit the JCPOA, is it beneficial for it? The U.S. will be discredited in this case and the world will understand that the U.S. violates the deals," he said.
Larijani said that Iran will abide by the agreement as along as the other side is committed to its obligations under the JCPOA.
The nuclear deal was signed between Iran, the European Union, Germany and the five permanent members of the UN Security Council - the United States, Britain, France, China and Russia - in July 2015. The agreement went into effect in January 2016.
In his new Iran strategy declared on October 13, U.S. President Donald Trump decertified the nuclear deal and asked Congress to decide about the fate of the agreement. Congress now has to decide whether to reimpose economic sanctions on Tehran that were lifted under the deal. Trump said if Congress does nothing he himself will terminate the deal.
The International Atomic Energy Agency, the United Nations' nuclear watchdog, has issued nine regular reports each time confirming Iran's adherence to the international deal.
No country should ditch nuclear deal: CTBTO chief
UN chief says Iran complies with nuclear deal
MP: Tehran, Beijing seeking nuclear cooperation
All sides obliged to respect nuclear deal: EU's Helga Schmid
Iran would abandon barren nuclear deal, official warns
Japan backs nuclear deal, confirms no violation by Iran
Trump cannot annul nuclear deal, Rouhani says
IAEA report proves U.S. claims wrong: Iran
Iran says 'fully ready' if U.S. violates nuclear deal
Ali Larijani


text:
"use strict";
var TXT_LENGTH = 50;
var HINT_DELAY = 1500;

var hint = function() {
    var storedKeyDOM;
    var timer;

    var reset = function() {
        window.clearTimeout(timer);
        if (typeof(storedKeyDOM) !== "undefined") {
            storedKeyDOM.classList.remove("hint");
        }
    };

    var set = function(keyDOM) {
        reset();
        storedKeyDOM = keyDOM;
        timer = window.setTimeout(function() {
            storedKeyDOM.classList.add("hint");
        }, HINT_DELAY);
    };

    return {
        reset: reset,
        set: set
    };
}();

var config = function() {
    var c = {
        active: undefined,
        data: {}
    };

    function storedConfigs() {
        var result = [];
        for (var d in c.data) {
            result.push(d);
        };
        return result;
    }

    function setActiveConfig(configName) {
        if (c.data[configName] === undefined) {
            console.log("Error: Unknown config name: " + configName);
            return false;
        };
        c.active = configName;
        return true;
    }

    function addConfig(keyboard, language, layout) {
        var orderdKeys = [];
        var rankedKeys = [];
        var name = keyboard + "_" + layout + " (" + language + ")";
        var keyConfig = keyboards[keyboard].layout[language][layout];
        var order = keyboards[keyboard].ordering;

        for (var o in order) {
            for (var l in keyConfig) {
                if (keyConfig[l] === order[o] &&
                    languages[language].indexOf(l) !== -1
                ) {
                    orderdKeys.push(l);
                }
            }
        }

        for (var i = 0; i < 4; i++) {
            rankedKeys.push({
                "key": orderdKeys[0],
                "points": 0,
                "count": 0
            });
            orderdKeys.splice(0, 1);
        }

        c.active = name;
        c.data[name] = {
            keyboard: keyboard,
            language: language,
            layout: layout,
            rankedKeys: rankedKeys,
            orderdKeys: orderdKeys
        };
        save();
    }

    function updateKeys(rankedKeys, orderdKeys) {
        c.data[c.active].rankedKeys = rankedKeys;
        c.data[c.active].orderdKeys = orderdKeys;
        save();
    }

    function get(key) {
        return c.data[c.active][key];
    }

    function save() {
        localStorage.setItem("configs", JSON.stringify(c));
    }

    function isNew() {
        if (c.active === undefined) {
            return true;
        };
        return false;
    }

    if (window.localStorage.configs !== undefined) {
        c = JSON.parse(window.localStorage.configs);
    };

    return {
        isNew: isNew,
        addConfig: addConfig,
        updateKeys: updateKeys,
        get: get,
        save: save,
    }
}();

function exercise() {
    var lessonString;
    var pos;
    var error;
    var timeStamp;
    var keyLogging = {};
    var rankedKeys = config.get("rankedKeys");
    var orderdKeys = config.get("orderdKeys");

    var txtDone = document.getElementById('txtDone');
    var txtNow = document.getElementById('txtNow');
    var txtNext = document.getElementById('txtNext');

    keyboard.setKeyboard(config.get("keyboard"));
    newLesson();

    window.onkeypress = function(event){
        checkInput(event);
    };

    function updateView() {
        txtDone.innerHTML = lessonString.substring(0, pos);
        txtNow.innerHTML = lessonString[pos] || "";
        txtNow.classList.remove("error");
        txtNext.innerHTML = lessonString.substring(pos+1, TXT_LENGTH);

        if (pos === 0) {
            var buffer = "";
            rankedKeys.forEach(function(item, _) {
                buffer += '';
                buffer += item.key;
                buffer += '';
            });
            document.getElementById("keysRanked").innerHTML = buffer;
            buffer = "";
            orderdKeys.forEach(function(item, _) {
                buffer += '';
                buffer += item;
                buffer += '';
            });
            document.getElementById("keysNext").innerHTML = buffer;
        }
    }

    function newLesson() {
        var keys = [];

        keyLogging = {};
        pos = 0;

        var space = 4 + Math.floor(Math.random() * 4);
        if (rankedKeys[rankedKeys.length-1].points > 1500) {
            rankedKeys.push({
               "key": orderdKeys[0],
               "points": 0,
               "count": 0
            });
            orderdKeys.splice(0, 1);
            config.updateKeys(rankedKeys, orderdKeys);
        };

        rankedKeys.forEach(function(element) {
            keys.push(element.key);
        });

        lessonString = generateList(config.get("language"), keys, TXT_LENGTH);
        updateView();
        hint.set(keyboard.getDOM(lessonString[pos].toLowerCase()));
    }

    function checkInput(event) {
        if (lessonString[pos] === String.fromCharCode(event.which)) {
            var timeStampEnd = new Date().getTime();
            if (pos !== 0) {
                var key = lessonString[pos];
                if (typeof(keyLogging[key]) === "undefined") {
                    keyLogging[key] = {count: 0, time: 0, err: 0};
                }
                keyLogging[key].count++;
                keyLogging[key].time += timeStampEnd - timeStamp;
                keyLogging[key].err += error;
            }
            pos++;
            if (pos < TXT_LENGTH) {
                hint.set(keyboard.getDOM(lessonString[pos].toLowerCase()));
            } else {
                calculatePoints();
                hint.reset();
                newLesson();
            }
            updateView();
            timeStamp = new Date().getTime();
            error = false;
        } else {
            txtNow.classList.add("error");
            error = true;
        }
    }

    function calculatePoints() {
        rankedKeys.forEach(function(item, index) {
            var k = item.key;
            if (typeof(keyLogging[k]) === "undefined") {
                return;
            }
            var speed = 2500 - (keyLogging[k].time / keyLogging[k].count);
            if (speed < 0) {
                speed = 0;
            }
            var errors = (1 - (keyLogging[k].err / keyLogging[k].count));
            var points = (speed*errors);
            if (item.points !== 0) {
                points += item.points * 2;
                points /= 3;
            }
            rankedKeys[index].points = points.toFixed(2);
            rankedKeys[index].count += keyLogging[k].count;
        });
        rankedKeys.sort(function(a, b){
            return b.points - a.points;
        });
        config.updateKeys(rankedKeys, orderdKeys);
    }
}

var keyboard = function(){
    var keyDOMs = {};

    function setKeyboard(){
        document.getElementById("keyboard").innerHTML =
            keyboards[config.get("keyboard")].svg;
        var layout = keyboards[config.get("keyboard")]
            .layout[config.get("language")]
            [config.get("layout")];
        for (var l in layout) {
            keyDOMs[l] = document.getElementById(layout[l]);
            document.getElementById(layout[l] + 'K').innerHTML = l.toUpperCase();
            if (l == 'ß') {
                document.getElementById(layout[l] + 'K').innerHTML = l.toLowerCase();
            };
        }
    }

    function getDOM(key) {
        return keyDOMs[key];
    }

    return {
        setKeyboard: setKeyboard,
        getDOM: getDOM
    };
}();

function setupLanguage() {
    var setupLanguage = document.getElementById("setupLanguage");
    var selectLanguage = document.getElementById("selectLanguage");
    var startLayoutConfig = document.getElementById("startLayoutConfig");

    setupLanguage.style.display = "block";
    for (var l in languages) {
        var option = document.createElement("option");
        option.text = l;
        selectLanguage.add(option);
    }

    startLayoutConfig.onclick = function() {
        setupOwnLayout(selectKeyboard.value, selectLanguage.value);
        setupLanguage.style.display = "none";
    };
}

function setup() {
    var setup = document.getElementById("setup");
    var setupLayout = document.getElementById("setupLayout");
    var saveConfig = document.getElementById("saveConfig");
    var selectKeyboard = document.getElementById("selectKeyboard");
    var selectLayout = document.getElementById("selectLayout");
    var ownLayout = document.getElementById("ownLayout");
    var preview = document.getElementById("preview");

    setup.style.display = "block";
    updateKeyboards();

    selectKeyboard.onchange = function(event) {
        updateLayout(event.target.value);
        preview.innerHTML = keyboards[event.target.value].svg;
        selectLayout.disabled = false;
        //ownLayout.disabled = false;
    };

    selectLayout.onchange = function() {
        saveConfig.disabled = false;
    };

    ownLayout.onclick = function() {
        preview.innerHTML = "";
        setup.style.display = "none";
        setupLanguage();
    };

    saveConfig.onclick = function() {
        save();
    };

    function updateKeyboards() {
        selectKeyboard.innerHTML = "";
        for (var k in keyboards) {
            var option = document.createElement("option");
            option.text = k;
            selectKeyboard.add(option);
        }
        selectKeyboard.selectedIndex = -1;
    }

    function updateLayout(keyboardType) {
        selectLayout.innerHTML = "";
        for (var language in keyboards[keyboardType].layout) {
            for (var layout in keyboards[keyboardType].layout[language]) {
                var option = document.createElement("option");
                option.text = layout + " (" + language + ")";
                option.value = JSON.stringify({layout, language});
                selectLayout.add(option);
            };
        };
        selectLayout.selectedIndex = -1;
        selectLayout.disabled = true;
    }

    function save() {
        var layout = JSON.parse(selectLayout.value);
        config.addConfig(selectKeyboard.value,
                         layout.language,
                         layout.layout);
        preview.innerHTML = "";
        setup.style.display = "none";
        exercise();
    }
}

function showWelcome() {
    var welcome = document.getElementById("welcome");
    var startSetup = document.getElementById("startSetup");

    welcome.style.display = "block";
    startSetup.onclick = function() {
        welcome.style.display = "none";
        setup();
    };
}

function setupOwnLayout(keyboard, language) {
    var setupLayout = document.getElementById("setupLayout");
    var activeId;
    var letters;
    var mapping = {};
    var defaultLetters = [".", ",", "'"];

    function setKey(event) {
        var key = String.fromCharCode(event.which).toLowerCase();

        if (activeId === undefined) {
            return;
        };
        if (mapping.hasOwnProperty(key) === false) {
            return;
        };
        if (mapping[key] !== undefined) {
            document.getElementById(mapping[key] + 'K').innerHTML = "";
        };
        for (var k in mapping) {
            if (mapping[k] === activeId) {
                mapping[k] = undefined;
            };
        }
        document.getElementById(activeId + 'K').innerHTML = key.toUpperCase();
        if (key == 'ß') {
            document.getElementById(activeId + 'K').innerHTML = key.toLowerCase();
        };
        mapping[key] = activeId;
        updateView();
        event.preventDefault();
    }

    function updateView() {
        var undefKeys = [];

        for (var k in mapping) {
            if (mapping[k] === undefined) {
                undefKeys.push('');
                undefKeys.push(k);
                undefKeys.push('');
            };
        };
        document.getElementById("letters").innerHTML = undefKeys.join("");
        for (var k in mapping) {
            if (mapping[k] === undefined) {
                return;
            };
        };

    }

    function save() {
        document.removeEventListener("keypress", setKey);
        keyboards[keyboard].ordering.forEach(function(element) {
            document.getElementById(element).onclick = function(){};
            document.getElementById("setupLayoutSave").removeEventListener("click", save);
        });
    }

    letters = languages[language];
    letters = letters.concat(defaultLetters);
    letters.forEach(function(letter) {
        mapping[letter] = undefined;
    });

    setupLayout.style.display = "block";

    document.getElementById("setupLayoutKeyboard").innerHTML =
        keyboards[keyboard].svg;
    keyboards[keyboard].ordering.forEach(function(element) {
        document.getElementById(element).onclick = function(){
            if (activeId !== undefined) {
                document.getElementById(activeId).classList.remove("hint");
            };
            activeId = element;
            document.getElementById(activeId).classList.add("hint");
        };
    });

    document.getElementById("setupLayoutSave").addEventListener("click", save);
    document.addEventListener("keypress", setKey);

    updateView();
};

function init() {
    //window.localStorage.clear();

    // drop backspace
    document.addEventListener("keydown", function(event) {
        if (event.which === 8) {
           event.preventDefault();
        }
    });

    if (config.isNew() === true) {
        showWelcome();
    } else {
        exercise();
    }
}


text:
AstraZeneca's vaccine success comes as R&D drive pays off
Holly Williams, PA Deputy City Editor
The drugs firm behind Britain's "game changer" coronavirus vaccine is set to become a household name as the inoculation programme is rolled out to fight the virus.
Cambridge-based AstraZeneca, which has developed the jab together with scientists at Oxford University, has vowed not to make any profits from the vaccine for the duration of the pandemic, but has already received a shot in the arm for its reputation and share price.
Since plummeting when the stock market crashed as the crisis struck in March, the FTSE 100 firm's shares have since leapt higher by more than a fifth.
AstraZeneca's chief executive Pascal Soriot has prioritised R&D during his tenure (AstraZeneca/PA)
Already a global giant, the vaccine success comes after boss Pascal Soriot has focused heavily on investing on research and development (R&D) since taking the helm eight years ago.
He took over at a time when the Anglo-Swedish business was seeing its earnings hammered by generic competition to off-patent drugs.
But in the first half of 2020, new treatments accounted for half of all its sales thanks to the R&D drive.
Its first half sales jumped by 14% to 12.6 billion US dollars (£9.3 billion) in the first, which sent earnings soaring by 58% to 2.5 billion US dollars (£1.8 billion).
In the third quarter, it saw sales rise by a better-than-expected 3% to 6.6 billion US dollars (£4.9 billion) as trade was once again boosted by new medicines, as well as cancer and respiratory medication.
Before tax, AstraZeneca's profit surged to 853 million US dollars (£627 million) in the third quarter, up from 409 million dollars (£301 million) a year earlier.
It came as the business reiterated guidance for profits to double over the full year.
The profits surge is not expected to come from the coronavirus jab, however, as AstraZeneca has vowed to provide the vaccine on a not-for-profit basis for the duration of the pandemic across the world.
It has also joined a global alliance initiative – called Covax – that is hoping to distribute billions of doses to the world's poorest countries, capped at three US dollars (£2.20) a dose.
Away from the Covid-19 vaccination, AstraZeneca has been forging ahead with a string of cancer drugs – such as Lynparza – which are fast approaching blockbuster status.
And the group recently struck the largest deal in its history with the 39 billion US dollar (£29 billion) agreed acquisition for US rare disease specialist Alexion.
It marks the firm's transition from bid target to buyer, coming six and a half years after it saw off a takeover attempt from US rival Pfizer.
It has been a bumpy ride since for the group, whose share price initially remained stubbornly below the £55 a share price offered by Pfizer in 2014.
But the group's stock market fortunes have since turned around as the bet on R&D has paid off, with shares worth nearly £75 at current prices.
In the UK, the group has around 6,500 staff across five sites, including its Cambridge headquarters, as well as bases in Luton in Bedfordshire, Alderley Park and Speke in Cheshire, and a manufacturing centre in Macclesfield.
It operates across more than 100 countries worldwide.


Thursday, April 11, 2019 2:00 p.m. - 4:00 p.m.
Thursday, April 18, 2019 2:00 p.m. - 4:00 p.m.
Thursday, April 25, 2019 2:00 p.m. - 4:00 p.m.
Thursday, May 2, 2019 2:00 p.m. - 4:00 p.m.
Thursday, May 9, 2019 2:00 p.m. - 4:00 p.m.
Thursday, May 16, 2019 2:00 p.m. - 4:00 p.m.
Mahjong is a tile-based game which was developed in China in the Qing dynasty and has spread throughout the world since the early 20th century. Similar to the card game rummy, Mahjong is a game of skill, strategy, and calculation and involves a degree of chance. The game has proven to help keep the mind sharp as it produces an increase in cognitive function. Whether you're a beginner or already know how to play, an afternoon of socialization and strategy awaits!
Free program--just drop in and join us!


text:
The United States of America…….the nation which is best described as the world Freedom Defender. The most powerful nation….. not only by its Armed-Forces, but very audibly also, by its culture……..by its history……..by its vision ……, influenced by Greco-Roman philosophers–by its political values.
With the fifty vivid stars sparkling in the blue sky……the American flag stands forever the unparalleled symbol of Freedom and Liberty……the portrayal of a prosperous Nation in God's Trust.
(Excerpt from 'The American Era and the World– the American Exceptionalism' by Catherine Stella Schmidt)
Red: valor and bravery
White: purity and innocence
Blue: vigilance, perseverance, and justice
Dear visitors, we are working on this page, please visit it later again. Thank you.
Days of Remembrance and Prayers for September 11 2001
The memorial service for 15th Anniversary of September 11 held by the Fire Department of the City of New York (FDNY). September 10, 2016 © FDNY
Proclaimed by President Obama from September 9 to September 11 — the days of Remembrance and Prayers for September 11, 2001.
"On September 11, 2001, a group of small and hateful minds conspired to threaten the very fiber of our country, seeking to break the American spirit and destroy our way of life. From the Atlantic to the Pacific, Americans were struck with grief as devastation and senseless loss of innocent human life unfolded. In the empty shadow of the World Trade Center, the remains of the Pentagon, and a charred Pennsylvania field where courageous passengers saved countless lives, what emerged from the ashes of that day was not defeat — it was the heroism, compassion, and unity of the American people, which no act of terror or hate could ever take away. On September 11, we recall the true spirit of our Nation following these heinous attacks, and we resolve to enshrine the enduring compassion and love of our people forever in the heart of America." Presidential Proclamation National Days of Prayer and Remembrance, 2016 © The White House
Presidential Proclamation National Days of Prayer and Remembrance, 2016
News from President George W Bush
President George W Bush Library and Museum
News from the Heroes the NYPD
News from the Heroes the FDNY
September 11 Memorial Center
November 11 The Veterans Day in the United States
In the honor of our Freedom Defenders
A U.S. Army Soldier from the Special Forces.
November 2014©U.S. Army/Sgt. Ken Scar
In remembrance of the great sacrifices that the U.S Armed-Forces has made thorough out of the history from the First World War until recently in Kosovo and Afghanistan, every year in the United States, November 11 is the Commemoration Day for honouring the Veterans.
Presidential Proclamation on Veterans Day, 2015
U.S. Federal Holidays 2017
January 2: New Year's Day
January 16: Birthday of Martin Luther King, Jr.
February 20: Washington's Birthday
May 29: Memorial Day
July 4: Independence Day
September 4: Labor Day
October 9: Columbus Day
November 10: Veterans Day
November 23: Thanksgiving Day
December 25: Christmas Day
The Monumental Historical Books and writing about the United States of America
America Honors the Memory of General Lafayette ©U.S Embassy Paris
The United States Declaration of Independence, 1776
Charles Alexis Henri Maurice Clérel de Tocqueville, a great Politician, Historian of France, the Author of: Democracy in America
Recommended book on US Foreign Policy: The World America made by Robert Kagan
The Will to Lead: America's Indispensable Role in the Global Fight for Freedom
By former Secretary General of NATO and the Prime Minister of Denmark, Anders Fogh Rasmussen
Patriot Day and National Day of Service and Remembrance, Presidential Proclamation 2015
Watch the September 11 memorial Day on CNN
Most well-known News/Media in the USA
http://www.nbcnews.com/
http://www.foxnews.com/
http://edition.cnn.com/
http://www.npr.org/
http://thedailyshow.cc.com/
https://www.washingtonpost.com/
http://www.washingtontimes.com/
http://www.wsj.de/news/us
http://www.usatoday.com/
All the materials on US-EU World Affairs (articles, news, photos and media) are copy-righted. Redistribution, reproduction, copying, or linking the content of this organization, in any kind, are strictly prohibited by Law.


"Come on, Fritz! Wake up! The tea partiers are on their way to California today, and all the cool cats get to go with them, too!
Poor Nibbles. He is just having a dickens of a time trying to get Fritz to wake up and get out of his new bed. After having traveled from Texas to California, Fritz heard there was a place called Feline Fantasy World, so he ventured on over and hasn't been the same since. Seems all he wants to do is sleep in his new bed and dream about all the kitty cat fantasies he saw there, just hoping they'll come true for him.
Don't quite know what I'm talking about? Well, you need to venture on over to Splitcoaststampers in the Teapot Tuesday forum to get the full story from Da Muddermark. Perhaps you'd like to play along with us, too, as Da Muddermark has all the tea partiers traipsing off to California today to welcome Bertlady to her new home. My alter ego, Bertie, and I are so excited about this adventure because we don't often get to meet others with the name of Bertie. We're bringing lots and lots and LOTS of m&m's with us because you should always celebrate with C-H-O-C-O-L-A-T-E!! Bertie is so full of love this week. She'll be flinging hearts, milk, and m&m's!!
Oh how darling Charlene!! I love your kitty and the dp!! Fun take on the challenge!! Love reading your fun posts!!
Oh Charlene, what a cutie card. Love the dots, your kitties and gorgeous design. Your coloring is always so fab!
Your little kitties are sooo cute, Charlene...remember, I get to sit by you at the party....I just neeeeed a few of those M's!!!!
Well, I missed the teaparty, but lucky for me, I have my very own stash of m&m's in my stamp room...but I don't have these two lovable kittens...what a precious pair and you made the cutest card with it...love your polka dotted hearts!!
Thank you Bertie, for helping me out with this fun challenge....I love your card and your story! It rocked....and the other Bertie will love it!
Tooo stinkin' cute!!! Love your kitties!


This paper introduces a new term rewriting system that is similar to the embedded read-back mechanism for interaction nets presented in our previous work, but is easier to follow than in the original setting and thus to analyze its properties. Namely, we verify that it correctly represents the lambda calculus. Further, we show that there is exactly one reduction sequence that starts with any term in our term rewriting system. Finally, we represent the leftmost strategy which is known to be normalizing.


text:
James Wan is a Malaysian-born Australian film director, screenwriter, producer, and comic book writer. He rose to prominence as co-creator of the Saw film franchise. He served as a producer on all eight films in the series, in addition to directing Saw and co-writing Saw III.
100 Best Horror Movies of All Time, Ranked for Filmmakers
What are the best horror movies of all time? From zombies to your nextdoor neighbor, films have found fear from a wide variety of sources over the decades. In this blog, we're providing all of you filmmakers out there with the definitive list of the best horror films ever made. We'll discuss what makes each… Continue reading 100 Best Horror Movies of All Time, Ranked for Filmmakers
Mike Bedard October 30, 2022
All-Time Best Jump Scare Movies Ranked (Do Not Watch Alone!)
Horror heads often scoff at jump scares. The technique can feel too easy: slap a loud sound effect on an unexpected thing in the dark and anyone will gasp — it's glorified peek-a-boo. But a great jump scare is undeniable. Done with taste, originality, and skill, the jump can deliver a scare that will linger… Continue reading All-Time Best Jump Scare Movies Ranked (Do Not Watch Alone!)
Rex Provost October 25, 2021
What is a Slasher Film — Definition, Characters, Villains & Tropes
What is a Slasher film? The name of this popular horror sub-genre might evoke a strong mental image, but do you know the actual criteria for what constitutes a Slasher film? In this post, we'll provide a Slasher movie definition, explore the complex history of Slasher films, and take a look at some of the… Continue reading What is a Slasher Film — Definition, Characters, Villains & Tropes


text:
Q: Returning multiple integers in if-statement javascript/react Im trying to do an if statement that maps a string to a number.
I have a bunch of documents that have a string and a number attached to it. The string "soccer" is attached to numbers 12, 13, 14, 15, 16, 17, 18. My if statement below only allows me to pick the document "soccer" with 12 attached to it.
For example:
if(a === 'soccer') {
   return 12
}

So everytime soccer is selected, it should pick out all the "soccer" doc options with 12. This works fine but wanted to pick out the "soccer" docs that have the other numbers aswell. Is there a way to return a range of integers 12-18 in my if statement? or even examples with >= 12/ <=12
fake examples:
if(a === 'soccer') {
       return > 12
    }
if(a === 'soccer') {
       return 12 - 18
    }

Clearly those dont work but i wanted to know if there was a better way to solve that issue.
Edit: I've also tried using an array but that doesnt seem to print those numbers individually. So my value wont be [12], [13], [14], [15], [16], [17], [18] but instead [12, 13, 14, 15, 16, 17, 18]
ex.
const numRange = Array.from({ length: 7 }, (v, i) => i + 12);

if (a === 'soccer') {
          return numRange;
        }

edit #2: A DIFFERENT PERSPECTIVE
So initially 'a' is an object in docs.
docs: {
     0: {{ a:1}}
     1: {{ a:2}}
     }

"a" is represented by a number, but i had to convert that number into a string(which are represented by the sports).
ex.
if (a) {
        if (a < 11) {
          return 'Volleyball;
        } if (a < 18) {
          return 'soccer';
        }
        return 'Football';
      }

Now im trying to filter these docs. Using >=, <=, = to filter "a" which is a number but represented now as a string. So my solution was to have functions that converts "a" into a string and "a" in number aswell. So i have this.
    if (typeof a === 'number') {
        if (a < 11) {
              return 'Volleyball';
            } if (a < 18) {
              return 'Soccer';
            }
            return 'Football';
      }

if (typeof a === 'string') {
        if (a === 'Volleyball') {
          return 11;
         //which should be 0-11 to match the function above
        }
        if (d === 'Soccer') {
          return 18;
         //which should be 12-18 to match the function above
        }
        if (d === 'Football') {
          return 19
         //which should be >19 to match the function above
        }
      }

These functions work but are wonky because they arent matching each other. How can i rewrite both or one to respresent the other in an opposite way.
Thank you

A: Updated Answer
After you've updated your question I've got a better impression of what you are trying to achieve.
There is no native data type in JavaScript that represents ranges. But you can define your own structure to represent boundaries. You can even use undefined to represent open ranges.
const ranges = {
  volleyball: { min: undefined, max: 10 },
  soccer: { min: 11, max: 17 }
};

Given your documents look like this.
const documents = {
  0: { a: 14 },
  1: { a: 13 },
  3: { a: -2 }
  // ...
};

You can then utilize the ranges to write both of the functions you are looking for.
function toSport(doc) {
  const entries = Object.entries(ranges);
  for (const [sport, range] of entries) {
    const withinUpperBound = range.max === undefined || doc.a <= range.max;
    const withinLowerBound = range.min === undefined || doc.a >= range.min;

    if (withinUpperBound && withinLowerBound) {
      return sport;
    }
  }

  return undefined;
}

function toRange(sport) {
  return ranges[sport];
}

Have a look into the sandbox to see the updated code.
Previous Answer
As I understood, you start with something like:
const documents = [
    { key: "soccer", value: 12 },
    { key: "soccer", value: 13 },
    { key: "soccer", value: 14 },
    { key: "soccer", value: 15 },
    { key: "soccer", value: 16 },
    { key: "soccer", value: 17 },
    { key: "soccer", value: 18 },
    { key: "tennis", value: 19 },
    { key: "tennis", value: 20 }
    // ...
]

If my assumption is correct your function could look like this:
function getDocumentValues(key) {
    // Loop over all documents
    return documents.reduce((accumulator, doc) => {
        // If the current document doesn't match, proceed by returning previously accumulated values
        if (doc.key !== key) {
            return accumulator;
        }

        // Return the previous accumulator plus the matched number. This will be the accumulator for the next iteration.
        return [
            ...accumulator,
            doc.value
        ]
    }, []) // we start with an empty accumulator
}

Let me know if my assumptions are correct and feel free to give us more information if not.
I've made the code available here: https://codesandbox.io/s/tender-moon-e7tswi?file=/src/index.js

A: So from what I've understood, what you have initially is something like this:
const data = {
  docs: {
    0: { a: 1 },
    1: { a: 2 },
  }
};

Where a can be either a number or a string, and I assume you would want to maintain the value assigned to a (in your example 1 and 2) and the original keys 0 and 1.
So in order to do this you need the store the converted values in order to be able to convert "both ways".
Now obviously this will only work if a is only numbers in the beginning. If there's the possibility of it starting as a string then how to tackle the situation.
This would be my approach:
const documents = [];

// This first call will change your `a` to strings
convertDocs(data.docs);

// This second call will change your `a` to numbers like the original
convertDocs(data.docs);

function convertDocs(docs) {
  const keys = Object.keys(docs);

  for (const mainKey of keys) {
    // returning { a: 1 }
    const value = docs[mainKey];

    // returning a
    const key = Object.keys(value)[0];
    const converted = convertKey(key, mainKey);

    docs[mainKey] = { [converted]: value[key] };
  }
}

function convertKey(key, mainKey) {
  const isNumber = !isNaN(key);

  return isNumber ? convertFromNumber(key, mainKey) : convertFromString(key, mainKey);
}

function convertFromNumber(key, mainKey) {
  if (key < 11) {
    documents.push({ key, mainKey, value: "Volleyball" });
    return "Volleyball";
  }

  if (key < 18) {
    documents.push({ key, mainKey, value: "Soccer" });
    return "Soccer";
  }

  // ...etc
}

function convertFromString(key, mainKey) {
  const index = documents.findIndex(doc => doc.mainKey === mainKey && doc.value === key);
  const converted = documents[index].key;

  // This is to remove from the array, now it depends if this makes sense for your use case
  documents.splice(index, 1);

  return converted;
}

If this is not what you need, I hope it helped you reach your end goal

redpajama_set_name: RedPajamaStackExchange


6:20 am: David Muttitt, Bud Cauley, Graham DeLaet.
6:30 am: Rod Perry, Yuta Ikeda, Emiliano Grillo.
6:40 am: Joost Luiten; Paul Claxton, Russell Henley.
6:50 am: Patrick Cantlay, Thongchai Jaidee, Soren Kjeldsen.
7 am: Omar Uresti, Y.E. Yang, Shaun Micheel.
7:10 am: Danny Lee, Marc Leishman, Anirban Lahiri.
7:20 am: Byeong Hun An, Kevin Chappell, Mackenzie Hughes.
7:30 am: Jonas Blixt, Steve Stricker, Brian Harman.
7:40 am: D.A. Points, Tyrrell Hatton, Adam Hadwin.
7:50 am: Martin Laird, Bill Haas, Graeme McDowell.
8 am: Jeunghan Wang, Alexander Levy, Jamie Broce.
8:10 am: J.J. Wood, Ryan Fox, Li Haotong.
8:20 am: Jaysen Hansen, Chez Reavie, Cody Gribble.
11:35 am: Shane Lowry, Stuart Deane, Pablo Larrazabal.
11:45 am: Alex Noren, Scott Hebert, Russell Knox.
11:55 am: Hideki Matsuyama, Ernie Els, Ian Poulter.
12:05 pm: Daniel Summerhays, Robert Streb, Chris Wood.
12:15 pm: Tommy Fleetwood, Justin Thomas, Patrick Reed.
12:25 pm: Bubba Watson, Charl Schwartzel, Paul Casey.
12:35 pm: Sergio Garcia, Brooks Koepka, Jordan Spieth.
12:45 pm: Jason Day, Dustin Johnson, Henrik Stenson.
12:55 pm: Padraig Harrington, Keegan Bradley, Davis Love III.
1:05 pm: Zach Johnson, Lee Westwood, Charley Hoffman.
1:15 pm: David Lingmerth, Scott Brown, Nicolas Colsaerts.
1:25 pm: Scott Hend, Kenny Pigman.
1:35 pm: Kelly Kraft, Brian Smock, Patrick Rodgers.
6:25 am: Lucas Glover, Matt Dobyns, Hideto Tanihara.
6:35 am: Mike Small, Jason Kokrak, Satoshi Kodaira.
6:45 am: Thomas Bjorn, Branden Grace, Pat Perez.
6:55 am: Adam Scott, Luke Donald, Webb Simpson.
7:05 am: Billy Horschel, Matt Fitzpatrick.
7:15 am: Jimmy Walker, Phil Mickelson, Jason Dufner.
7:25 am: Rory McIlroy, Jon Rahm, Spain; Rickie Fowler.
7:35 am: Matt Kuchar, Justin Rose, Chris Kirk.
7:45 am: Daniel Berger, Jim Furyk, Kevin Kisner.
7:55 am: Ross Fisher, Rafa Cabrera Bello, Ryan Moore.
8:05 am: Jhonattan Vegas, Bryson DeChambeau, Jordan Smith.
8:15 am: Alex Beach, Sean O'Hair, Kevin Na.
8:25 am: Chris Moody, Luke List, Jamie Lovemark.
11:30 am: Grayson Murray, Rich Berberian Jr., Peter Uihlein.
11:40 am: Adam Rainaud, Tony Finau, Fabrizio Zanotti.
11:50 am: Younghan Song, Dave McNabb, Charles Howell III.
Noon: Sung Kang, Wesley Bryan, Dylan Frittelli.
12:10 pm: William McGirt, Francesco Molinari, Jim Herman.
12:20 pm: Gary Woodland, Andy Sullivan, Kyle Stanley.
12:30 pm: Rich Beem, Vijay Singh, John Daly.
12:40 pm: Louis Oosthuizen, Danny Willett, J.B. Holmes.
12:50 pm: Thomas Pieters, Xander Schauffele, Rod Pampling.
1 pm: Thorbjorn Olesen, Brendan Steele, Hudson Swafford.
1:10 pm: Cameron Smith, Bernd Wiesberger, Brandon Stone.
1:20 pm: K.T. Kim, Greg Gregory, James Hahn.
1:30 pm: Richard Sterne, Ryan Vermeer, Chris Stroud.


I have a program which runs on a cron schedule and pulls messages from Kafka. The problem I've seen is that only messages sent while my program is running are received and not messages sent between program executions. My application is committing the offset after each message is consumed. Is the problem with Kafka setup ? Or is my application not using the APIs correctly ?


With the season ending and the AFl and pretty muchg every other league ending for the year, its time to turn the attention to the reporting season. First cab off the rank is the AFL and its affiliated league releasing its participation data for 2012.
Total participation is UP 6.81% on 2011, to 844,000 participants and was the largest percentage increase since 2008.
On a state by state basis the non traditional states fared well with Queensland up 10% to 137,989, while New South Wales and the ACT are up 8.64% to 148,230. The Northern Territory recorded the highest state participation rate increase up 29% to 27,254 – 12% of the Territory's population. Only South Australia reported a drop, down 2.06%.
For males, the Sydney AFL Health Check report put up some interesting figures when comparing participation of males between the age of 5-39 play or participate in Australian Football.
Female participation is up 43% – easily the highest growth sector for Australian football. Victoria alone accounts for 4,000 girls in Auskick, and 9,000 females registered as players with clubs.
AFL9's, Australian footballs most recent incarnation, a 9-a-side game for both males and females continues to grow its numbers with a massive 167% increase in participation numbers and now has over 12,350 registered participants.
International Participation is also up 10% to 110,292.
In the AFLs newest target area, its reported that 36,000 juniors across 14 local government areas participated in Australian football, up 27% on last year.
Its important to note that to be counted as a participant by the AFL you must either be a registered player or complete a minimum 6 week Auskick program.
– AFL NSW/ACT manager for Western Sydney, Dean Connors.
Further details are not likely to be revealed until the 2012 AFL annual report is released in march next year.


text:
Sadly, it is not the Year of the Sturgeon in China
The "Panda of the Yangtze," a close relative of the sturgeon family, is now extinct.
The new decade 2020 began with the sad announcement that another species is now extinct – the Chinese Paddlefish (Psephurus gladius), a close relative of the sturgeon family. A paper by Chinese scientists concluded (based on IUCN criteria) that after 200 million years, the "Panda of the Yangtze" which reached up to 7m is now gone from the Yangtze forever. Although the paper received wide coverage in international media, unfortunately it only marked the scientific notification of a fate already sealed and known for some time. In fact, the authors estimated that the paddlefish went extinct somewhere in 2005–2010. The last time a live specimen was found was in 2003. Ten years before that (1993), scientists announced that the species was already "functionally extinct," meaning that for lack of mates it could not reproduce anymore. Therefore, the newest paper did not write a surprise ending for this sad story. Experts have been well aware of the situation for many years.
The paper well illustrates the factors behind the disappearance of the Chinese Paddlefish; and they sound all too familiar to those affecting sturgeon in other rivers such as the Danube. In particular, the combined effects of overfishing and the disruption of migration routes by both small and large dams without proper consideration for fish migration continue to have severe negative impacts on these species. On the Danube, the situation is best represented by the Iron Gates Dams.
The Chinese paddlefish population has been in gradual decline over the last century. Even so, until the 1970's, up to 25 tons of paddlefish were still harvested annually. When the Three Gorges and Gezhouba Dams were constructed on the Yangtze River in the 1980s without any fish passes, they cut off the paddlefish spawning grounds and sealed their fate.
The Danube River, which was historically the home to six distinct sturgeon species, is no exception to this repeating story. The European Atlantic sturgeon (Acipenser sturio) already disappeared long time ago from its entire Black Sea range. The last specimen was found in 1991 in the Rioni River in Georgia. This sturgeon is also sometimes referred to as the common sturgeon, since it was once found all across Europe. Today it is extirpated from all its entire range except in the Gironde-Dordogne-Garonne Basin in France. Less than 800 wild common sturgeons are thought to survive. A breeding and release programme is in place, but due to a very low number of fish in the breeding stock, it has not been very effective.
Action might also come too late for the ship sturgeon, another species once native to the Danube River system. Given that only three known specimens have been caught since 2000, most experts consider the ship sturgeon functionally extinct in the Danube River Basin.
Down from six to four!? None of the four remaining Danube sturgeon species are doing great either. If anything, these past stories should be ringing alarm bells in Europe, and in particular in the Black Sea Region. Currently, the Lower Danube and the Rioni River are the only rivers on the European continent where sturgeon that need to migrate between salt and freshwater environment still reproduce naturally. Only the sterlet, a pure freshwater species, can also be found upstream from the big and unpassable Danube dams such as the Iron Gates or Gabcikovo.
"There is so much more we want to learn about these fascinating fish, but we are running out of time and we know already well enough what measures need to be taken and that we need to take them now, in order to prevent their extinction" – Beate Striebel, WWF Sturgeon Initiative leader.
The only remaining relative is the American paddlefish, found in the Mississippi River Basin. © Kevin Schafer / WWF
As time is literally ticking for sturgeon, the Pan European Action Plan for Sturgeon Conservation clearly outlines what needs to be done. A year ago, governments signed up to this plan under the Bern Convention and the European Habitats Directive. It is time to follow up on these commitments. Otherwise we will soon read about similar stories like the one about the Yangtze Paddlefish.
The Chinese paddlefish was the largest predatory freshwater fish; one of only two paddlefish species in existence. The only remaining relative is the American paddlefish, found in the Mississippi River Basin in the United States. Almost nothing is known about its biology and ecology. Chinese paddlefish could reach 3-7 m (23 ft) in length and weigh up to 300-500 kg (https://en.wikipedia.org/wiki/Chinese_paddlefish) Both paddlefish species are closely related to the sturgeon family, of which 85 percent are threatened with extinction; making them the most endangered group of species globally.
WWF is engaged in sturgeon protection measures in most Danube countries. Sturgeons used to be present in almost all European rivers, but today seven out of the eight species of sturgeon on the European continent are threatened with extinction. Sturgeons have survived the dinosaurs, but now teeter on the brink of extinction. The Black Sea Region is crucial to the survival of these species in Europe. The Danube and the Rioni River in Georgia are the only two rivers remaining in Europe where migrating sturgeons reproduce naturally. The main reasons are overfishing and loss of habitat through dams that block migration routes or in-river constructions, facilitating navigation. These are often detrimental to the feeding and spawning habitats, necessary for sturgeon survival. Within the EU the only river with naturally reproducing sturgeon populations remains the Danube. Crucial but no longer reproductive stocks are left in the Po River in Italy and the Gironde in France. Restocking activities take place in Bulgaria, Hungary, Romania, France, Germany, Poland, Austria and the Netherlands. Our priority is to identify and protect the critical habitats of the remaining four sturgeon species (Huso huso, Acipenser stellatus, A. ruthenus, A. gueldenstaedtii) in the Lower Danube and north-western Black Sea, as well as to reduce pressure on their remaining populations by addressing poaching and ensuring protection.


Just to let you know that the next talk "Russia on the Couch" is completely full. Everyone who has booked has a seat.
If you have booked and are no longer able to come, please let me know and I will offer your seat to someone on the reserve list.
« Saturday 6th April 2019. Group Visit to The Queen's Gallery at Buckingham Palace.