Home military In the span of three weeks.
In the span of three weeks.
Three weeks ago today we were able to share with you all the news that Rob was getting medically discharged from the Army. We were entering another season of "hurry up and wait". Anybody that has ever had to deal with the military knows how common this season is.
37 hours ago we were waiting... with no dates marked out on the calendar. Then the phone rang and within the span of the last 36 hours - Rob got his final ETS orders and out-processed from Fort Campbell.
Today, my husband wore his uniform for the very last time. I will wash and put away his uniform for good. I will box up the t-shirts and long socks and celebrate never having to fold another shirt that sticks to itself (anyone else know what I'm talking about?!). I will never be woken up at 5 am to help find a patrol cap or tell him where he last took his boots off at. There will never be another mad dash to get PT clothing washed on a Sunday night.
This chapter is really coming to an end y'all.
We've got a matter of weeks left here in Clarksville. Just waiting on the movers now. I've got a last minute list of a handful of places I want to get to with the girls before we make our final trek to Kansas City.
But first we will celebrate Halloween. One last time in this military town. Officially a military family until terminal leave comes to an end in January... but already opening doors on this next chapter in life.
This is so surreal. I never thought this day would ever get here. And now here it is.
And I am ready, so ready.
Yes, we are in the hurry up and wait season too. I'm excited for your next chapter!
Gosh it all happened so quickly! I am excited for you guys and this new adventure you are embarking on.
Oh wow! How crazy. We'll be in this position in about 5 years and it'll be so weird! I hope you enjoy your next chapter in life.
The washing the uniform for the last bit time made me tear up. And the sticky shirts I know all too well!


text:
Supreme Court grants interim injunction against travel agent
The state's consumer watchdog is taking legal action against an Adelaide travel agent, after consumers were allegedly forced to fork out more than they bargained for to return home from overseas.
Commissioner for Consumer Affairs, Dini Soulio, says a public warning was issued last month against Olympia Express Tourist and Travel Office, also known as Olympia Express Travel Services, after they allegedly accepted payment for services but failed to deliver.
"We had numerous complaints from people who claimed to have paid for overseas holidays in full before leaving Australia, but later discovered that their ticket was either not booked or not paid for," Mr Soulio said.
Yesterday, in the Supreme Court of South Australia, CBS lodged action against Vasilios Koutropolous, trading as Olympia Express Tourist and Travel Office and Mary Boufkas, seeking a range of orders including declarations, penalties, injunctions and redress for consumers.
"In our action, we allege that during 2015, Mr Koutropolous engaged in misleading or deceptive conduct, made false or misleading representations about contractual rights and wrongly accepted money for international travel services in breach of Australian Consumer Law (SA).
"We further allege that Ms Boufkas was directly or indirectly, knowingly concerned in, or party to Mr Koutropolous' contraventions.
Today, the Supreme Court granted interim orders, by consent, ensuring the alleged conduct does not continue and to ensure redress is provided to a number of consumers. The orders were made pending final determination of the matter.
"We will be seeking final relief that would ensure that the defendants comply with Australian Consumer Law, that they pay penalties for alleged breaches of legislation, and that they pay compensation to travellers adversely affected by their behaviour."
If anyone has concerns about their travel plans or their dealings with Olympia Express Tourist and Travel Office or with Olympia Express Travel Services they should contact CBS on 131 882.

redpajama_set_name: RedPajamaCommonCrawl


Five million people a year visit the Grand Canyon. Tell someone you just visited the Grand Canyon and often the first question they ask is "Did you visit the North Rim or South Rim?" The real question is "Are you a North Rimmer or a South Rimmer?
95% of the visitors to the Grand Canyon go to the South Rim so statistically chances are you are a South Rimmer. The reason is geographically. The metropolitan areas of Phoenix, Flagstaff, Las Vegas and even Southern California are located generally south of the Canyon so the South Rim is the closest access. People from these areas need almost another full day to get to the North Rim.
The south rim has better expansive views than the North Rim. Visitors to the canyon have many more choices of scenic overlooks on this side of the canyon.
Weather plays a big role as far as which rim you visit. The South rim is at a lower elevation. Even though it does get snow in the winter, restaurants, lodges and parks stay open all year round. The North Rim can be cooler in the summer, but access is closed due to excessive snow in the winter.
The South Rim can be accessed by numerous day trips. Train enthusiast can enjoy a trip to the canyon and back on the Grand Canyon Day Tour train. For a more intimate trip to the South Rim, Pink Jeep Tours can pick you up from your hotel and go off road to the canyon. If you are part of a large group, riding in luxurious seats on a bus to the South Rim may be more your style.


text:
News • Technology Media Telecoms
Softbank, TBCASoft lead telecoms blockchain identity work
The Carrier Blockchain Study Group (CBSG) is a global consortium of at least 14 major telecoms carriers. Today SoftBank and TBCASoft announced the launch of the "Identification & Authentication" Working Group led by the two companies.
TBCASoft is a consortium co-founder and technology partner which created a new Carrier Identification System (CCIS) framework. The technology uses Zero-Knowledge Proofs and distributed ledger technology (DLT) to enable consumers to share and verify identities without revealing personal information.
Earlier this week South Korea's SK Telecom and Deutsche Telekom announced they were working together on blockchain digital identity.
Takeshi Fukuizumi, VP of SoftBank said, "We envision that individuals should create encrypted digital identities, instead of using and storing multiple usernames and passwords on databases here and there with various qualities of privacy protection. We have been working with TBCASoft on solving identification and authentication problems, and have an answer with CCIS. We believe that telecom operators under the CBSG Consortium will play very important roles in the global identity business."
"CCIS is a global platform that protects individuals' identities from fraudulent activities with telecom carrier-grade reliability," said Ling Wu, CEO of TBCASoft and Co-Chairman of CBSG.
Although CCIS will help to address the issues of consumers needing multiple accounts, the solution doesn't appear to involve 'self-sovereign identity' where the consumer holds and controls the data themselves. The announcement stated that "CCIS provides a blockchain-based solution operated by independent CBSG carrier members under a CCIS Cross-Carrier Consensus with carrier-grade reliability."
About CBSG
Six months ago the group announced a successful proof of concept for an international mobile payment service. Identity and payments are intimately entwined.
The CBSG was formed in September 2017 by US-based blockchain company TBCASoft, SoftBank Corp, Sprint, and Taiwan's Far EasTone. A year ago LG Uplus Corp, Etisalat Group, KT Corporation, and Telefónica signed up. And in the middle of last year, the group expanded to include Asia's Axiata Group Berhad, Philippine-based PLDT, PT Telekomunikasi Indonesia International, Turkey's Turkcell, Vietnam's Viettel, and Kuwait-headquartered Zain Group.
CBSG isn't the only telecoms consortium. There's the SK Telecom/Deutsche Telekom identity initiative already mentioned. Another four telecoms companies are working together with Clear blockchain technologies for bandwidth-on-demand. They are CBCcom (China), PCCW Global (Hong Kong), Sparkle (Italy) and Tata Communications (India).
Clear and PCCW are also at the center of a consortium that includes Colt, BT, Telefónica, HGC Global and Telstra focused on cross-carrier blockchain settlements.
Image Copyright: viteethumb%20studio / BigStock photo
Carrier Blockchain Study Group CBSG Digital identity identity Softbank TBCASoft telecoms
Auto companies to earn money from Hewlett Packard, Continental blockchain


In this year's volumes of Dialogi, which concludes with this issue, we have published several articles on the media. Thanks to the efforts of my colleague Boris Vezjak, the summer issue opened up the major topic of media censorship in Slovenia. This was during a time when the Slovenian media was silent on censorship and the difficulties faced by journalists, and hence the publication of this thematic issue of Dialogi also went largely without comment from the majority of the media. That which was once called censorship is today happening as part of "democratic" decision-making by journalists and editors about what is to be reported on and what is not. And if the media does not write or talk about some event or some person, then in media society, this event or person simply does not exist.
The problem of reporting, or not reporting, something also heavily impacts on Slovenian culture. Certain segments of culture do not even penetrate the media, or do so only with great difficulty. For example, where theatre production receives fairly decent coverage, the bulk of interesting and high quality book production is effectively ignored. The commercialization of the media has had a powerful influence on cultural reporting, since it requires writing mainly about events which attract a large number of readers, viewers, and listeners. Reporting on culture by commercial media has reduced it to a "scene". Thus a report on some theatrical production does not involve a professional critique, but is rather a social chronicle after the conclusion of the event. This type of reporting on culture is becoming increasingly prominent even on the pages of supposedly serious newspapers. In this way, it can happen that on the same day the same newspaper reports on the same cultural event in completely different ways on different pages. For example, after a ballet premiere we might find photos of various local VIPs in the company of various lovely ladies, glasses in hand, on the society page. The journalist writing the accompanying text offers up a one-sentence report along the lines of "it was charming." Meanwhile, on the culture page, an authoritative critic trashes the same performance with a devastatingly well-argued critique. In the same newspaper the reader thus encounters two completely different evaluations of an event: one conveys the message that it was charming, attended by the cream of society, and therefore very significant, while the other indicates that the performance was a poor one. We know which page has more readers. Some Slovenian artists long ago figured out that this kind of appearance at a "scene" serves as an excellent means of self-promotion. In this way more people learn who they are, their names become widely recognized, including to the national and local political personalities who finance their projects, and they also become better known to potential sponsors. If, at the same time, they are surrounded by journalists and editors inclined to report favourably on the event, this proves to be an excellent investment.
But let's restrict ourselves to a specific local scene. The Maribor newspaper Vecher, as the main print media locally, has several constants in its reporting on culture, which according to the judgment of their editorial board are deserving of special attention outside the cultural pages. These are cultural events which already have a sufficiently long tradition and at which members of the social elite gather (e.g. the Borshtnik meeting theatre festival) or which are aimed at mass audiences and go beyond just culture (e.g. the Lent Festival). Then there are a few other running themes on its pages, for example the undying nostalgia for the Obzorja publishing house, and more recently, of course, the European Capital of Culture project. Vecher also has its favourite cultural personalities. Without a doubt the top spot in this category goes to Tomaz Pandur. During his golden era at the Maribor Drama, in the first half of the 1990s, Pandur was a darling of the local media, which found him hugely charming and fascinating. More critical voices were for the most part kept out of the media, hence they might as well not have existed. At the end of his directorship of the Maribor Drama coverage of his activities did move from the culture and society pages to those devoted to crime reporting, but after Pandur's flight abroad, Vecher would merely publish some piece of news about him here and there. Vecher did not publish excerpts from critical reviews of his performances abroad, and any debate about the artistic merits of his projects was missing. A professional critic had this to say: "And so it happened that Tomaz Pandur, after his infamous departure from the Maribor theatre in 1996, was on the one hand regarded as a "dissident" hero of the new age, and on the other as a common fraudster; any definition of his true image and influence is strongly avoided by the Slovenian theatre and cultural public." (Blaz Lukan: Tihozitja in grimase/Still lifes and grimaces. 2007, p. 161). And it was precisely into this undefined space that Pandur returned this past spring, with the help of – the media. The now ex-director of Vecher, Milan Predan, argued in favour of the unusual media sponsorship by his organization of the visit by the Pandur Theaters group for a performance of the Tesla Electric Company in the Slovenian National Theatre in Maribor by emphasizing the need to put the phenomenal Pandur in the place where he belongs. I cannot remember a time when the Slovenian media ever orchestrated a campaign to financially support and promote a person or project with a precisely defined aim. This aim is Pandur's inclusion in the Maribor – European Capital of Culture 2012 project. Vecher's construction of reality was complete: from the numerous announcements and press conferences to the big interview, raffling of free theatre tickets to readers, and a glossy theatre programme as a free supplement to the newspaper.
We will not involve ourselves here in the critical arguments for and against Pandur's theatre. We simply wonder what it is about his theatre that so attracts a certain social stratum and how that theatre functions in society.
When Pandur's tenure at the Maribor Drama began in 1990 with a performance of Faust, a new type of public began flocking to the foyers of the Slovenian National Theatre in Maribor (even as some others stopped going there). We referred to them, in the slang of our generation, as shminkerji, snobi, and hohshtaplerji, (pretty boys, snobs, and poseurs), otherwise covered by the emergence of the so-called nouveaux riches within the newly stratified society. Pandur directed his dreamlike performances in a time when Maribor's economy was collapsing and its workers were being pushed to the margins of society. In this impoverished environment, a thin social layer of newly rich wanted glitter, glamour, wealth and space for themselves. The Maribor theatre is, now that it has been renovated and expanded, the only space in the city where members of the Maribor (petit) bourgeois can show themselves in their best finery, and where there is no risk of encountering the anxious faces of the poor who otherwise walk the streets of their city. The premises of the theatre are so glamorous and representative that political VIPs from the capital also like to frequent them, especially during election campaigns.
Pandur's theatre is of course not political in its content, but it has its immanent artistic world which is displayed in rich, extravagant visual images, which as theatrical metaphors are often incomprehensible in the context of the content, especially in connection with the pathetically spoken, freely assembled text. This theatre frequently chooses as its material grand, well-known and timeless themes and personalities (Faust, Hamlet, Carmen, Divine Comedy, Tesla, etc.). Based on this basic principle, the Pandur theatre has remained the same throughout and is still so today, when Slovenian theatre after a long period of self-reflection with the performances of director Sebastjan Horvat experienced a breakthrough into a new, provocative, and politically engaged direction. Horvat's provocative approach grabs the public into its magic circle, causes it to become uncomfortable or emotionally euphoric, and by all means forces it to think about the contemporary social moment. This cannot happen to the public at Pandur's theatre, since it does not deal with contemporary social problems. The public remains aware for the entire time that it is at a performance which offers primarily a purely aesthetic pleasure which charms and solicits admiration. This kind of art can be shown to anyone, as if to say, we too can produce extravagance and glamour. And this kind of art is representatively useful for politics as well.
For individual cities, the European Capital of Culture as a political project of the EU is often a plaster on their wounds. If neighbouring Graz in 2003 healed its inferiority complex in comparison with the dominant Vienna with the slogan "Graz – who would have guessed!", it appears from the media support of the return of Tomaz Pandur to Maribor that the latter will cure its complex as a poor city with uncertain prospects with the inclusion of a Pandurian spectacle in the program of the European Capital of Culture.
Is Ukraine right to block media from Russia?
Western commentators have lambasted Ukraine's decision to ban Russian media, TV and film. But Mykola Riabchuk argues that attacking the move as censorship ignores its context: namely, Russia's ongoing war against Ukraine.
The authorities in Spain are increasingly cracking down on public criticism, with comedians amongst those most at risk.


text:
Delving into the ocean's changing role in climate change
Researcher Roberta Hamme. Credit: UVic Photo Services
The ocean plays an essential role in absorbing large quantities of excess carbon dioxide released by human activities—a role critical to a healthy climate and life on earth—yet not enough is known about the rate at which absorption happens or how it will change as the ocean warms and acidifies.
A pan-Canadian research team led by the University of Victoria received $540,000 in funding to address this knowledge gap. The team will investigate the ocean's role in slowing climate change as part of the federal government's $4.7 million Advancing Climate Change Science in Canada initiative announced today by Minister of Environment and Climate Change Catherine McKenna at UVic.
Led by Roberta Hamme, a chemical oceanographer and associate professor in the School of Earth and Ocean Sciences, the research will help Canada measure the absorption of carbon dioxide and predict how it will change in the future in Canada's three oceans. The team brings together university and government scientists to train students at seven universities across Canada to develop the next generation of techniques that will be used to integrate observations from new ocean technologies and computer modelling efforts.
"Science clearly shows us the causes of climate change, and our government is supporting the scientists that we know will show us the solutions. Working with scientists and academics will help us keep pushing forward in the fight against climate change. By coming together and working collaboratively we can ensure a safer, more prosperous future for our children and grandchildren," said McKenna.
The Advancing Climate Change Science in Canada initiative is funded jointly by the Natural Sciences and Engineering Research Council of Canada, Environment and Climate Change Canada and Health Canada to increase scientific information available to support government decision making on climate action.
UVic is a world leader in research on ocean science and technology, climate modelling, climate and adaptation, and the development of innovative clean energy technologies. More information.
Read the Government of Canada news release
-- 30 --
Roberta Hamme (Earth and Ocean Sciences) at 250-472-4014 or rhamme@uvic.ca
Denise Helm (University Communications + Marketing) at 250-721-7656 or dhelm@uvic.ca
Keywords: Oceans, climate change, research, Earth and Ocean Sciences, Roberta Hamme
People: Roberta Hamme
A decade of Schulich leaders
The Torch
Prestigious scholarship program celebrates 10 years of creating tomorrow's tech innovators.
New UVic research chairs
New UVic Canada Research Chairs focus on Indigenous law, renewable energy research, substance use policy and marine fisheries adaptation.
Ocean-based carbon removal
A new global shows current levels of CO2 emissions greatly exceed the ability of nature to remove it from the environment, and reducing carbon emissions alone may not be enough to stabilize the climate.
New funding for marine education
This year, Michael and Anita Hadley established the Hadley Memorial Award for Studies at the BMSC. And as part of Giving Tuesday they are challenging donors across the university.


text:
Q: how to send form data to server in encrypted form in php? I want to send input data of form in encrypted data at another page.
How to do this in PHP or JavaScript.
e.g we have username and password as sunps and 1234,
and I want to send it on the server like
http://localhost/suraj/auth.php?user=xjhgwdb&pass=hjfgdsjg

A: If you want to send the data encrypted to a website (localhost is harder to set up), simply use HTTPS on your website and let the browser and server handle everything for you. You will seemingly send  the data unencrypted, the php script will get it unencrypted, but on the network the data will be encrypted using SSL.
For more info, see https://en.wikipedia.org/wiki/HTTPS#Security or https://blog.nexcess.net/2014/09/03/the-pros-and-cons-of-implementing-ssl-https/

A: You can use this Cipher Class to encrypt strings
Use this exemple with my class to encrypt and decrypt a string:
public static void main(String[] args){

    // Generate a key-pair
    KeyPair keyPair = BaseCrypt.generateKeyPair();

    byte[] publicKey = BaseCrypt.generatePublicKey(keyPair);
    byte[] privateKey = BaseCrypt.generatePrivateKey(keyPair);

    byte[] dataBytes =
        "J2EE Security for Servlets, EJBs and Web Services".getBytes();

    byte[] encBytes = null;
    byte[] decBytes = null;

    try {
        encBytes = BaseCrypt.encrypt(dataBytes, publicKey);
        decBytes = BaseCrypt.decrypt(encBytes, privateKey);
    } catch (Exception ex) {
        Logger.getLogger(MainClass.class.getName()).log(Level.SEVERE, null, ex);
    }

    boolean expected = java.util.Arrays.equals(dataBytes, decBytes);
    System.out.println("Test " + (expected ? "SUCCEEDED!" : "FAILED!")+": ");
    System.out.println(new String(decBytes));
}

The BaseCrypt Class:
public class BaseCrypt {

public static byte[] encrypt(byte[] inpBytes, byte[] key) throws Exception {
    KeyFactory kf = KeyFactory.getInstance("RSA"); // or "EC" or whatever
    //PrivateKey privateKey = kf.generatePrivate(new PKCS8EncodedKeySpec(privateKeyBytes));
    PublicKey publicKey = kf.generatePublic(new X509EncodedKeySpec(key));
    String xForm = "RSA/ECB/PKCS1Padding";
    Cipher cipher = Cipher.getInstance(xForm);
    cipher.init(Cipher.ENCRYPT_MODE, publicKey);
    return cipher.doFinal(inpBytes);
}
public static byte[] decrypt(byte[] inpBytes, byte[] key) throws Exception{
    KeyFactory kf = KeyFactory.getInstance("RSA"); // or "EC" or whatever
    PrivateKey privateKey = kf.generatePrivate(new PKCS8EncodedKeySpec(key));
    String xForm = "RSA/ECB/PKCS1Padding";
    Cipher cipher = Cipher.getInstance(xForm);
    cipher.init(Cipher.DECRYPT_MODE, privateKey);
    return cipher.doFinal(inpBytes);
}
public static KeyPair generateKeyPair(){
    KeyPairGenerator kpg = null;
    try {
        kpg = KeyPairGenerator.getInstance("RSA");
    } catch (NoSuchAlgorithmException ex) {
        Logger.getLogger(MainClass.class.getName()).log(Level.SEVERE, null, ex);
    }
    kpg.initialize(1000); // The size of the key
    KeyPair kp = kpg.generateKeyPair();
    return kp;
}
public static byte[] generatePublicKey(KeyPair keyPair){
    PublicKey key = keyPair.getPublic();
    return key.getEncoded();
}
public static byte[] generatePrivateKey(KeyPair keyPair){
    PrivateKey key = keyPair.getPrivate();
    return key.getEncoded();
}
}

redpajama_set_name: RedPajamaStackExchange


In 'The Doll', a waterlogged notebook is washed ashore. Its pages tell a dark story of obsession and jealousy. But the fate of its narrator is a mystery.
Most of the stories in this haunting collection were written early in Daphne du Maurier's career – when she was still in her early twenties – yet they display her mastery of atmosphere, tension and intrigue and reveal a cynicism far beyond her years.


Jess Varnish and Katy Marchant criticised Great Britain's selection policy after failing to secure a team sprint place at the Rio Olympics.
The pair missed out after finishing fifth in qualifying at the Track Cycling World Championships in London.
They blamed selectors for trying out inexperienced riders in the build-up to the Games, which take place in August.
"I feel sick," said Varnish, who was disqualified at London 2012 when competing with Victoria Pendleton.
British Cycling head coach Iain Dyer stood by the decisions made over the two-year qualification period.
"I fully understand their disappointment but we've done the best we can on every possible turn," he said.
However, Varnish – who could yet go to Rio in the individual sprint and Keirin – laid the blame firmly with her coaching team.
"We have been basically playing catch-up through bad decisions and bad luck," said the 25-year-old from Worcestershire.
"There's been people put out for races – say the European Championships last year – and it's great they've been given an opportunity to go to major championships and to try to qualify the 'A team' a place at the Olympic Games, but they're not there yet.
"It should not be their job. To have to qualify for the Olympic Games, it should not be a development programme. It should be 'A team', 'A team', 'A team'.
The men's team of Philip Hindes, Jason Kenny and Callum Skinner have already qualified for Rio but also struggled in London, finishing sixth in qualifying.
Three-time Olympic champion Kenny said: "It was a massive step forward.
New Zealand took gold in the men's sprint and Russia won the women's title.
"I love Jess dearly and her experience in London was tough. I feel very sad that they won't get a chance to ride the team sprint at the Olympics because I really do think they have got the right ingredients there and they could find a very successful team.
"It breaks my heart. It won't be easy for the girls to go to sleep tonight but there's always another day, and there's always another chance to ride.
"The best thing about it is those girls are still so young. I didn't start track racing until I was in my early twenties – these girls have already got three of four years' training on me, and they've got plenty more Olympic chances ahead of them.
There was better news for Britain's team pursuit men as they qualified fastest earlier on day one.
Sir Bradley Wiggins made a strong start to his first Track Cycling World Championships for eight years alongside Steven Burke, Jonathan Dibben and Owain Doull, clocking three minutes 55.664 seconds in the team pursuit.
Britain will take on Italy (3:57.800) in Thursday's semi-finals.
Australia (3:55.867) and defending champions New Zealand (3:57.050) will meet in the second semi-final.
Wiggins, 35, is targeting a fifth Olympic gold medal in Rio and a British record eighth medal in all.
Chris Latham, 22, finished ninth in the scratch race on his World Championships debut, with Spain's Mora Vedri taking gold.
Australia's Rebecca Wiasak beat Poland's Malgorzata Wojtyra to retain her individual pursuit title.
"The British team did what we expected them to. They're there or thereabouts. There were disappointments and real promise.
"The men's pursuit team were really ragged but did an incredible ride to still qualify fastest. The Australians looked as if they still had plenty left to give, so it's going to be an incredible final. It looks like they could be back on track for gold in Rio and here.
"The women's team sprint was obviously disappointing, but the British team has always said they're about gold medals and if you're trying to get to the Olympic Games it's nice for the individual, but the programme is funded for Olympic golds.


Sustainability is what fuels us to create a better tomorrow for ourselves and future generations. It is a practice that prepares us for a world filled with change and uncertainty. Sustainability is working towards things that will positively change the way that we interact with the world and how we live our everyday life. Additionally, it involves looking at our own environmental footprint and reducing that to zero through innovative measures such as finding energy efficient solutions and recycling our waste.
The first and foremost way of creating a sustainable society or achieving sustainable living is making use of the three R's of sustainability—Reduce, Reuse, and Recycle - which are the main drivers of production and consumption. However, the most important thing in this process is ensuring less exploitation of natural resources as a means of continuing economic activities.
Most of us have been conditioned with powerful, pervasive myths that prevent us from understanding sustainability and conspire to maintain the course toward ecological disaster. We like to think of ourselves as having somehow graduated from nature because of our large brains and posture. However, the reality is much different—it is impossible for us to extract ourselves from our dependence on the Earth.
Our technology, food and all that civilization entails ultimately comes from the Earth. We are unique among creatures, but creatures nonetheless. We believe we are able to control nature because agriculture and other technologies appear to free us from the limits placed on other creatures.
However, if we continue with our current ways we will eventually run into the natural constraints of our environment that we have no control over.
The discovery of abundant hydrocarbons made possible inventions that powered automobiles and factories. Today, the fingerprints of oil are everywhere. The process to create petroleum takes millions of years, yet our consumption continues at a rate beyond any possibility for renewal. The use of fossil fuels is the very definition of unsustainable. It is a finite resource that will run out eventually.
Much energy and many resources are spent promoting solutions such as recycling. Instead of leading to sustainability, this often assuages our guilt and allows us to ignore our own complicity in larger systems that degrade our environment. This doesn't mean we should stop recycling, but we should recognize what it accomplishes and what it doesn't.
Renewable sources of energy may be able to provide a level of energy indefinitely, but we should not expect to continue current energy consumption rates. Scarcity is a foundational assumption in modern economics, assuming that human wants and needs are unlimited and the resources available to satisfy those needs are scarce.
Capitalism claims to solve this problem by allocating resources using the tools of the market.
Unfortunately, the current economic arrangement does not account for things such as the value of common goods, including natural resources like air and water quality, topsoil and biodiversity. The truth is, the earth naturally provides an abundance of resources.
Mahatma Gandhi once said, "The Earth provides enough to satisfy every man's need but not for every man's greed." Scarcity only exists if human wants and needs are, in fact, unlimited." And in that statement, truth abides.


Let's look first as you define and create a range.
A range defines an interval that has an initial value and a final value, it is defined using the operator ..
Var letters = "a" .. "z"
The two if are true.
Let's now see the repetitive structure for using a range to repeat a block of commands.
Perform a program that prints the numbers from 1 to 100 on the screen using kotlin For loop.
In the first execution of the repetitive cycle i stores the initial value of the range ie the 1. After executing the block the variable i takes the value 2 and so on.
Develop a program that allows the loading of 10 values per keyboard and then show us the sum of the values entered and their average. This problem we already developed using the while, we will solve it using the for loop structure.
As we can see the variable i within the for loop is not used within the repetitive block and only serves us to make the block contained in the for is repeated 10 times.
When we know how many times to repeat a block of instructions it is more convenient to use the for a while where we must define, initialize and increment a counter.
Write a program that reads 10 student grades and tell us how many have grades greater than or equal to 7 and how many grades using for loop.
In this problem remember that the counter i takes the first turn the value 1, then the value 2 and so on up to the value 10000.
If we want to find out if a value is a multiple of 3 we get the remainder to divide it by 3 and if that result is zero then we can infer that the number is a multiple of 3.
Write a program that reads n integers and computes the number of even values entered with for loop.
This type of problem can also be solved by using the for repetitive structure because when we express the range we can have a variable name.
Until the program is executed we can not know how many times the for is repeated. The number of repetitions will depend on the number that the operator loads.
The values 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 are printed.
The values 10, 8, 6, 4, 2 are printed.
A) From each triangle the measure of its base, its height and its surface (the surface is calculated by multiplying the base by the height and dividing by two).
B) The number of triangles whose surface area is greater than 12.
Develop a program that requests the loading of 10 numbers and print the sum of the last 5 values entered with FOR loop.
Example: If you entered 3, the values 3, 6, 9, up to 36 must be displayed using for loop.
Write a program that asks you to enter coordinates (x, y) that represent points in the plane using for loop.
Inform how many points have been entered in the first, second, third and fourth quadrant. At the beginning of the program you are asked to enter the number of points to process.
A) The amount of negative values entered.
B) The number of positive values entered.
C) The number of multiples of 15.
D) The accumulated value of the numbers entered that are even.


text:
Posted on July 11, 2020 by stoneagedoc
Pandemic Perspective #17 July 11, 2020
Is herd immunity a false hope?
Almost since COVID-19 became the leading story of 2020 there has been the hope that herd immunity would bring the pandemic to an end. Not likely. Authorities have flip-flopped on issues such as transmissibility, susceptibility, mask effectiveness, the efficacy of old and new drugs and ventilator therapy. We shouldn't be surprised if the concept of herd immunity will be tested.
When a new microbe invades a population it sickens some, kills some and infects some who show no apparent symptoms. At a given point there are too few potential victims remaining or they are too widely dispersed so that the infectious agent seems to vanish. It might circulate quietly without causing much notice but can resurface when a new population of susceptible persons arises. The surviving herd is now relatively immune but danger always lurks.
That is not the ideal type of herd immunity because it is only temporary. A more desirable form of herd immunity is based on vaccines. When most of a population has been vaccinated – measles is a good example – a virus that arrives from the outside has no place to go. As long as immunization rates remain high, ideally above ninety percent, herd immunity is permanent and can remain so for generations, unlike that which occurs in natural infections.
Because measles vaccination was so effective by the end of the 20th century the United Sates was declared to be measles-free, a state that quickly changed when increasing numbers of parents refused to allow their children to receive routine childhood vaccinations, including MMR (Measles-Mumps-Rubella). In the past two decades there have been several outbreaks of measles when persons from outside the United States introduced the virus to a population not all of whom had vaccine-induced immunity.
How will the herd react to the coronavirus? The honest answer is that no one knows. In a world without a vaccine it will take years, perhaps decades, before most of the population has been infected, leaving behind so few susceptibles that the virus becomes an annoyance and not a threat, at least temporarily as noted above. As of mid-July there have been fewer than 15 million cases worldwide. Some epidemiologists believe that there are at least ten times that many persons who have encountered the virus but who have been misdiagnosed or missed entirely because they have had few or no symptoms, a total of perhaps 150 million. Among a global population of 7.5 billion that represents only 2 percent who have experienced the virus thus far. The likelihood of a naturally-occurring herd immunity is vanishingly small, especially when government officials are madly scrambling to prevent the development of herd immunity by limiting exposure.
Enter an effective, i.e., fully protective and long-lasting vaccine. Even if some of the more than 150 companies now racing toward this goal are successful, what will it take to provide herd immunity? Again, no one knows. Some vaccine candidates require two doses; some, like the influenza vaccine, may require annual doses. Protecting most of the world's population with even a single lifetime dose will require a logistical effort unlike any that the world has ever accomplished.
Unless there is an immediate breakthrough with a highly effective drug against the SARS-CoV-2 virus it's likely that a quarter-million Americans will have died of this disease by the end of 2021. Roughly half will have had conditions such as diseases of the heart, lungs or kidneys; most of those will be the elderly; being overweight and having type 2 diabetes are major risk factors. Perhaps a COVID-19 vaccine will protect individuals in these groups. I certainly hope so.
Unfortunately, herd immunity will not be a factor.


There's no shortage of great brunch places around South East London but I think I've now found a solid favourite, by way of Brick House Bread, which has two locations in East Dulwich and Peckham Rye. It's the original, the East Dulwich spot I'm here to rave about (though the smaller bakery just off of Peckham Rye is a good quick coffee stop) which is set in an airy old electrical warehouse just off Lordship Lane. It's got that raw industrial feel and houses a working bakery, shop, and café, which, at any time of day you can expect to find buzzing with mums and babies, friends grabbing brunch, or studious types plugging away on their laptops. With large, old windows, it's flooded with natural light and has a poured concrete floor, white wash brick walls, and simple Scandi-ish wooden tables and chairs.
I went basic and got dippy eggs with buttery sourdough soldiers, which I doused in the marmite that's put on every table. DELICIOUS. Ed got the shakshuka with spicy Merguez lamb sausages, which was SO tasty and rich, with peppers, yoghurt and zingy zhug.
I can't wait to go back for more soldiers, to try the smoked haddock brekkie, and the colourful salads that are piled high in bowls at the counter, and to soak up more of the that cool cafe buzz and the beautiful raw space. Love it.
BRICK HOUSE BREAD, 1 ZENORIA STREET, EAST DULWICH, SE22 8HP.


We all dream of the places we would love to go. A mental bucket list of dream destinations and a place to lose ourselves, for even just a little while. I read a quote once which stayed with me "if we were meant to stay still we would have had roots for feet". I firmly believe in making the most of the time we have alive, and for me that means seeing as much as possible in the world. There is no better self education than the experiences you hold yourself.
I've been fortunate enough to already visit several places in my life, often on others travel bucket lists. From walking the neon streets of Tokyo, to feeling the intense heat of summer in Hong Kong, or driving down Route 66 in Arizona. So here's my dream list of locations I'm yet to venture to, and hope that one day - I will.
I first fell in love with the idea of travelling to Australia, when an old school friend - originally from Sydney, returned home after spending her high school in the UK. She told us all about evenings spent on the beach, relaxing weekends feeling the sand in your toes, swimming along the great barrier reef, and driving along the views of the Great Ocean Road. She sold me a dream and I was in love. Ever since I've been busy dreaming up the idea of a road trip along the Great Ocean Road.
Peru had never really crossed my mind, until one day, one of my best friends in high school upped-sticks and moved across the world to live there. After getting over the initial shock, I fell in love with the photographs she would share and tales of the people she met along the way, and of course the llamas! It looks so culturally different to what life is like here in the UK, and it's definitely somewhere I'd love to experience for myself. Hiking to Machu Picchu is one of the worlds great wonders, and definitely a sight I'd love to behold.
Ever since seeing the delights of Giraffe Manor, I fell in love with the idea of going to South Africa and experiencing a real life safari. To see animals in the wild out on the open plains and not in a zoo is something that would be a dream. I'd love to visit a conservation project and see how differences are being made in the wild to preserve species. That and who wouldn't love to watch an African sunset go down?
So this one is a little bit of a cheat, as we are actually intending on going to Iceland this winter! Seeing the Northern Lights has been a dream of mine ever since learning about them as a child. A beautiful natural phenomenon, I think I might actually shed a little tear if we get to experience it!
Who wouldn't love the idea of having a practically empty beach to yourself whilst you watch the waves roll in? Island life in French Polynesia looks so idyllic, I fear I might never want to come home. Although it's one of the furthest places to get to from the UK, don't you think it would all be worth it?
As much as I'm a feet planted firmly on the ground kinda girl, there's no denying the beauty of the mountains and the breathtaking views they offer. There's a certain secret element to the Himalayas which makes things feel still untouched ready to be discovered. I'd love to head into Tibet and experience the cultures and bright colours of all the temples.
I'm fascinated by the history of Cuba and the way everything appears to be stopped still in time. From the vintage cars and bright colours of the crumbling buildings, everything feels like a much slower pace of life. Not to mention their vibrant music scene and fabulous food, yes please!
Someone once told me that New Zealand is like the UK, only with more pronounced seasons and actual nice sunshine from time to time. I don't know how right they are about that, but it looks beautiful all the same. I'd love to visit the locations for Lord of the Rings and see the Hobbit houses too for an alternative tour of the country. A while back I also shared a guest post from Abbi who's talking about all the best things to do in Christchurch.
I spent a lot of my childhood back and forth to the USA. And although I have been to California once before, to San Diego, I would absolutely love to go to San Francisco. Everything just looks so damn cool, and to make matters worse - my parents visited without me one year and I've never let them live it down.
When my grandad was young he was in the second world war. Here he was stationed in India, and when I was a child and he was still alive - he showed me a tiny black and white photograph of him sat in front of the Taj Mahal on that famous seat. I'd love to one day take that photograph with me and recreate that same photograph and experience all the wonderful colours and culture of India.
What's on your ultimate travel bucket list?


Sometimes I may not be clear on a certain topic. Perhaps you're a raid officer who wants to discuss a few things with me. Maybe you're a Priest and you're not quite sure which weapons to use. Whatever your reasons, you are all certainly more than welcome to direct any questions, thoughts, comments, and the like to myself.
After all, isn't that why you came to this page?
If you don't want to use the contact form below, you can contact me via email: matttz at gmail dot com (Yes, that's 3 t's).
@matticus: Your favourite Dwarf Priest!
@LodurZJ: The most electrifying Shaman in Restoration today!
Note: Using the contact form sends your message to Matt and Lodur.


Registration is open for the Downingtown West Girls' Winter Lacrosse Clinics for all girls in Grades K to 8.
Participants will need a stick, goggles and a mouthguard!
EXTRA: Camp participants will receive a Clinic T-shirt. Camp participants will also be invited to join the DWHS Girls' Lacrosse Team at one of their games (TBA) and be honored at half time!
We will accept registration up to the date of the clinics; walk-up are welcome! To guarantee a Clinic shirt please register by Monday, January 21st , 2019!
My daughter is in good health and I certify that she has my approval to take part in all clinic activities. It is understood that the DWHS Girls Lacrosse Booster Club, its directors, and anyone connected to the clinic will not assume any responsibility for accidents (medical or dental), allergies, or any expenses incurred as a result of accidents, and that clinic staff may call emergency personnel if deemed necessary.
This entry was posted on Thursday, January 17th, 2019 at 9:22 am and is filed under Clinics, Events, Girl's/Women's, Youth. You can follow any responses to this entry through the RSS 2.0 feed.


text:
Q: Is there a way to get corresponding values of indexes within keys in a dictionary? So let's say I have a dictionary for object detections:
dict = {'x1y1coords': [(124, 101), (22, 104)], 'objecttype': [1, 2]}

is there a way that I can easily extract the first value under the list which is under the key value x1y1coords? Just to show what I have in mind:
print((dict['x1y1coords'])[0])

something like this (just to further explain what I had in mind). It's like getting the index of a key index of a dictionary.
And also, it is quite related to this topic, so I don't think I need to create another question (but you can advise me if you think this question needs to be discussed as another problem), I would also like to compare the values of that [x] from ['x1y1coords] to the values of [x] from ['objecttype']. By using my sample code (the one within the print function):
if (dict['objecttype'])[x] == 2:
     p1, p2 = (dict['objecttype'])[x]

A: Yes, you can absolutely do exactly that:
>>> d = {'x1y1coords': [(124, 101), (22, 104)], 'objecttype': [1, 2]}
>>> d['x1y1coords']
[(124, 101), (22, 104)]
>>> d['x1y1coords'][0]
(124, 101)

If you wanted to assign those values to x and y you could do:
>>> x, y = d['x1y1coords'][0]
>>> x
124
>>> y
101

If you wanted to do something with all the x, y values in the list, instead of just the first one ([0]) you might use a for loop:
>>> for x, y in d['x1y1coords']:
...     print(f"x: {x}\ty: {y}")
...
x: 124  y: 101
x: 22   y: 104


text:
/******************************************************************************
 *
 * Module Name: ahdecode - Operator/Opcode decoding for acpihelp utility
 *
 *****************************************************************************/

/******************************************************************************
 *
 * 1. Copyright Notice
 *
 * Some or all of this work - Copyright (c) 1999 - 2012, Intel Corp.
 * All rights reserved.
 *
 * 2. License
 *
 * 2.1. This is your license from Intel Corp. under its intellectual property
 * rights.  You may have additional license terms from the party that provided
 * you this software, covering your right to use that party's intellectual
 * property rights.
 *
 * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
 * copy of the source code appearing in this file ("Covered Code") an
 * irrevocable, perpetual, worldwide license under Intel's copyrights in the
 * base code distributed originally by Intel ("Original Intel Code") to copy,
 * make derivatives, distribute, use and display any portion of the Covered
 * Code in any form, with the right to sublicense such rights; and
 *
 * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
 * license (with the right to sublicense), under only those claims of Intel
 * patents that are infringed by the Original Intel Code, to make, use, sell,
 * offer to sell, and import the Covered Code and derivative works thereof
 * solely to the minimum extent necessary to exercise the above copyright
 * license, and in no event shall the patent license extend to any additions
 * to or modifications of the Original Intel Code.  No other license or right
 * is granted directly or by implication, estoppel or otherwise;
 *
 * The above copyright and patent license is granted only if the following
 * conditions are met:
 *
 * 3. Conditions
 *
 * 3.1. Redistribution of Source with Rights to Further Distribute Source.
 * Redistribution of source code of any substantial portion of the Covered
 * Code or modification with rights to further distribute source must include
 * the above Copyright Notice, the above License, this list of Conditions,
 * and the following Disclaimer and Export Compliance provision.  In addition,
 * Licensee must cause all Covered Code to which Licensee contributes to
 * contain a file documenting the changes Licensee made to create that Covered
 * Code and the date of any change.  Licensee must include in that file the
 * documentation of any changes made by any predecessor Licensee.  Licensee
 * must include a prominent statement that the modification is derived,
 * directly or indirectly, from Original Intel Code.
 *
 * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
 * Redistribution of source code of any substantial portion of the Covered
 * Code or modification without rights to further distribute source must
 * include the following Disclaimer and Export Compliance provision in the
 * documentation and/or other materials provided with distribution.  In
 * addition, Licensee may not authorize further sublicense of source of any
 * portion of the Covered Code, and must include terms to the effect that the
 * license from Licensee to its licensee is limited to the intellectual
 * property embodied in the software Licensee provides to its licensee, and
 * not to intellectual property embodied in modifications its licensee may
 * make.
 *
 * 3.3. Redistribution of Executable. Redistribution in executable form of any
 * substantial portion of the Covered Code or modification must reproduce the
 * above Copyright Notice, and the following Disclaimer and Export Compliance
 * provision in the documentation and/or other materials provided with the
 * distribution.
 *
 * 3.4. Intel retains all right, title, and interest in and to the Original
 * Intel Code.
 *
 * 3.5. Neither the name Intel nor any other trademark owned or controlled by
 * Intel shall be used in advertising or otherwise to promote the sale, use or
 * other dealings in products derived from or relating to the Covered Code
 * without prior written authorization from Intel.
 *
 * 4. Disclaimer and Export Compliance
 *
 * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
 * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
 * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
 * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
 * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
 * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
 * PARTICULAR PURPOSE.
 *
 * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
 * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
 * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
 * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
 * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
 * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
 * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
 * LIMITED REMEDY.
 *
 * 4.3. Licensee shall not export, either directly or indirectly, any of this
 * software or system incorporating such software without first obtaining any
 * required license or other approval from the U. S. Department of Commerce or
 * any other agency or department of the United States Government.  In the
 * event Licensee exports any such software from the United States or
 * re-exports any such software from a foreign destination, Licensee shall
 * ensure that the distribution and export/re-export of the software is in
 * compliance with all laws, regulations, orders, or other restrictions of the
 * U.S. Export Administration Regulations. Licensee agrees that neither it nor
 * any of its subsidiaries will export/re-export any technical data, process,
 * software, or service, directly or indirectly, to any country for which the
 * United States government or any agency thereof requires an export license,
 * other governmental approval, or letter of assurance, without first obtaining
 * such license, approval or letter.
 *
 *****************************************************************************/

#include "acpihelp.h"

#define ACPI_CREATE_PREDEFINED_TABLE
#include "acpredef.h"

#define BUFFER_LENGTH           128
#define LINE_BUFFER_LENGTH      512

static char         Gbl_Buffer[BUFFER_LENGTH];
static char         Gbl_LineBuffer[LINE_BUFFER_LENGTH];
static const char   *AcpiRtypeNames[] =
{
    "/Integer",
    "/String",
    "/Buffer",
    "/Package",
    "/Reference",
};

/* Local prototypes */

static BOOLEAN
AhDisplayPredefinedName (
    char                    *Name,
    UINT32                  Length);

static void
AhDisplayPredefinedInfo (
    char                    *Name);

static void
AhGetExpectedTypes (
    char                    *Buffer,
    UINT32                  ExpectedBtypes);

static void
AhDisplayAmlOpcode (
    const AH_AML_OPCODE     *Op);

static void
AhDisplayAslOperator (
    const AH_ASL_OPERATOR   *Op);

static void
AhDisplayOperatorKeywords (
    const AH_ASL_OPERATOR   *Op);

static void
AhDisplayAslKeyword (
    const AH_ASL_KEYWORD    *Op);

static void
AhPrintOneField (
    UINT32                  Indent,
    UINT32                  CurrentPosition,
    UINT32                  MaxPosition,
    const char              *Field);

/*******************************************************************************
 *
 * FUNCTION:    AhFindPredefinedNames (entry point for predefined name search)
 *
 * PARAMETERS:  NamePrefix          - Name or prefix to find. Must start with
 *                                    an underscore. NULL means "find all"
 *
 * RETURN:      None
 *
 * DESCRIPTION: Find and display all ACPI predefined names that match the
 *              input name or prefix. Includes the required number of arguments
 *              and the expected return type, if any.
 *
 ******************************************************************************/

void
AhFindPredefinedNames (
    char                    *NamePrefix)
{
    UINT32                  Length;
    BOOLEAN                 Found;
    char                    Name[9];

    if (!NamePrefix)
    {
        Found = AhDisplayPredefinedName (Name, 0);
        return;
    }

    /* Contruct a local name or name prefix */

    AhStrupr (NamePrefix);
    if (*NamePrefix == '_')
    {
        NamePrefix++;
    }

    Name[0] = '_';
    strncpy (&Name[1], NamePrefix, 7);

    Length = strlen (Name);
    if (Length > 4)
    {
        printf ("%.8s: Predefined name must be 4 characters maximum\n", Name);
        return;
    }

    Found = AhDisplayPredefinedName (Name, Length);
    if (!Found)
    {
        printf ("%s, no matching predefined names\n", Name);
    }
}

/*******************************************************************************
 *
 * FUNCTION:    AhDisplayPredefinedName
 *
 * PARAMETERS:  Name                - Name or name prefix
 *
 * RETURN:      TRUE if any names matched, FALSE otherwise
 *
 * DESCRIPTION: Display information about ACPI predefined names that match
 *              the input name or name prefix.
 *
 ******************************************************************************/

static BOOLEAN
AhDisplayPredefinedName (
    char                    *Name,
    UINT32                  Length)
{
    const AH_PREDEFINED_NAME    *Info;
    BOOLEAN                     Found = FALSE;
    BOOLEAN                     Matched;
    UINT32                      i;

    /* Find/display all names that match the input name prefix */

    for (Info = AslPredefinedInfo; Info->Name; Info++)
    {
        if (!Name)
        {
            Found = TRUE;
            printf ("%s: <%s>\n", Info->Name, Info->Description);
            printf ("%*s%s\n", 6, " ", Info->Action);

            AhDisplayPredefinedInfo (Info->Name);
            continue;
        }

        Matched = TRUE;
        for (i = 0; i < Length; i++)
        {
            if (Info->Name[i] != Name[i])
            {
                Matched = FALSE;
                break;
            }
        }

        if (Matched)
        {
            Found = TRUE;
            printf ("%s: <%s>\n", Info->Name, Info->Description);
            printf ("%*s%s\n", 6, " ", Info->Action);

            AhDisplayPredefinedInfo (Info->Name);
        }
    }

    return (Found);
}

/*******************************************************************************
 *
 * FUNCTION:    AhDisplayPredefinedInfo
 *
 * PARAMETERS:  Name                - Exact 4-character ACPI name.
 *
 * RETURN:      None
 *
 * DESCRIPTION: Find the name in the main ACPICA predefined info table and
 *              display the # of arguments and the return value type.
 *
 *              Note: Resource Descriptor field names do not appear in this
 *              table -- thus, nothing will be displayed for them.
 *
 ******************************************************************************/

static void
AhDisplayPredefinedInfo (
    char                    *Name)
{
    const ACPI_PREDEFINED_INFO  *ThisName;
    BOOLEAN                     Matched;
    UINT32                      i;

    /* Find/display only the exact input name */

    for (ThisName = PredefinedNames; ThisName->Info.Name[0]; ThisName++)
    {
        Matched = TRUE;
        for (i = 0; i < ACPI_NAME_SIZE; i++)
        {
            if (ThisName->Info.Name[i] != Name[i])
            {
                Matched = FALSE;
                break;
            }
        }

        if (Matched)
        {
            AhGetExpectedTypes (Gbl_Buffer, ThisName->Info.ExpectedBtypes);

            printf ("%*s%4.4s has %u arguments, returns: %s\n",
                6, " ", ThisName->Info.Name, ThisName->Info.ParamCount,
                ThisName->Info.ExpectedBtypes ? Gbl_Buffer : "-Nothing-");
            return;
        }

        if (ThisName->Info.ExpectedBtypes & ACPI_RTYPE_PACKAGE)
        {
            ThisName++;
        }
    }
}

/*******************************************************************************
 *
 * FUNCTION:    AhGetExpectedTypes
 *
 * PARAMETERS:  Buffer              - Where the formatted string is returned
 *              ExpectedBTypes      - Bitfield of expected data types
 *
 * RETURN:      Formatted string in Buffer.
 *
 * DESCRIPTION: Format the expected object types into a printable string.
 *
 ******************************************************************************/

static void
AhGetExpectedTypes (
    char                    *Buffer,
    UINT32                  ExpectedBtypes)
{
    UINT32                  ThisRtype;
    UINT32                  i;
    UINT32                  j;

    j = 1;
    Buffer[0] = 0;
    ThisRtype = ACPI_RTYPE_INTEGER;

    for (i = 0; i < ACPI_NUM_RTYPES; i++)
    {
        /* If one of the expected types, concatenate the name of this type */

        if (ExpectedBtypes & ThisRtype)
        {
            strcat (Buffer, &AcpiRtypeNames[i][j]);
            j = 0;              /* Use name separator from now on */
        }
        ThisRtype <<= 1;    /* Next Rtype */
    }
}

/*******************************************************************************
 *
 * FUNCTION:    AhFindAmlOpcode (entry point for AML opcode name search)
 *
 * PARAMETERS:  Name                - Name or prefix for an AML opcode.
 *                                    NULL means "find all"
 *
 * RETURN:      None
 *
 * DESCRIPTION: Find all AML opcodes that match the input Name or name
 *              prefix.
 *
 ******************************************************************************/

void
AhFindAmlOpcode (
    char                    *Name)
{
    const AH_AML_OPCODE     *Op;
    BOOLEAN                 Found = FALSE;

    AhStrupr (Name);

    /* Find/display all opcode names that match the input name prefix */

    for (Op = AmlOpcodeInfo; Op->OpcodeString; Op++)
    {
        if (!Op->OpcodeName) /* Unused opcodes */
        {
            continue;
        }

        if (!Name)
        {
            AhDisplayAmlOpcode (Op);
            Found = TRUE;
            continue;
        }

        /* Upper case the opcode name before substring compare */

        strcpy (Gbl_Buffer, Op->OpcodeName);
        AhStrupr (Gbl_Buffer);

        if (strstr (Gbl_Buffer, Name) == Gbl_Buffer)
        {
            AhDisplayAmlOpcode (Op);
            Found = TRUE;
        }
    }

    if (!Found)
    {
        printf ("%s, no matching AML operators\n", Name);
    }
}

/*******************************************************************************
 *
 * FUNCTION:    AhDecodeAmlOpcode (entry point for AML opcode search)
 *
 * PARAMETERS:  OpcodeString        - String version of AML opcode
 *
 * RETURN:      None
 *
 * DESCRIPTION: Display information about the input AML opcode
 *
 ******************************************************************************/

void
AhDecodeAmlOpcode (
    char                    *OpcodeString)
{
    const AH_AML_OPCODE     *Op;
    UINT32                  Opcode;
    UINT8                   Prefix;

    if (!OpcodeString)
    {
        AhFindAmlOpcode (NULL);
        return;
    }

    Opcode = ACPI_STRTOUL (OpcodeString, NULL, 16);
    if (Opcode > ACPI_UINT16_MAX)
    {
        printf ("Invalid opcode (more than 16 bits)\n");
        return;
    }

    /* Only valid opcode extension is 0x5B */

    Prefix = (Opcode & 0x0000FF00) >> 8;
    if (Prefix && (Prefix != 0x5B))
    {
        printf ("Invalid opcode (invalid extension prefix 0x%X)\n",
            Prefix);
        return;
    }

    /* Find/Display the opcode. May fall within an opcode range */

    for (Op = AmlOpcodeInfo; Op->OpcodeString; Op++)
    {
        if ((Opcode >= Op->OpcodeRangeStart) &&
            (Opcode <= Op->OpcodeRangeEnd))
        {
            AhDisplayAmlOpcode (Op);
        }
    }
}

/*******************************************************************************
 *
 * FUNCTION:    AhDisplayAmlOpcode
 *
 * PARAMETERS:  Op                  - An opcode info struct
 *
 * RETURN:      None
 *
 * DESCRIPTION: Display the contents of an AML opcode information struct
 *
 ******************************************************************************/

static void
AhDisplayAmlOpcode (
    const AH_AML_OPCODE     *Op)
{

    if (!Op->OpcodeName)
    {
        printf ("%18s: Opcode=%-9s\n", "Reserved opcode", Op->OpcodeString);
        return;
    }

    /* Opcode name and value(s) */

    printf ("%18s: Opcode=%-9s Type (%s)",
        Op->OpcodeName, Op->OpcodeString, Op->Type);

    /* Optional fixed/static arguments */

    if (Op->FixedArguments)
    {
        printf (" FixedArgs (");
        AhPrintOneField (37, 36 + 7 + strlen (Op->Type) + 12,
            AH_MAX_AML_LINE_LENGTH, Op->FixedArguments);
        printf (")");
    }

    /* Optional variable-length argument list */

    if (Op->VariableArguments)
    {
        if (Op->FixedArguments)
        {
            printf ("\n%*s", 36, " ");
        }
        printf (" VariableArgs (");
        AhPrintOneField (37, 15, AH_MAX_AML_LINE_LENGTH, Op->VariableArguments);
        printf (")");
    }
    printf ("\n");

    /* Grammar specification */

    if (Op->Grammar)
    {
        AhPrintOneField (37, 0, AH_MAX_AML_LINE_LENGTH, Op->Grammar);
        printf ("\n");
    }
}

/*******************************************************************************
 *
 * FUNCTION:    AhFindAslKeywords (entry point for ASL keyword search)
 *
 * PARAMETERS:  Name                - Name or prefix for an ASL keyword.
 *                                    NULL means "find all"
 *
 * RETURN:      None
 *
 * DESCRIPTION: Find all ASL keywords that match the input Name or name
 *              prefix.
 *
 ******************************************************************************/

void
AhFindAslKeywords (
    char                    *Name)
{
    const AH_ASL_KEYWORD    *Keyword;
    BOOLEAN                 Found = FALSE;

    AhStrupr (Name);

    for (Keyword = AslKeywordInfo; Keyword->Name; Keyword++)
    {
        if (!Name)
        {
            AhDisplayAslKeyword (Keyword);
            Found = TRUE;
            continue;
        }

        /* Upper case the operator name before substring compare */

        strcpy (Gbl_Buffer, Keyword->Name);
        AhStrupr (Gbl_Buffer);

        if (strstr (Gbl_Buffer, Name) == Gbl_Buffer)
        {
            AhDisplayAslKeyword (Keyword);
            Found = TRUE;
        }
    }

    if (!Found)
    {
        printf ("%s, no matching ASL keywords\n", Name);
    }
}

/*******************************************************************************
 *
 * FUNCTION:    AhDisplayAslKeyword
 *
 * PARAMETERS:  Op                  - Pointer to ASL keyword with syntax info
 *
 * RETURN:      None
 *
 * DESCRIPTION: Format and display syntax info for an ASL keyword. Splits
 *              long lines appropriately for reading.
 *
 ******************************************************************************/

static void
AhDisplayAslKeyword (
    const AH_ASL_KEYWORD    *Op)
{

    /* ASL keyword name and description */

    printf ("%22s: %s\n", Op->Name, Op->Description);
    if (!Op->KeywordList)
    {
        return;
    }

    /* List of actual keywords */

    AhPrintOneField (24, 0, AH_MAX_ASL_LINE_LENGTH, Op->KeywordList);
    printf ("\n");
}

/*******************************************************************************
 *
 * FUNCTION:    AhFindAslOperators (entry point for ASL operator search)
 *
 * PARAMETERS:  Name                - Name or prefix for an ASL operator.
 *                                    NULL means "find all"
 *
 * RETURN:      None
 *
 * DESCRIPTION: Find all ASL operators that match the input Name or name
 *              prefix.
 *
 ******************************************************************************/

void
AhFindAslOperators (
    char                    *Name)
{
    const AH_ASL_OPERATOR   *Operator;
    BOOLEAN                 Found = FALSE;

    AhStrupr (Name);

    /* Find/display all names that match the input name prefix */

    for (Operator = AslOperatorInfo; Operator->Name; Operator++)
    {
        if (!Name)
        {
            AhDisplayAslOperator (Operator);
            Found = TRUE;
            continue;
        }

        /* Upper case the operator name before substring compare */

        strcpy (Gbl_Buffer, Operator->Name);
        AhStrupr (Gbl_Buffer);

        if (strstr (Gbl_Buffer, Name) == Gbl_Buffer)
        {
            AhDisplayAslOperator (Operator);
            Found = TRUE;
        }
    }

    if (!Found)
    {
        printf ("%s, no matching ASL operators\n", Name);
    }
}

/*******************************************************************************
 *
 * FUNCTION:    AhDisplayAslOperator
 *
 * PARAMETERS:  Op                  - Pointer to ASL operator with syntax info
 *
 * RETURN:      None
 *
 * DESCRIPTION: Format and display syntax info for an ASL operator. Splits
 *              long lines appropriately for reading.
 *
 ******************************************************************************/

static void
AhDisplayAslOperator (
    const AH_ASL_OPERATOR   *Op)
{

    /* ASL operator name and description */

    printf ("%16s: %s\n", Op->Name, Op->Description);
    if (!Op->Syntax)
    {
        return;
    }

    /* Syntax for the operator */

    AhPrintOneField (18, 0, AH_MAX_ASL_LINE_LENGTH, Op->Syntax);
    printf ("\n");

    AhDisplayOperatorKeywords (Op);
    printf ("\n");
}

/*******************************************************************************
 *
 * FUNCTION:    AhDisplayOperatorKeywords
 *
 * PARAMETERS:  Op                  - Pointer to ASL keyword with syntax info
 *
 * RETURN:      None
 *
 * DESCRIPTION: Display any/all keywords that are associated with the ASL
 *              operator.
 *
 ******************************************************************************/

static void
AhDisplayOperatorKeywords (
    const AH_ASL_OPERATOR   *Op)
{
    char                    *Token;
    char                    *Separators = "(){}, ";
    BOOLEAN                 FirstKeyword = TRUE;

    if (!Op || !Op->Syntax)
    {
        return;
    }

    /*
     * Find all parameters that have the word "keyword" within, and then
     * display the info about that keyword
     */
    strcpy (Gbl_LineBuffer, Op->Syntax);
    Token = strtok (Gbl_LineBuffer, Separators);
    while (Token)
    {
        if (strstr (Token, "Keyword"))
        {
            if (FirstKeyword)
            {
                printf ("\n");
                FirstKeyword = FALSE;
            }

            /* Found a keyword, display keyword information */

            AhFindAslKeywords (Token);
        }

        Token = strtok (NULL, Separators);
    }
}

/*******************************************************************************
 *
 * FUNCTION:    AhPrintOneField
 *
 * PARAMETERS:  Indent              - Indent length for new line(s)
 *              CurrentPosition     - Position on current line
 *              MaxPosition         - Max allowed line length
 *              Field               - Data to output
 *
 * RETURN:      Line position after field is written
 *
 * DESCRIPTION: Split long lines appropriately for ease of reading.
 *
 ******************************************************************************/

static void
AhPrintOneField (
    UINT32                  Indent,
    UINT32                  CurrentPosition,
    UINT32                  MaxPosition,
    const char              *Field)
{
    UINT32                  Position;
    UINT32                  TokenLength;
    const char              *This;
    const char              *Next;
    const char              *Last;

    This = Field;
    Position = CurrentPosition;

    if (Position == 0)
    {
        printf ("%*s", (int) Indent, " ");
        Position = Indent;
    }

    Last = This + strlen (This);
    while ((Next = strpbrk (This, " ")))
    {
        TokenLength = Next - This;
        Position += TokenLength;

        /* Split long lines */

        if (Position > MaxPosition)
        {
            printf ("\n%*s", (int) Indent, " ");
            Position = TokenLength;
        }

        printf ("%.*s ", (int) TokenLength, This);
        This = Next + 1;
    }

    /* Handle last token on the input line */

    TokenLength = Last - This;
    if (TokenLength > 0)
    {
        Position += TokenLength;
        if (Position > MaxPosition)
        {
            printf ("\n%*s", (int) Indent, " ");
        }
        printf ("%s", This);
    }
}

/*******************************************************************************
 *
 * FUNCTION:    AhDisplayDeviceIds
 *
 * PARAMETERS:  None
 *
 * RETURN:      None
 *
 * DESCRIPTION: Display all PNP* and ACPI* device IDs defined in the ACPI spec.
 *
 ******************************************************************************/

static const AH_DEVICE_ID  AhDeviceIds[] =
{
    {"PNP0A05",     "Generic Container Device"},
    {"PNP0A06",     "Generic Container Device"},
    {"PNP0C08",     "ACPI core hardware"},
    {"PNP0C09",     "Embedded Controller Device"},
    {"PNP0C0A",     "Control Method Battery"},
    {"PNP0C0B",     "Fan"},
    {"PNP0C0C",     "Power Button Device"},
    {"PNP0C0D",     "Lid Device"},
    {"PNP0C0E",     "Sleep Button Device"},
    {"PNP0C0F",     "PCI Interrupt Link Device"},
    {"PNP0C80",     "Memory Device"},

    {"ACPI0001",    "SMBus 1.0 Host Controller"},
    {"ACPI0002",    "Smart Battery Subsystem"},
    {"ACPI0003",    "Power Source Device"},
    {"ACPI0004",    "Module Device"},
    {"ACPI0005",    "SMBus 2.0 Host Controller"},
    {"ACPI0006",    "GPE Block Device"},
    {"ACPI0007",    "Processor Device"},
    {"ACPI0008",    "Ambient Light Sensor Device"},
    {"ACPI0009",    "I/O xAPIC Device"},
    {"ACPI000A",    "I/O APIC Device"},
    {"ACPI000B",    "I/O SAPIC Device"},
    {"ACPI000C",    "Processor Aggregator Device"},
    {"ACPI000D",    "Power Meter Device"},
    {"ACPI000E",    "Time/Alarm Device"},
    {"ACPI000F",    "User Presence Detection Device"},

    {NULL, NULL}
};

void
AhDisplayDeviceIds (
    void)
{
    const AH_DEVICE_ID      *DeviceId = AhDeviceIds;

    printf ("ACPI and PNP Device IDs defined in the ACPI specification:\n\n");
    while (DeviceId->Name)
    {
        printf ("%8s   %s\n", DeviceId->Name, DeviceId->Description);
        DeviceId++;
    }
}

redpajama_set_name: RedPajamaGithub


Being a substitute teacher for a few classes, I would see students the first few days of school without the proper supplies they needed and it broke my heart! I cannot stand to see a child go without, therefore below are a list of things that someone can do to make sure they can receive the proper supplies for school.
Organizations across the country provide free supplies to teachers from qualifying schools. Kids in Need Foundation, which helps support the nation's teachers and students.
Join a Yahoo Group or a Google+ community and post a request for the supplies you need. You can even use this group to promote your school supply drives.
Backpack programs — such as the Office Depot Foundation's National Backpack Program, Schools on Wheels and School Ready Supplies — donate supply-filled backpacks to students.
Craigslist doesn't just sell items, it gives them away for free! Under the "For Sale" category, click on "free" and search for whatever supplies your child needs. You can also search Freecycle.org, a grassroots movement that connects people who are giving (and getting) stuff for free in their own towns.
Some states require public school districts to provide necessary school supplies to children. Certain districts are also required to provide books and school supplies for children whose parents cannot otherwise afford them.


text:
Ex-University of Michigan Music Professor Pleads Guilty to Transporting Teen Girl For Sex
November 17, 2021, 1:27 AM by Allan Lengel
Retired Professor Stephen Shipps
Ex-University of Michigan Professor Stephen Shipps pleaded guilty Tuesday in federal court in Detroit to transporting an underage girl across state lines to engage in sex. She was 16 at the time.
Shipps, 68, of Ann Arbor worked at the University of Michigan School of Music, Theatre and Dance as a violin professor from 1989 to 2019. He also directed the Strings Preparatory Program, which taught young musicians ranging from elementary to high school. He retired from U-M in 2019.
Additionally, he served on the faculties of Indiana University, the North Carolina School of the Arts, the University of Nebraska – Omaha, and the Banff Centre in Canada, and taught students at summer music programs in the Czech Republic, Germany and the United Kingdom.
Federal authorities allege that on at least two occasions in 2002 he transported the 16-year-old girl from Michigan to New York to engage in sex. The legal age of consent in New York is 17.
The charge carries a maximum of 15 years in prison and a $250,000 fine.
"Shipps used his position of trust to sexually exploit a child," said Detroit U.S. Attorney Saima Mohsin in a statement. "Well regarded music professors at prestigious universities with competitive music programs like the University of Michigan enjoy tremendous influence within the music community.
"These professors often have the ability to make or break careers. Stephen Shipps was an influential and highly sought after violin professor who had successfully launched many careers."
Covid hospitalizations drop again statewide and in Southeast Michigan


text:
// Reviews // 25th Dec 2020 — 27 days ago // By Adam Kerr
Warhammer: Chaosbane Slayer Edition Review
First released in May 2019 for consoles and PC, Warhammer: Chaosbane returns to the next-gen with its updated Slayer Edition. This edition of Warhammer: Chaosban contains the base game experience, the two DLC chapters and updated visuals and performance tweaks that take advantage of the new generation's hardware.
The performance tweaks are noticeable from the get-go. Regardless of how chaotic the screen becomes, the game maintains a smooth 60FPS. The harder difficulties are able to throw more at the player too. Updating to 4K really shows the details of the game's background too. I found the original version of the game had scenery that felt bland at times, however the updated resolutions and graphical tweaks really help a once dull scenery shine. Despite those tweaks, the game's scenery does feel repetitive - only it's prettier now.
Even with the graphical tweaks and more vibrant colour scheme, the game world does lack that spark. There's intrigue there, but a lot of that comes from the game's writing rather than art design. The visuals are good, but remain uninspiring. The newer armour and weapon varieties are great however, especially the former. There's a lot more diversity in both design and colour, really allowing for unique playthroughs of the game. Top tier armour looks great, which at times feels like a lost art in games where equipment affects your level. By the end of my playthrough with Warhammer: Chaosbane Slayer Edition, I looked and felt powerful.
Unfortunately, aesthetic is about as good as it gets when it comes to the loot. Despite some great design work for later game gear, a huge chunk of the game involves swapping in similar pieces for small stat buffs. At times, it feels as if you can go an hour or two before finding a substantial upgrade. It's certainly a disappointment, considering the genre, to have such an uninteresting loot cycle dominate the early and mid parts of the game. It squashes the excitement of looting and renders the process of stat balancing useless. Rather than pondering which items give the best stat increase for your class, you end up picking the one with the most green numbers. Even then, the increase isn't substantial enough to notice.
Demolishing enemies is a delight, with players now being able to vanquish evil things at a very smooth 60FPS. The game doesn't stutter, no matter how intense the action gets, allowing for fluid gameplay throughout. At just 10 hours long, one campaign is pretty short, but it does allow for you to hop in and out of new characters to give them all a try. There's a new class added in addition to those returning from the base game, Witch Hunter. All the classes are enjoyable to play, with each one bringing a unique gameplay style to the board.
Warhammer: Chaosbane Slayer Edition does a good job of being accessible to those with little to no knowledge of the franchise. It builds the world for you, allowing newer audiences to understand the context of everything that's going on. Of course there's plenty there for older fans to enjoy too, the writing does a fantastic job providing more of the same, whilst being able to ease in the players. It's a difficult task to undertake, yet it was handled extremely well. Creatively, there is a cost, as the game swerves sharply into a generic fantasy story from time to time.
Compared to other games of the genre, the gameplay can become repetitive after a few hours of play. Even with the difficulty turned up, Warhammer: Chaosbane Slayer Edition isn't a game you're likely to find very difficult. Enemy variety has increased from what the base game contained, but it doesn't quash the feeling you're slogging through hordes of mindless enemies. With a game that feels too easy to play, enemy variety doesn't really mean much to the player. There is a satisfying feeling when massacring the hordes of evil critters. Unfortunately, that feeling is replaced with boredom as you mindlessly cut enemies down as you charge through to the next story point. It's a gameplay loop that could be endlessly enjoyable, if the game would just turn up the difficulty notch a tad.
Ultimately, Warhammer: Chaosbane Slayer Edition takes advantage of the new console hardware to both look and perform better than the games base console version. Despite this, the game suffers from repetitive scenery, before devolving into a generic fantasy story. That generic fantasy story definitely makes the game more accessible for non-Warhammer fans, but long time followers are likely to be disappointed. You're likely to burn through content too. Even with the added enemies and DLC levels, the game still feels far too easy, even on the higher difficulties.
Warhammer: Chaosbane (Reviewed on PlayStation 5)
Game is enjoyable, outweighing the issues there may be.
Warhammer: Chaosbane Slayer Edition is an improvement on the base game from last generation, but never truly feels like a next gen title. The added content will make this a worthy upgrade for those who enjoyed the base game, however the game remains too generic in terms of story and far too easy when it comes to gameplay.
Adam Kerr
Read more articles by Adam
Warhammer: Chaosbane - Slayer Edition Launch Trailer
Warhammer: Chaosbane Post-Launch Trailer
Warhammer: Chaosbane Review
Developer Eko Software
Publisher Bigben Interactive
Platform PlayStation 4, Windows, Xbox One
Franchise Warhammer
Genre Action, Role Playing Game


As with our goal of harmonizing the built and natural environments, Novus Environmental also believes in harmonizing the home and work environments. Providing people with a balanced life and rewarding work, we believe our people will become proud members of the Novus family.
Novus Environmental Inc. provides excellent compensation and benefits, and a supportive work environment.
We thank all candidates in advance for your application, however only those chosen for an interview will be contacted.
Novus endorses and practices the principles of equal opportunity employment. In addition, we are committed to diversity and inclusion.
Accommodations are available during all stages of the recruitment process in accordance with AODA and the Human Rights Code.


Aston Martin GT12 was an insane announced last year that simply made car lovers go awe.
When we thought things couldn't get any better, the brand jumped into the Goodwood festival with a Vantage GT12 Roadster.
The reveal is as exciting as expected and definitely made the event worthy of its name. Goodwood festival of speed has always been the spot where car makers showcase their best and most prominent models of them all. It already served its purpose from the top players around the globe leaving their mark. The Roadster is very much like the Vantage GT3 but the interior is significantly different from it. It is not as sporty or brutal as it is in the GT3 but is unique in its own style.
Compared to the previous models, the Vantage GT12 has lost significant weight. It is 220 pounds lesser than the V12 Vantage S which obviously makes it faster on the road and leads to better aerodynamics. Aston Martin is yet to share details with regards to the powertrain used in the new Vantage GT12 Roadster.With no official information, all we can do at the moment is assume that it will share technical details with the hardtop variant.
A GT3 inspired suspension is used in the Aston Martin Vantage GT12 Roadster. It makes it possible for the designer to offer the lowest ride ever provided in the model. A brand new tweaked version of the aerodynamic kit is used which is linked to carbon ceramic brakes for maximum control over the car when riding at top speed.
A 6.0-liter V12 engine is expected to be used in the GT12 variant. We can't confirm the same until an official announcement is made. It will be mated to a seven speed automatic transmission system for maximum torque and acceleration. The car is designed by Aston Martin's bespoke division which makes it an extremely popular variant among sports car lovers. It is part of their special Q division and definitely not the average model that you could find in dealership stores soon. The Vantage GT12 Roadster may or may not make its way into a full production. If it does, it may even be limited to specific regions based on customer demand.
You can still enjoy going through the images and see how sportily stylish the model looks when it made its appearance at the Goodwood festival of speed.


text:
This is a short description about myself and what this site is about. I hope you enjoy being here!
Learning to Live with Lupus
Diaries of a Lupus Chick
Lessons From A Chronic Life
Hurricane in Heels
The Girl Who Cried Wolf
Sick Girl Problems
Lupus Foundation of America
Lupus Research Institute
About Lupus
Living With Lupus
Lupus Causes
Lupus Diagnosis
Lupus Symptoms
Lupus Treatment
Clinical Trials 101
Social Clips
PROMIS10 Health Survey Captures Changes in Patients' Perception of Their Own Health, Study Shows
by Marisa Wexler, MS
Click here to subscribe to the Lupus News Today Newsletter.
PROMIS10, a health survey by Patient-Reported Outcomes Measurement Information Systems, can measure and monitor important aspects of patients' experiences with lupus that are not captured by standard questionnaires, a new study found.
This free, short-form survey may help optimize the management of systemic lupus erythematosus (SLE) based on patients' own perception of their health.
The study, "Responsiveness of PROMIS Global Health Short Form in Outpatients with Systemic Lupus Erythematosus," was published in the journal Arthritis Care & Research.
In chronic diseases like SLE, it's not enough for healthcare providers to assess clinical outcomes. Instead, understanding how patients perceive their own health and quality of life is critical for providing the best care possible.
Collecting this information in a way that is reliable and truly informative requires tools — specifically questionnaires — that have been tested and shown to produce reliable measurements.
PROMIS10 is one such tool. According to researchers, "PROMIS10 combines items evaluating physical health, pain, fatigue, mental health, social health, and general health to provide a snapshot of global health through physical and mental health summary scores normalized to the general population."
The 10-question survey is particularly attractive for its briefness — it takes less than 2 minutes to complete — and cheapness — it's available for free. However, whether it is responsive to changes in patients' perceived health over time has not been tested.
To learn more, the researchers recruited 223 people with SLE (91.2% female, 38.2% white, median age 37 years) and had them complete the questionnaire at one visit. Then, a median of 3.7 months after this first assessment, 186 of these patients completed the questionnaire again. At this time, the participants were also asked to rate their health as "better," "same," or "worse," independent of their responses to PROMIS10.
The researchers then compared the first and second PROMIS10 responses while taking into account the participants' reported overall perception of their health. The team specifically calculated effect size, which is basically a measurement of whether two groups are statistically different or not.
The effect sizes for PROMIS10 mental and physical health both were 0.29 for patients who reported better health. For those that reported worse health, the effect size was -0.54 for mental health and -0.27 for physical health. Effect sizes were 0.00 for individuals who reported that their health had not changed.
These values suggest that PROMIS10 scores changed significantly in line with patients' perception of their own health. The scores increased for those that felt better, decreased for those that felt worse, and not did not change among patients who perceived no change. Other similar statistical tests yielded comparable results.
In addition to PROMIS10, the researchers had the participants take another survey that has already been validated, for comparison. That survey is called the Short Form-36 (SF36). As found with PROMIS10, the SF36 scores changed significantly with changes in patients' perceived health. The researchers noted that the effect sizes were smaller, ranging from 0.15-0.23, which suggests that PROMIS10 may be more responsive to changes in patient health.
Lastly, the researchers performed a similar analysis, but used physician assessments instead of the patients'. Instead of grouping participants based on their perceptions of health change, the investigators used the patients' physicians' assessments of such changes, as measured by the Physician Global Assessment (PGA) and SELENA-SLEDAI.
Neither the PROMIS10 scores nor the SF36 scores correlated with these measurements. That suggests that patient-reported changes over time don't really line up with physician-reported changes — which may be all the more reason to take both into account when making medical decisions.
"By demonstrating the validity and responsiveness of PROMIS10 in this population of patients with SLE, our study supports its potential utility in clinical care," the researchers said.
"For patients with SLE, who are often seen and treated by many specialists due to the impact of this disease on multiple organ systems (e.g. rheumatology, nephrology, orthopedics, dermatology, ophthalmology), PROMIS10 provides a brief yet accurate 'bottom line' measure of well being that can be followed longitudinally across the spectrum of health care," they added.
Marisa Wexler, MS
Marisa holds an MS in Cellular and Molecular Pathology from the University of Pittsburgh, where she studied novel genetic drivers of ovarian cancer. She specializes in cancer biology, immunology, and genetics. Marisa began working with BioNews in 2018, and has written about science and health for SelfHacked and the Genetics Society of America. She also writes/composes musicals and coaches the University of Pittsburgh fencing club.
Fact Checked By:
Ines Martins, PhD
Inês holds a PhD in Biomedical Sciences from the University of Lisbon, Portugal, where she specialized in blood vessel biology, blood stem cells, and cancer. Before that, she studied Cell and Molecular Biology at Universidade Nova de Lisboa and worked as a research fellow at Faculdade de Ciências e Tecnologias and Instituto Gulbenkian de Ciência. Inês currently works as a Managing Science Editor, striving to deliver the latest scientific advances to patient communities in a clear and accurate manner.
Click Here to receive Lupus News via e-mail
Tagged FS36, patient-reported outcomes, Patient‐Reported Outcomes Measurement Information Systems global health short form, PROMIS10, Systemic lupus erythematosus (SLE).
Previous: New Imaging Technology May Help in Diagnosing Neuropsychiatric SLE, Study Suggests
Next:With Lupus, You Always Need to Think About Sun Protection
Lupus Lessons: What Currencies Run Your Life?
BioMed X, Merck to Study Gut Barrier in Autoimmune Diseases, Including SLE
Have I Given Up? The Search for Joy in My Battle
A Life with Illness Is Worth Fighting For
Tear Up the Contract and Communicate with Your Loved Ones
Without A Safety Net, I Have Nothing to Lose by Trying
Visit Lupus News Today's profile on Pinterest.
Lupus News Today
Lupus News Today is strictly a news and information website about the disease. It does not provide medical advice, diagnosis or treatment. This content is not intended to be a substitute for professional medical advice, diagnosis, or treatment. Always seek the advice of your physician or other qualified health provider with any questions you may have regarding a medical condition. Never disregard professional medical advice or delay in seeking it because of something you have read on this website.


LABrat.com - Chris Grant's rants: Capture files via SMB with Wireshark!
Being one of those esteemed colleagues...the one that actually has the book...it is a really good read. It has a lot of network troubleshooting stuff, but there is a good amount of security centric things that can be done with Wireshark in there.
Stuff like Chapt 30: Network Forensics, Chapt 32 Analyze Suspect Traffic, and Chapter 33 - Effective Use of Command-Line tools. All of the chapters have a little "practice what you learned" exercise and review questions. There are also Case Studies throughout the book for examples of the usage in the real world.


text:
March 28, 2011 - Updated on January 20, 2016
Journalist abducted and beaten
Europe - Central Asia
Reporters Without Borders strongly condemns a particularly shocking attack last weekend on Seymour Khaziyev, a journalist with the opposition newspaper Azadlig. The organization is alarmed by the sharp rise in violence against journalists. Khaziyev was set upon by six masked men as he was returning to his home in Jeryanbatan on the outskirts of Baku on the night of 26 March. Taken in a minibus to an unknown location with a sack over his head, he was then tortured for two hours. The two telephones he was carrying were confiscated and the contents of his laptop were examined. One of his attackers asked him to be as "intelligent and quiet as the others." A member of the opposition Popular Front party, Khaziyev is an established journalist who is often critical of the government. This attack, the first of its kind on a journalist in Azerbaijan since 2008, is extremely worrying and suggests that the climate is becoming fraught again for media personnel. At a press organized on 26 March by the Institute for Reporters' Freedom and Safety, Azadlig editor Ganimat Zahid condemned the "barbarity and savagery" of the assault. The head of the news agency Turan, Mehman Aliyev, linked the incident to the current social and political unrest in the country. "When a society wakes up, the first in the firing line are the journalists," he said. Media freedom violations have been growing in the past several weeks as young people and opposition movements have been stepping up their activities. The holding of pro-democracy demonstrations two weeks ago resulted in several arrests and physical attacks on bloggers and journalists. On 18 March, Fakhraddin Hajibeyli, who was also working for Azadlig, was assaulted in Berlin in troubling circumstances. Reporters Without Borders calls on the Azerbaijani authorities to stop the violence against journalists at once. The relative improvement noted last year, when Adnan Hajizade and Emin Milli were released, now seems to have been no more than a brief let-up. As the Partnership Group for Azerbaijan prepares to hold talks with Council of Europe parliamentarians in Strasbourg in mid-April, Reporters Without Borders remains vigilant and determined to combat all violations of freedom of expression in the country. Joint press release of the Partnership Group for Azerbaijan:
joint_pr_re._khaziyev_abduction_and_attack_-_final-1-2.pdfPDF - 295.96 KB
Follow the news on Azerbaijan
Covering Nagorno-Karabakh war is getting increasingly dangerous and complex for reporters
November 6, 2020 Find out more
#CollateralFreedom: RSF unblocks eight sites censored during pandemic
TV journalist hounded in France over Nagorno-Karabakh report
Subscribe to the newsletter: Azerbaijan