text:
China's prefabricated construction is gaining the world's attention. A Chinese firm called Broad Sustainable Building (BSB) in Changsha built a 57-story building in 19 days. This building is called Mini Sky City. BSB is also planning to build a prefab tower called Sky City in Changsha. Once erected, Sky City will be the world's tallest prefab skyscraper.
Chinese prefab construction seems like a promising solution to the housing shortage in the United Kingdom. The China National Building Material Company (CNBM) is working with U.K. housing association Your Housing Group and renewable energy company Welink to build six factories to produce prefab houses with pre-engineered wall panels, solar power and energy efficient designs in the U.K.
Prefabricated houses or buildings are constructed in a factory before shipping it and assembling on site. Compared to traditional house construction, the assembling requires less space and is completed at a faster rate. That is why you now see stunning state-of-the-art houses in the woods where it is deemed as a normally difficult environment for house construction, or jaw-dropping high-rise buildings completed in less than 20 days.
Not all the prefab houses or buildings are the same. To be more specific, they can be categorized into four main types:
1. Modular Homes/Buildings. Major work is done in the factory. Each module has a full finishing which includes plumbing, electrical, doors, stairs and closets. Very little on-site work is required for this prefab method. They used to be aesthetically boring because of its boxy look. However, it can now be combined with various panelized walls or roofing to make it stylish.
2. Panelized Homes/Buildings. These are built-in panels which are then shipped on site for assembling. Unlike modular homes/buildings, it requires more finishing work such as painting and installing floors. It is very versatile and can be of any style and look.
3. Pre-Cut Homes/Buildings. You can think them as an Ikea furniture kit. You can follow the instructions to assemble everything on your own, or with the help of contractors. These are designed for builders to put everything together themselves. This type of prefab house needs more on-site assembly time.
4. Shipping Container Homes. Made from industrial steel shipping containers, it can be a single dwelling, stacked or placed together. Originally not designed for residential use, it requires more design and modification work from its future occupants.
Reducing construction costs and time
Different construction projects feature different designs. Traditional construction needs more material preparation than what is really need for cutting. The leftover materials from cutting usually cannot fit the current project. However, prefab manufactures can fully utilize most materials. They have a wide range of projects which enable the manufacturer to fit leftover material for another project. As a result, prefabricated housing construction eliminates construction waste. The shipping cost of materials to the site can be reduced because less amount of materials are needed. The labor cost for final assembly is also reduced. Therefore, the overall savings bring down the construction cost, and this makes prefab construction more affordable and attractive to new clients.
Energy Efficiency
Prefab manufacturers use uniform measurements for production. The pre-made parts are as standard as Lego pieces. As a result, the connection of the prefab homes or buildings are tighter than conventional construction. Tighter seams prevent air leakage between houses and the outside environment, and it also saves energy use. The modular design enables consumers to fit energy efficient appliances to the final package. For example, a low wattage refrigerator or air conditioner.
Arguable waste reduction and environmental savings
Prefab structures use 20 to 30 percent more raw materials than stick-built homes in order to withstand transportation. On a conventional construction site, 30 percent of the materials are wasted through theft, damage, or just being thrown away. Would you rather choose more of these materials into making your house stronger or being thrown away? The energy and water used for on-site construction are drastically reduced for a prefab home/building. The prefab sites can eliminate dust to a minimum level. However, the energy and water used and dust generated in the factory should also be taken into account in the life cycle of the project.
People are worried about the safety of prefab assembly. Theoretically, the assembly is very reliable. The actual concern is not only about the quality of off-site manufacturing, but also on-site assembly. The on-site assembly is more about "plug and play", rather than quality control (QC). One single mistake can put the entire building in danger. Workers on a prefab site are expected to complete the project as quickly as possible. They work under immense pressure and tight deadlines which can lead to higher chances of mistakes made, as compared to traditional on-site construction which is typically not associated with fast completion times.
No streamlined processes
Since prefabricated homes or buildings are new to the market, the existing building code interpretations cannot be simply applied to prefab construction in many places. This might be the largest constraint in the development of prefab construction. The uncertainties have led to delays or halting of construction in some cases. The Mini Sky City was designed to be 97-stories tall, but it was cut to 57-stories due to the nearby airport. The big change was taken place after the company had already built 20 stories, rather than being informed in the beginning of the project or during the permit process.
The pre-construction activities for the world's tallest prefab tower Sky City stopped in 2013 after the central government required additional approval. In the summer of 2016, the project had been dropped due to the damage to the Daze Lake wetland. The wetland is the location where the Sky City was originally planned to be built. It is surprising that regulators did not point out this issue during the permit phase.
In conclusion, prefabricated homes and buildings are suitable in many cases. For example, prefab housing is possibly the best economic solution in rural areas where transportation is not easy to reach, or places that have limited space to maneuver. Another example could be construction projects with time-sensitive schedules. The off-site prefabricated construction helps shorten the conventional building period.
I believe with the future regulations and industrial norm, the technical challenges and problems we face with prefab will be solved. The construction management industry is ready for this new movement. The next generation of professionals should make decisions based on systems thinking and life cycle analysis approach: do not only count the on-site savings or losses, but also trace back to upstream and downstream practices.
(Top photo from Pixabay)


text:
Cop Shoots Animal to Death in Front of Child
In the video, which has been viewed over 85,000 times on Facebook, the police officer is seen aiming his weapon at the animal, despite being told by his colleague that a child is approaching on a scooter.
"There's a kid coming, sergeant," a voice is heard saying. But without hesitation, the officer fires his weapon at the animal anyway, and seconds later the child can be seen zooming past the scene on the sidewalk.
The kangaroo does not die instantly after being shot in the torso and can be seen squirming in a pool of blood and twitching as the clip ends.
Hash Tropoja, who filmed the incident, told the Daily Mail Australia he did not doubt whether the kangaroo should be put down as it already had a broken hip, but says the officer should have waited for the child to pass first as the bullet could have ricocheted.
"There's no question that the poor animal needed to be put down," Tropoja said. "The bullet could have rebounded on to incoming traffic. The bullet had the potential to ricochet off the concrete."
The police had reportedly arrived at the scene around 30 minutes beforehand and "should have blocked the area off,"Tropoja said.
In his Facebook post, the witness called the police officer's actions "reckless."
"OK so I get that this is what needs to be done when there is an injured animal on the side of the road but I find it so careless and reckless that this police officer was able to shoot this kangaroo as a kid was passing by on his scooter," Tropoja wrote.
"After being told by his colleague that 'there is a kid coming' he still went on to shoot the kangaroo. This is one of the most careless and reckless acts I've seen in a long time. There's so many different things that could have gone wrong. Thankfully nothing did," he added.
Victoria police did not comment on the incident.
If you haven't already, be sure to like our Filming Cops Page on Facebook and follow us on Twitter.

subset: commoncrawl


text:
Yes, I know. It came as a surprise to us too. The girl who diligently saves her allowance to get her nails done just started freestyle wrestling.
Her reasons were pragmatic. She didn't want to run track. (When I asked why, she said, "Because I'm slow.") Plus, the sport isn't very popular for girls so the odds for scholarships are good if you do well.
Of course, there has been a bit of teasing as we've picked out various WFF names for her and threatened to paint our faces school colors when we go to the matches, but after the initial, "huh?" we became supportive.
Last night was her first practice. She and Saron came in and were so exhausted they hardly said a word. Tonight, when I got home, Beth said, "I'm so sore, I can't even hug myself."
That's a workout.


text:
Current Projects Heading link
Elderly Assisting Robot: Communication Through Physical Interaction
The world's population is aging at an ever increasing pace. There is the need to develop technologies that will support the independent functioning of older people so that they are able to remain living in the community, postponing the transition to living in institutional settings for as long as possible – a movement referred to as aging in place. Assistive robots hold great promise in that respect. However, one of the main obstacles to the widespread use of robotic assistants is the lack of adequate interfaces: the elderly person should be able to communicate with the robot naturally, similarly to the way he/she would communicate with a human caregiver. Therefore, if the robot is to assist with daily activities it needs to respond to all types of user input. We hypothesize that in addition to well established modalities of communication like language, gestures and vision, physical interaction – a bi-directional exchange of forces during a direct or indirect (through an object held by the robot and the user) contact – also plays an important role and should be studied to develop an effective robotic interface. A multimodal interface will not only make communication better, by sharing the information between the modalities there is no need for highly accurate interfaces for each individual modality.
Reliability of Robots
Correct functioning of cyber-physical systems is of critical importance. This is more so in the case of safety critical systems such as in medical, automotive and many other applications. Since verification of correctness, in general, is infeasible and testing is not exhaustive, it is of critical importance to monitor such system during their operation and detect erroneous behaviors to be acted on.
Monitoring techniques are investigated, when the system state is not fully observable, it's behavior is stochastic and the property to be monitored is specified on the system trajectory. Theoretically, two notions called monitorability and strong monitorability are difined and the necessary and sufficient conditions characterizing them are also given. General monitoring techniques for cases when systems are modeled as stochastic hybrid automata, and the properties are specified as safety or liveness automata are presented State estimation is another key step in the monitoring, since the property is defined on system behavior which is hidden and partial observable. Rao-Blackwellised Particle Filtering is employed in this hybrid state framework.
More efficient and complicated experiments are in progress.
Wireless Sensor Networks
When exploring a scalar field, for example, concentration of oil spill over Mexico Gulf, by a group of sensors, it is always a question that where to deploy them over the area of interest. In general, the deployment of the sensors satisfies our demand, such as covering the whole area of interest.
In our project, we need more sensors to cover the part where the amount of information over that part is higher than others. Thus, we need an index for every point over the area of interest to quantify information density. In our research, We found that curvature is a good choice to quantify the information density of the field. By definition, curvature of a surface describes the amount by which the surface deviates from being a flat plane. At a certain point, the higher the curvature is, the more sharply the surface bends. Accordingly, the higher information density that point has. Since curvature is a function of the field, i.e., it can not be read directly from the sensors, we estimate it from the splines which approximate the field. Moreover, all sensors are mobile ones. So, a step-by-step motion algorithm should be embedded to drive them to an optimal sensing configuration, which means within each sensor's region of responsibility, the integral of the curvature, i.e., the amount of the information, should be the same.
It's easy to reach optimal deployment given there is a central server that collects sensor readings and positions of all sensor nodes. Nevertheless, We want to make our task a distributed one which is more challenging. In our problem settings, we assume that there is no central server, each sensor node decides where to move based on the information only provided by its instant neighbors.
So, there are two key problems for us. The first one is how to approximate the field by splines. Once we know the field, we may compute the curvature via the field. The second one is based on local information, where each sensor should move to achieve the global optimization deployment.


text:
Imagine living at a place where having a 5 months nighttime cycle (i.e. no sunlight for 5 months) every year is a regular thing. How would you attempt to fix such a problem? Well, a Norse town in Norway has a similar problem where constant darkness begins in September and ends in March; this is due to the mountain blocking the sun each time winter comes along. The town in question is called Rjukan, it was established sometime between 1905 and 1916 and was given official township back in 1996. By looking at the year the town came to be, one is able to tell how long this town has been under total and complete darkness, so it would come as no surprise if news broke of vampires living in Rjukan.
To combat against a near 6 months of darkness, Norwegian engineers placed three massive rectangular mirrors on top of the mountain facing the sun. The plan here is to have the sunlight hit these mirrors, which should in turn provide light for the over 3500 populations of Rjukan. While it all sounds great on paper, limitations are present here. For example, the beam of light coming from the mirrors will only shine on the town square, so if citizens want light, that's where they will need to be:
"The project will result in a permanent installation which, with the help of the 300 square foot mirrors, will redirect the sun down into the valley. The square will become a sunny meeting place in a town otherwise in shadow."
Interestingly enough, Rjukan isn't the first place to have an artificial sun in Europe, this prize goes to Viganella, a small town situated in the Alps. We'd like to think folks living at Rjukan pretty much enjoy the darkness, and probably have a TV show called "Who Wants To Be A Vampire." Jokes aside, these mirrors providing artificial light are a technical marvel, hopefully engineers would soon be able to emit light over the whole town.
[via Popular Mechanics]


text:
July 11th - Benedict
Even if his brothers had trouble following him, even if the did try to kill him, Benedict created a rule which still inspires, instructs, challenges, and defines Western monasticism. His rule also give viable instruction to those of us who live outside the cloister.
A special thank-you and prayers to the monks and abbeys that have been a part of my life and given me such a wonderful sense of Catholicism, prayer, liturgy, and friendship. Ora et labora!
And so, girded with faith and the performance of good works, let us follow in his paths by the guidance of the Gospel; then we shall deserve to see him who has called us into his kingdom. If we wish to attain a dwelling-place in his kingdom we shall not reach it unless we hasten there by our good deeds.
Just as there exists an evil fervor, a bitter spirit, which divides us from God and leads us to hell, so there is a good fervor which sets us apart from evil inclinations and leads us toward God and eternal life. Monks should put this fervor into practice with an overflowing love: that is, they should surpass each other in mutual esteem, accept their weaknesses, either of body or of behavior, with the utmost patience; and vie with each other in acceding to requests. No one should follow what he considers to be good for himself, but rather what seems good for another. They should display brotherly love in a chaste manner; fear God in a spirit of love; revere their abbot with a genuine and submissive affection. Let them put Christ before all else; and may he lead us all to everlasting life.
-- From the Rule of Benedict
Leave a Reply.
Write something about yourself. No need to be fancy, just an overview.


text:
Autumn Hot Toddy with Whole Cloves and Clementine
Whole cloves, citrus, and Ceylon cinnamon enrich this traditional hot toddy.
It's that time of year when you hear sniffling all around you. A typical scenario plays out as follows:
You cringe as you enter a holiday festivity and see folks throughout the room coughing and sneezing into their palms and proceeding to the customary handshake greetings. You can't get to the hand washing sink quick enough, but alas, you wake up the following morning with the mother of all colds.
Of course, you could just start slamming OJ and chicken soup, but it never hurts to throw a round of hot toddy treatment in the mix—especially when that hot toddy has been infused with the flavorful intensity of whole cloves. Adding cloves to your toddy not only adds a sweet and spicy flavor and aroma, like oranges, they are a good source of vitamin C. So, like citrus, they may help in improving your body's ability to combat viruses and infectious diseases while providing a flavor uplift.
Whole cloves gain their pungent aroma and potent flavor from the tree upon which they are born of, the Syzygium Aromaticum, an evergreen species native to Indonesian rainforests. Those tiny, ¼ to ½-inch spice barbs are actually the buds from the tree, unopened flowers, dried to preserve that familiar clove flavor that wafts through bake shops and holiday stores.
But cloves enrich culinary masterpieces far beyond baked goods. They are often used to flavor roasts and hams, chutneys, curries, bechamel sauces, and much more. What about beverages? I'm glad you asked. You won't find mulled wine without it; liquid treats like cider and eggnog typically contain at least a small quantity of the spice; and of course, this autumn hot toddy wouldn't be the same without a few whole cloves to infusing it with depth and spice.
Here's the recipe for the Autumn Hot Toddy with Whole Cloves and Clementine:
YIELD: 2 servings
*serve in mugs
- 2 cups of water
- 2 teaspoons lemon juice
- 2 Ceylon cinnamon sticks
- 1 clementine
- 10 whole cloves
- 2 tablespoon honey
- 4 ounces of high-quality bourbon
- Add the water, lemon juice, cinnamon sticks, and cloves to a small saucepan and bring to boil.
- Let boil for 3 minutes and reduce to simmer.
- Cut two slices of clementines and set aside.
- Squeeze the rest of the clementine into the water mixture and continue to simmer for 10 minutes.
- Stir in honey and simmer for 2 additional minutes.
- Pour 2 ounces of bourbon into each mug.
- Use a spoon to retrieve 6 cloves from the mixture and stick 3 in each clementine slice. Cut a single corner of the clementine and use it to garnish the mug.
- Retrieve the cinnamon sticks from the mixture and place one in each mug.
- Retrieve the remaining cloves and discard.
- Pour the mixture over the bourbon and drink to your health!
Quality whole cloves and true cinnamon quills really make a difference in the flavor of hot beverages. Find these and other great ingredients for your autumn and winter recipes on our Ethically Sourced Spices & Ingredients page.


text:
Our Guide to the Fall 2022 Issue
This issue of MIT SMR focuses on customer relationships and their connection to innovation and value.
This issue of MIT SMR focuses on customer relationships and their connection to innovation and value.
Businesses in China source more innovations from customers and market-facing sources than companies elsewhere do.
The U.S. must examine its cultural ideals, in the context of its economic rivalry with China and within its own borders.
Societies shaped by individualism may have an edge when it comes to growth through innovation.
What leaders can learn from near-real-time disaster monitoring data.
What managers can learn from the coronavirus outbreak.
The kinds of challenges we face with the coronavirus point to permanent changes we must make.
Managers can learn a lot from how organizations in China have been coping with the COVID-19 crisis.
China is taking the lead on developing new technology focused on mobility.
Is China still an attractive growth opportunity for Western multinational companies?
Thousands of emerging innovators in China pose a threat to established multinationals.
Chinese digital banking newcomers who understood their consumers changed the economic status quo.
AI's largest and most enduring contributions will be in non-technology sectors, and many of them will come from China.
This online exclusive article discusses why the dramatic rise of China's digital leaders has put the squeeze on Western internet giants.
Foreign companies must retool their R&D strategies to keep pace with newly innovative Chinese enterprises.
Knowledge embedded in today's production and design tools is a powerful force that is leveling the global technology playing field.
IT alignment can produce organizational inertia — unless it's accompanied by the right culture.
Chinese companies are increasingly investing overseas — and bring a different negotiating style.
China continues to be the best place to go to learn how to make ideas commercially viable.
The problem of the domineering corporate headquarters resonates with executives of multinationals.


text:
The Leadership Gifts Office, located on the third floor of Brockway Hall, works with individuals who wish to support special projects and programs at SUNY Cortland. Donors may designate their commitments to specific areas or funding priorities on the campus. There are many naming opportunities on campus for outright and planned gifts, from scholarships to faculty chairs to physical places on campus.
Cortland continues to be an extraordinary place for learning and teaching. Many of our accomplishments are a testimony to the loyal support and dedication of the larger Cortland community. Cortland's "Partners in Leadership," those donors who give $1,000 or more per year, set an outstanding example of Leadership Giving to the School. As the most generous contributors to the Cortland Fund, these gifts are essential to our ability to provide an extraordinary education.
These gifts add strength to Cortland's mission by providing the facilities and opportunities expected of a first class research and teaching facility. They augment student financial aid funds and they support teaching and research initiatives. In every department, they provide flexibility to help develop new curricula, to purchase classroom technology and materials, and to support undergraduate research.
Outright major investments in the college are catalysts for growth and have the immediate power to transform an existing program or initiate a new one. They are critical to advancing the college's vision. The leadership gifts officers stay in close touch with donors on the uses of their gifts and encourage them to visit the campus to see first-hand the impact their gifts are making on our students and on our campus.
Cortland is committed to a need-based financial aid policy. The College tries to meet the demonstrated need of every promising student who is admitted. Inherent in this policy is Cortland's promise to support the talented young people it admits, regardless of their ability to afford a Cortland education.
Because of this commitment, financial aid is one of the College's highest fund-raising priorities. Alumni, parents, and friends of the College generously support the next generation of Cortland students through various kinds of scholarships. For many deserving students who could not otherwise afford a Cortland education, scholarships open the door to undreamed-of possibilities.
In addition to providing a student with the support he or she needs to succeed, a permanent, endowed scholarship often leads to a meaningful connection between the donor and the scholar. A donor who establishes an endowed scholarship receives written reports about his or her students, and the student learns the name of the donor as well as any other information the donor wishes to share. Each spring, donors are invited to meet their scholars at the Scholarship Reception, a gathering that celebrates the special relationship between students and their benefactors.
Many students enjoy corresponding with their donors by letter or e-mail. In gratitude for the support they received as students, many scholarship recipients support the College's financial aid program later in life, extending an ever-widening circle of opportunity. Supporting an individual student through an endowed Scholarship is a powerful way to make a difference in a student's life, and to sustain the values shared by Cortland graduates everywhere.
Members of Cortland's giving societies represent our most generous and loyal donors.
Giving Levels
The Illumination Society
Gifts of $50,000 and above
The Tioughnioga Society
Gifts of $25,000 and above
President's Leadership Circle
Gifts of $10,000 to $24,999
Lyceum Society
Gifts of $5,000 to $9,999
1868 Society
Gifts of $1,868 to $4,999
Committee of One Thousand
Gifts of $1,000 to $1,867
Institutional Advancement
Brockway Hall


text:
Jackson Pollock Table Textiles
Written by Katie on January 24, 2017. Permalink
Do you find these Jackson Pollock Table Textiles amusing? Those of us with any interest in art history may be a tiny bit offended (eating on a likeness of a Pollock painting? Gasp!), yet the pragmatic side of us must admit his art could hide a multitude of dining sins, thus making these textiles very… convenient.
Purchase Information:Price: $24.00 - 65.00
Available from: MoMA Store


text:
Dr. Darren
Dr. Darren took the road less traveled to his position as Search Marketing Director. After becoming a licensed physician, he left medicine to start an ecommerce and software development company. After 10 years doing his own digital marketing, he realized his passion lay in paid advertising, which lets him combine the fun of creating unique marketing messages with the satisfaction of measuring the results.


text:
The search giant yesterday refreshed the Google Maps app for iPhone and iPad on App Store, adding a new Events feature and elevation data for walking and cycling routes.
Introducing Events
Version 4.57 introduces an all-new Events section.
To get started, tap the Explore tab at the bottom of the app, then scroll down to the new Events section to get a list of everything happening nearby, such as a late night comedy show, a movie in the park, or your favorite chef's weekend popup.
Route elevation
Now when you're looking up biking and walking directions, Google Maps will display a handy chart that shows you the elevation of your route. This is an especially useful feature for cycling directions.
If you plan on going on a long bicycle ride, consult this chart to see if you might be in for a serious case of cardio. Elevation data has been available on the Google Maps website for some time.


text:
Putting Lyme Behind You: Basic Lyme for Patients, Family and Friends
Lyme Disease and MSIDS: Diagnosis and Treatment Protocols for the Chronically Ill Patient
Review of Lyme disease Diagnosis and Treatment
Using Integrative Medicine to Heal from Lyme Disease
LymeDisease.org provides a symptom checklist to assist in the diagnosis of Lyme disease. The checklist helps people document exposure to Lyme disease and provides a print out that people can share with their physicians….
Anyone who works or plays outdoors is at risk. Outdoor workers, gardeners, campers, hikers, people who hunt or fish, golfers who stray into the rough, people who live in the city but go for a picnic in a park are all at risk. The list is endless….
A quick and easy poster that you can view and print out giving you the steps to protect yourself from Lyme disease…
Lyme and associated tick-borne diseases (TBD) present complicated challenges for patients. LymeDisease.org screens a wealth of information and presents these selected sources in the Patient Resource Guide….
Knowing the infectious agents in your tick increases the likelihood of proper treatment. You need to find out four things: what tick you have, what pathogen(s) to test for, what type of test to request, and what lab to use….
Without reliable lab tests, clinical symptoms remain the most relevant indicators of Lyme disease. If Lyme disease is not diagnosed and treated early, the infection may persist and become Chronic Lyme disease (CLD)…
LymeDisease.org has put together a easy to understand chart of all Lyme disease co-infections, the vector; endemic area and main symptoms of each co-infection…
Contentious disagreement continues over conflicting guidelines, the existence of chronic Lyme diseasse infection, and the benefit of extended treatment…
The patient denied treatment for Lyme disease often finds oneself in an adversarial system. Your tactics must be those of negotiation. This guide helps you understand the tactics to use to manage the journey through Lyme disease treatment …
MyLymeData is a way for thousands of Lyme patients to contribute information about their Lyme disease experience. When massive amounts of information from patients with Lyme disease are gathered and analyzed, researchers begin to see patterns that help find solutions….
Information every family needs to know. This publication was made possible by a grant from the South High Marathon Dance, with additional assistance from the Post Star, The Saratogian, and The Chronicle….
Read More
Subscribe to our mailing list and get Lyme disease news updates to your email inbox.
We respect your privacy and take protecting it seriously.
Your name:
Your email address:
Send post to email address, comma separated for multiple emails.


text:
General Health
Health and well-being are crucial for everyone, and they are human rights in themselves. But they are also a precondition for accessing many other rights, such as being able to work or going to school. However, due to continuous experiences of discrimination and social exclusion, trans people tend to have poorer mental and physical health than the overall population, in part because access to medical care is difficult or impossible. Interlinked experiences of discrimination, social exclusion, lack of rights awareness and economic hardship may also result in higher HIV infection rates and attempted suicide rates amongst the trans population. Trans people who are migrants, involved in sex work, young, unemployed, or poor are particularly at risk.
Still, an EU-wide study found that improper or abusive treatment by healthcare professionals was a consistent problem experienced by trans people. This can be further exacerbated by a combination of lack of knowledge and prejudices on the part of medical practitioners.
TGEU works to ensure that trans people have access to general healthcare without discrimination and can attain the best possible standard of health.
To this end, TGEU raises awareness amongst policymakers at the European level, works with professional associations such as WPATH and EPATH, and shares information regarding health-related rights with the trans community.


text:
A top Pakistan police official was killed in a suspected suicide blast in Peshawar's Hayatabad area on Friday.
According to Dawn, the attacker, who was on a motorbike, rammed into the police vehicle carrying the Additional Inspector General (AIG) Headquarters, Ashraf Noor, and other officials.
The blast, which left the police vehicle in flames appeared to be a suicide attack, Capital City Police Officer (CCPO) Tahir Khan said.
The blast occurred near the Zarghooni Mosque, when the police officials were on their way to work this morning, the CCPO added.
Khan, confirming the death of the AIG, said at least six policemen were injured and shifted to the Hayatabad Medical Complex.
The police has cordoned off the blast site and further investigation is underway.
Earlier in October, the deputy governor of Afghanistan's Kunar province, Muhammad Nabi Ahmadi, was abducted by unidentified gunmen in the Dabgari area of Peshawar.


text: RPC-over-RDMA Version Two Protocol Oracle Corporation 1015 Granger Avenue Ann Arbor MI 48104 USA +1 248 816 6463 email@example.com NetApp 1601 Trapelo Road Waltham MA 02451 USA +1 781 572 8038 email@example.com Transport Network File System Version 4 NFS-Over-RDMA This document specifies an improved protocol for conveying Remote Procedure Call (RPC) messages on physical transports capable of Remote Direct Memory Access (RDMA), based on RPC-over-RDMA Version One. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in . Remote Direct Memory Access (RDMA) is a technique for moving data efficiently between end nodes. By directing data into destination buffers as it is sent on a network and placing it via direct memory access by hardware, the complementary benefits of faster transfers and reduced host overhead are obtained. A protocol already exists that enables ONC RPC messages to be conveyed on RDMA transports. That protocol is RPC-over-RDMA Version One, specified in . RPC-over-RDMA Version One is deployed and in use, though there are some shortcomings to this protocol, such as: The use of small Receive buffers force the use of RDMA Read and Write transfers for small payloads, and limit the size of backchannel messages. Lack of support for potential optimizations, such as remote invalidation, that require changes to on-the-wire behavior. To address these issues in a way that is compatible with existing RPC-over-RDMA Version One deployments, a new version of RPC-over-RDMA is presented in this document. RPC-over-RDMA Version Two contains only incremental changes over RPC-over-RDMA Version One to facilitate adoption of Version Two by existing Version One implementations. The major new feature in RPC-over-RDMA Version Two is extensibility of the RPC-over-RDMA header. Extensibility enables narrow changes to RPC-over-RDMA Version Two so that new optional capabilities can be introduced without a protocol version change and while maintaining interoperability with existing implementations. New capabilities can be proposed and developed independently of each other, and implementaters can choose among them, making it straightforward to create and document experimental features and then bring them through the standards process. As part of this new extensibility feature set, a mechanism for exchanging transport properties is introduced. This mechanism allows RPC-over-RDMA Version Two connection endpoints to communicate properties of their implementations, to request changes in properties of the other endpoint, and to notify peer endpoints of changes to properties that occur during operation. In addition to extensibility, the default inline threshold value is larger in RPC-over-RDMA Version Two. This change is driven by the increase in average size of RPC messages containing common NFS operations. With NFSv4.1 and later, compound operations convey more data per RPC message. The default 1KB inline threshold in RPC-over-RDMA Version One prevents attaining the best possible performance. Support for Remote Invalidation has been introduced into RPC-over-RDMA Version Two. An RPC-over-RDMA responder can now request invalidation of an STag as part of sending an RPC Reply, saving the requester the effort of invalidating after message receipt. This new feature is general enough to enable a requester to control precisely when Remote Invalidation may be utilized by responders. RPC-over-RDMA Version Two expands the repertoire of error codes to enable extensibility, support debugging, and to prevent requester retries when an error is permanent. The term "inline threshold" is defined in Section 4 of . An "inline threshold" value is the largest message size (in octets) that can be conveyed in one direction on an RDMA connection using only RDMA Send and Receive. Each connection has two inline threshold values: one for messages flowing from requester-to-responder (referred to as the "call inline threshold"), and one for messages flowing from responder-to-requester (referred to as the "reply inline threshold"). Inline threshold values are not advertised to peers via the base RPC-over-RDMA Version Two protocol. A connection's inline threshold determines when RDMA Read or Write operations are required because the RPC message to be sent cannot be conveyed via RDMA Send and Receive. When an RPC message does not contain DDP-eligible data items, a requester prepares a Long Call or Reply to convey the whole RPC message using RDMA Read or Write operations. RDMA Read and Write operations require that each data payload resides in a region of memory that is registered with the RNIC. When an RPC is complete, that region is invalidated, fencing it from the responder. Both registration and invalidation have a latency cost which is insignificant compared to data handling costs. When a data payload is small, however, the cost of registering and invalidating the memory where the payload resides becomes a relatively significant part of total RPC latency. Therefore the most efficient operation of RPC-over-RDMA occurs when RDMA Read and Write operations are used for large payloads, and avoided for small payloads. When RPC-over-RDMA Version One was conceived, the typical size of RPC messages that did not involve a significant data payload was under 500 bytes. A 1024-byte inline threshold adequately minimized the frequency of inefficient Long Calls and Replies. Starting with NFSv4.1 , NFS COMPOUND RPC messages are larger and more complex than before. With a 1024-byte inline threshold, RDMA Read or Write operations are needed for frequent operations that do not bear a data payload, such as GETATTR and LOOKUP, reducing the efficiency of the transport. To reduce the need to use Long Calls and Replies, RPC-over-RDMA Version Two increases the default inline threshold size. This also increases the maximum size of backward direction RPC messages. RPC-over-RDMA Version Two receiver implementations MUST support an inline threshold of 4096 bytes, but MAY support larger inline threshold values. A mechanism for discovering a peer's preferred inline threshold value (not defined in this document) may be used to optimize RDMA Send operations further. In the absense of such a mechanism, senders MUST assume a receiver's inline threshold is 4096 bytes. The new default inline threshold size is no larger than the size of a hardware page on typical platforms. This conserves the resources needed to Send and Receive base level RPC-over-RDMA Version Two messages, enabling RPC-over-RDMA Version Two to be used on a broad variety of hardware. An STag that is registered using the FRWR mechanism (in a privileged execution context), or is registered via a Memory Window (in user space), may be invalidated remotely . These mechanisms are available only when a requester's RNIC supports MEM_MGT_EXTENSIONS. For the purposes of this discussion, there are two classes of STags. Dynamically-registered STags are used in a single RPC, then invalidated. Persistently-registered STags live longer than one RPC. They may persist for the life of an RPC-over-RDMA connection, or longer. An RPC-over-RDMA requester may provide more than one STag in one transport header. It may provide a combination of dynamically- and persistently-registered STags in one RPC message, or any combination of these in a series of RPCs on the same connection. Only dynamically-registered STags using Memory Windows or FRWR (ie. registered via MEM_MGT_EXTENSIONS) may be invalidated remotely. There is no transport-level mechanism by which a responder can determine how a requester-provided STag was registered, nor whether it is eligible to be invalidated remotely. A requester that mixes persistently- and dynamically-registered STags in one RPC, or mixes them across RPCs on the same connection, must therefore indicate which handles may be invalidated via a mechanism provided in the Upper Layer Protocol. RPC-over-RDMA Version Two provides such a mechanism. The RDMA Send With Invalidate operation is used to invalidate an STag on a remote system. It is available only when a responder's RNIC supports MEM_MGT_EXTENSIONS, and must be utilized only when a requester's RNIC supports MEM_MGT_EXTENSIONS (can receive and recognize an IETH). Existing RPC-over-RDMA protocol specifications do not forbid direct data placement in the backward-direction, even though there is currently no Upper Layer Protocol that may use it. When chunks are present in a backward-direction RPC request, Remote Invalidation allows the responder to trigger invalidation of a requester's STags as part of sending a reply, the same as in the forward direction. However, in the backward direction, the server acts as the requester, and the client is the responder. The server's RNIC, therefore, must support receiving an IETH, and the server must have registered the STags with an appropriate registration mechanism. The core RPC-over-RDMA Version Two header format is specified in as a complete and stand-alone piece of XDR. Any change to this XDR description requires a protocol version number change. RPC-over-RDMA Version Two introduces the ability to extend the core protocol via optional features. Extensibility enables minor protocol issues to be addressed and incremental enhancements to be made without the need to change the protocol version. The key capability is that both sides can detect whether a feature is supported by their peer or not. With this ability, OPTIONAL features can be introduced over time to an otherwise stable protocol. The rdma_opttype field carries a 32-bit unsigned integer. The value in this field denotes an optional operation that MAY be supported by the receiver. The values of this field and their meaning are defined in other Standards Track documents. The rdma_optinfo field carries opaque data. The content of this field is data meaningful to the optional operation denoted by the value in rdma_opttype. The content of this field is not defined in the base RPC-over-RDMA Version Two protocol, but is defined in other Standards Track documents When an implementation does not recognize or support the value contained in the rdma_opttype field, it MUST send an RPC-over-RDMA message with the rdma_xid field set to the same value as the erroneous message, the rdma_proc field set to RDMA2_ERROR, and the rdma_err field set to RDMA2_ERR_INVAL_OPTION. Backward direction operation depends on the ability of the receiver to distinguish between incoming forward and backward direction calls and replies. This needs to be done because both the XID field and the flow control value (RPC-over-RDMA credits) in the RPC-over-RDMA header are interpreted in the context of each message's direction. A receiver typically distinguishes message direction by examining the mtype field in the RPC header of each incoming payload message. However, RDMA2_OPTIONAL type messages may not carry an RPC message payload. To enable RDMA2_OPTIONAL type messages that do not carry an RPC message payload to be interpreted unambiguously, the rdma2_optional structure contains a field that identifies the message direction. A similar field has been added to the rpcrdma2_chunk_lists and rpcrdma2_error structures to simplify parsing the RPC-over-RDMA header at the receiver. RPC-over-RDMA Version Two may be extended by defining a new rdma_opttype value, and then by providing an XDR description of the rdma_optinfo content that corresponds with the new rdma_opttype value. As a result, a new header type is effectively created. A Standards Track document introduces each set of such protocol elements. Together these elements are considered an OPTIONAL feature. Each implementation is either aware of all the protocol elements introduced by that feature, or is aware of none of them. Documents describing extensions to RPC-over-RDMA Version Two should contain: An explanation of the purpose and use of each new protocol element added An XDR description of the protocol elements, and a script to extract it A mechanism for reporting errors when the error is outside the available choices already available in the base protocol or in other extensions An indication of whether a Payload stream must be present, and a description of its contents A description of interactions with existing extensions The last bullet includes requirements that another OPTIONAL feature needs to be present for new protocol elements to work, or that a particular level of support be provided for some particular facility for the new extension to work. Implementers combine the XDR descriptions of the new features they intend to use with the XDR description of the base protocol in this document. This may be necessary to create a valid XDR input file because extensions are free to use XDR types defined in the base protocol, and later extensions may use types defined by earlier extensions. The XDR description for the RPC-over-RDMA Version Two protocol combined with that for any selected extensions should provide an adequate human-readable description of the extended protocol. A basic set of receiver and sender properties is specified in this document. An extensible approach is used, allowing new properties to be defined in future standards track documents. Such properties are specified using: A code identifying the particular transport property being specified. A nominally opaque array which contains within it the XDR encoding of the specific property indicated by the associated code. The following XDR types are used by operations that deal with transport properties: <CODE BEGINS> typedef rpcrdma2_propid uint32; struct rpcrdma2_propval { rpcrdma2_propid rdma_which; opaque rdma_data<>; }; typedef rpcrdma2_propval rpcrdma2_propset<>; typedef uint32 rpcrdma2_propsubset<>; <CODE ENDS> An rpcrdma2_propid specifies a particular transport property. In order to allow easier XDR extension of the set of properties by concatenating XDR files, specific properties are defined as const values rather than as elements in an enum. An rpcrdma2_propval specifies a value of a particular transport property with the particular property identified by rdma_which, while the associated value of that property is contained within rdma_data. A rdma_data field which is of zero length is interpreted as indicating the default value or the property indicated by rdma_which. While rdma_data is defined as opaque within the XDR, the contents are interpreted (except when of length zero) using the XDR typedef associated with the property specified by rdma_which. The receiver of a message containing an rpcrdma2_propval MUST report an XDR error [ cel: which error? BAD_XDR, or do we want to add a new one? ] if the length of rdma_data is such that it extends beyond the bounds of the message transferred. In cases in which the rpcrdma2_propid specified by rdma_which is understood by the receiver, the receiver also MUST report an XDR error if either of the following occur: [ cel: which error? BAD_XDR, or do we want to add a new one? ] The nominally opaque data within rdma_data is not valid when interpreted using the property-associated typedef. The length of rdma_data is insufficient to contain the data represented by the property-associated typedef. Note that no error is to be reported if rdma_which is unknown to the receiver. In that case, that rpcrdma2_propval is not processed and processing continues using the next rpcrdma2_propval, if any. A rpcrdma2_propset specifies a set of transport properties. No particular ordering of the rpcrdma2_propval items within it is imposed. A rpcrdma2_propsubset identifies a subset of the properties in a previously specified rpcrdma2_propset. Each bit in the mask denotes a particular element in a previously specified rpcrdma2_propset. If a particular rpcrdma2_propval is at position N in the array, then bit number N mod 32 in word N div 32 specifies whether that particular rpcrdma2_propval is included in the defined subset. Words beyond the last one specified are treated as containing zero. Propvalsubsets are useful in a number of contexts: In the specification of transport properties at connection, they allow the sender to specify what subset of those are subject to later change. In responding to a request to modify a set of transport properties, they allow the responding endpoint to specify the subsets of those properties for which the requested change has been performed or been rejected. Transport properties are divided into a number of groups A basic set of transport properties defined in this document. See for the complete list. Additional transport properties defined in future standards track documents as specified in . Experimental transport properties being explored preparatory to being considered for standards track definition. See the description in . There are a number of operations defined in which are used to communicate and manage transport properties. Prime among these is RDMA2_CONNPROP (defined in which serves as a means by which an endpoint's transport properties may be presented to its peer, typically upon establishing a connection. In addition, there are a set of related operations concerned with requesting, effecting and reporting changes in transport properties: RDMA2_REQPROP (defined in which serves as a way for an endpoint to request that a peer change the values for a set of transport properties. RDMA2_RESPROP (defined in is used to report on the disposition of each of the individual transport property changes requested in a previous RDMA2_REQPROP. RDMA2_UPDPROP (defined in is used to report an unsolicited change in a transport property. Unlike many other operation types, the above are not used to effect transfer of RPC requests but are internal one-way information transfers. However, a RDMA2_REQPROP and the corresponding RDMA2_RESPROP do constitute an RPC-like remote call. The other operations are not part of a remote call transaction. Although the set of transport properties is subject to later extension, a basic set of transport properties is defined below in . In that table, the columns contain the following information: The column labeled "property" identifies the transport property described by the current row. The column labeled "code" specifies the rpcrdma2_propid value used to identify this property. The column labeled "XDR type" gives the XDR type of the data used to communicate the value of this property. This data type overlays the data portion of the nominally opaque field rdma_data in a rpcrdma2_propval. The column labeled "default" gives the default value for the property which is to be assumed by those who do not receive, or are unable to interpret, information about the actual value of the property. The column labeled "section" indicates the section (within this document) that explains the semantics and use of this transport property. property code XDR type default section Receive Buffer Size 1 uint32 4096 Backward Request Support 2 enum rpcrdma2_bkreqsup RDMA2_BKREQSUP_INLINE Note that this table does not provide any indication regarding whether a particular property can change or whether a change in the value may be requested (see ). Such matters are not addressed by the protocol definition. An implementation may provide information about its readiness to make changed in a particular property using the rdma_nochg field in the RDMA2_CONNPROP message. A partner implementation can always request a change but peers MAY reject a request to change a property for any reason. Implementations are always free to reject such requests if they cannot or do not wish to effect the requested change. Either of the following will result in effective rejection requests to change specific properties: If an endpoint does not wish to accept request to change particular properties, it may reject such requests as described in . If an endpoint does not support the RDMA2_REQPROP operation, the effect would be the same as if every request to change a set of property were rejected. With regard to unrequested changes in transport properties, it is the responsibility of the implementation making the change to do so in a fashion that which does not interfere with the other partner's continued correct operation (see ). The Receive Buffer Size specifies the minimum size, in octets, of pre-posted receive buffers. It is the responsibility of the participant sending this value to ensure that its pre-posted receives are at least the size specified, allowing the participant receiving this value to send messages that are of this size. <CODE BEGINS> const uint32 RDMA2_PROPID_RBSIZ = 1; typedef uint32 rpcrdma2_prop_rbsiz; <CODE ENDS> The sender may use his knowledge of the receiver's buffer size to determine when the message to be sent will fit in the preposted receive buffers that the receiver has set up. In particular, Requesters may use the value to determine when it is necessary to provide a Position-Zero read chunk when sending a request. Requesters may use the value to determine when it is necessary to provide a Reply chunk when sending a request, based on the maximum possible size of the reply. Responders may use the value to determine when it is necessary, given the actual size of the reply, to actually use a Reply chunk provided by the requester. Because there may be pre-posted receives with buffer sizes that reflect earlier values of the buffer size property, changing this property poses special difficulties: When the size is being raised, the partner should not be informed of the change until all pending receives using the older value have been eliminated. The size should not be reduced until the partner is aware of the need to reduce the size of future sends to conform to this reduced value. To ensure this, such a change should only occur in response to an explicit request by the other endpoint (See ). The participant making the request should use that lower size as the send size limit until the request is rejected (See ) or an update to a size larger than the requested value becomes effective and the requested change is no longer pending (See ). The value of this property is used to indicate a client implementation's readiness to accept and process messages that are part of backward-direction RPC requests. <CODE BEGINS> enum rpcrdma2_bkreqsup { RDMA2_BKREQSUP_NONE = 0, RDMA2_BKREQSUP_INLINE = 1, RDMA2_BKREQSUP_GENL = 2 }; const uint32 RDMA2_PROPID_BRS = 2; typedef rpcrdma2_bkreqsup rpcrdma2_prop_brs; <CODE ENDS> Multiple levels of support are distinguished: The value RDMA2_BKREQSUP_NONE indicates that receipt of backward-direction requests and replies is not supported. The value RDMA2_BKREQSUP_INLINE indicates that receipt of backward-direction requests or replies is only supported using inline messages and that use of explicit RDMA operations or other form of Direct Data Placement for backward direction requests or responses is not supported. The value RDMA2_BKREQSUP_GENL that receipt of backward-direction requests or replies is supported in the same ways that forward-direction requests or replies typically are. When information about this property is not provided, the support level of servers can be inferred from the backward- direction requests that they issue, assuming that issuing a request implicitly indicates support for receiving the corresponding reply. On this basis, support for receiving inline replies can be assumed when requests without read chunks, write chunks, or Reply chunks are issued, while requests with any of these elements allow the client to assume that general support for backward-direction replies is present on the server. The proposed new operations are set forth in below. In that table, the columns contain the following information: The column labeled "operation" specifies the particular operation. The column labeled "code" specifies the value of opttype for this operation. The column labeled "XDR type" gives the XDR type of the data structure used to describe the information in this new message type. This data overlays the data portion of the nominally opaque field optinfo in an RDMA_OPTIONAL message. The column labeled "msg" indicates whether this operation is followed (or not) by an RPC message payload. The column labeled "section" indicates the section (within this document) that explains the semantics and use of this optional operation. operation code XDR type msg section Specify Properties at Connection 1 optinfo_connprop No Request Property Modification 2 rpcrdma2_reqprop No Respond to Modification Request 3 rpcrdma2_resprop No Report Updated Properties 4 rpcrdma2_updprop No Support for all of the operations above is OPTIONAL. RPC-over-RDMA Version Two implementations that receive an operation that is not supported MUST respond with RDMA_ERROR message with an error code of RDMA_ERR_INVAL_OPTION. The only operation support requirements are as follows: Implementations which send RDMA2_REQPROP messages must support RDMA2_RESPROP messages. Implementations which support RDMA2_RESPROP or RDMA2_UPDPROP messages must also support RDMA2_CONNPROP messages. The RDMA2_CONNPROP message type allows an RPC-over-RDMA participant, whether client or server, to indicate to its partner relevant transport properties that the partner might need to be aware of. The message definition for this operation is as follows: <CODE BEGINS> struct rpcrdma2_connprop { rpcrdma2_propset rdma_start; rpcrdma2_propsubset rdma_nochg; }; <CODE ENDS> All relevant transport properties that the sender is aware of should be included in rdma_start. Since support of this request is OPTIONAL, and since each of the properties is OPTIONAL as well, the sender cannot assume that the receiver will necessarily take note of these properties and so the sender should be prepared for cases in which the partner continues to assume that the default value for a particular property is still in effect. Values of the subset of transport properties specified by rdma_nochg is not expected to change during the lifetime of the connection. Generally, a participant will send a RDMA2_CONNPROP message as the first message after a connection is established. Given that fact, the sender should make sure that the message can be received by partners who use the default Receive Buffer Size. The connection's initial receive buffer size is typically 1KB, but it depends on the initial connection state of the RPC-over-RDMA version in use. Properties not included in rdma_start are to be treated by the peer endpoint as having the default value and are not allowed to change subsequently. The peer should not request changes in such properties. Those receiving an RDMA2_CONNPROP may encounter properties that they do not support or are unaware of. In such cases, these properties are simply ignored without any error response being generated. The RDMA2_REQPROP message type allows an RPC-over-RDMA participant, whether client or server, to request of its partner that relevant transport properties be changed. The rdma_xid field allows the request to be tied to a corresponding response of type RDMA2_RESPROP (See .) In assigning the value of this field, the sender does not need to avoid conflict with xid's associated with RPC messages or with RDMA2_REQPROP messages sent by the peer endpoint. The partner need not change the properties as requested by the sender but if it does support the message type, it will generate a RDMA2_RESPROP message, indicating the disposition of the request. The message definition for this operation is as follows: <CODE BEGINS> struct rpcrdma2_reqprop { rpcrdma2_propset rdma_want; }; <CODE ENDS> The rpcrdma2_propset rdma_want is a set of transport properties together with the desired values requested by the sender. The RDMA2_RESPROP message type allows an RPC-over-RDMA participant to respond to a request to change properties by its partner, indicating how the request was dealt with. The message definition for this operation is as follows: <CODE BEGINS> struct rpcrdma2_resprop { rpcrdma2_propsubset rdma_done; rpcrdma2_propsubset rdma_rejected; rpcrdma2_propset rdma_other; }; <CODE ENDS> The rdma_xid field of this message must match that used in the RDMA2_REQPROP message to which this message is responding. The rdma_done field indicates which of the requested transport property changes have been effected as requested. For each such property, the receiver is entitled to conclude that the requested change has been made and that future transmissions may be made based on the new value. The rdma_rejected field indicates which of the requested transport property changes have been rejected by the sender. This may be because of any of the following reasons: The particular property specified is not known or supported by the receiver of the RDMA2_REQPROP message. The implementation receiving the RDMA2_REQPROP message does not support modification of this property. The implementation receiving the RDMA2_REQPROP message has chosen to reject the modification for another reason. The rdma_other field contains new values for properties where a change is requested. The new value of the property is included and may be a value different from the original value in effect when the change was requested and from the requested value. This is useful when the new value of some property is not as large as requested but still different from the original value, indicating a partial satisfaction of the peer's property change request. The sender MUST NOT include rpcrdma2_propval items within rdma_other that are for properties other than the ones for which the corresponding property request has requested a change. If the receiver finds such a situation, it MUST ignore the erroneous rpcrdma2_propval items. The subsets of properties specified by rdma_done, rdma_rejected, and included in rdma_other MUST NOT overlap, and when ored together, should cover the entire set of properties specified by rdma_want in the corresponding request. If the receiver finds such an overlap or mismatch, it SHOULD treat properties missing or within the overlap as having been rejected. The RDMA2_UPDPROP message type allows an RPC-over-RDMA participant to notify the other participant that a change to the transport properties has occurred. This is because the sender has decided, independently, to modify one or more transport properties and is notifying the receiver of these changes. The message definition for this operation is as follows: <CODE BEGINS> struct rpcrdma2_updprop { rpcrdma2_propset rdma_now; }; <CODE ENDS> rdma_now defines the new property values to be used. The set of transport properties is designed to be extensible. As a result, once new properties are defined in standards track documents, the operations defined in this document may reference these new transport properties, as well as the ones described in this document. A standards track document defining a new transport property should include the following information paralleling that provided in this document for the transport properties defined herein. The rpcrdma2_propid value used to identify this property. The XDR typedef specifying the form in which the property value is communicated. A description of the transport property that is communicated by the sender of RDMA2_CONNPROP and RDMA2_UPDPROP and requested by the sender of RDMA2_REQPROP. An explanation of how this knowledge could be used by the participant receiving this information. Information giving rules governing possible changes of values of this property. The definition of transport property structures is such as to make it easy to assign unique values. There is no requirement that a continuous set of values be used and implementations should not rely on all such values being small integers. A unique value should be selected when the defining document is first published as an internet draft. When the document becomes a standards track document working group should insure that: rpcrdma2_propid values specified in the document do not conflict with those currently assigned or in use by other pending working group documents defining transport properties. rpcrdma2_propid values specified in the document do not conflict with the range reserved for experimental use, as defined in . Documents defining new properties fall into a number of categories. Those defining new properties and explaining (only) how they affect use of existing message types. Those defining new OPTIONAL message types and new properties applicable to the operation of those new message types. Those defining new OPTIONAL message types and new properties applicable both to new and existing message types. When additional transport properties are proposed, the review of the associated standards track document should deal with possible security issues raised by those new transport properties. Given the design of the transport properties data structure, it possible to use the operations to implement experimental, possibly unpublished, transport properties. rpcrdma2_propid values in the range from 4,294,967,040 to 4,294,967,295 are reserved for experimental use and these values should not be assigned to new properties in standards track documents. When values in this range are used there is no guarantee if successful interoperation among independent implementations. This section contains a description of the core features of the RPC-over-RDMA Version Two protocol, expressed in the XDR language . This description is provided in a way that makes it simple to extract into ready-to-compile form. The reader can apply the following shell script to this document to produce a machine-readable XDR description of the RPC-over-RDMA Version One protocol without any OPTIONAL extensions. <CODE BEGINS> #!/bin/sh grep '^ *///' | sed 's?^ /// ??' | sed 's?^ *///$??' <CODE ENDS> That is, if the above script is stored in a file called "extract.sh" and this document is in a file called "spec.txt" then the reader can do the following to extract an XDR description file: <CODE BEGINS> sh extract.sh < spec.txt > rpcrdma_corev2.x <CODE ENDS> Optional extensions to RPC-over-RDMA Version Two, published as Standards Track documents, will have similar means of providing XDR that describes those extensions. Once XDR for all desired extensions is also extracted, it can be appended to the XDR description file extracted from this document to produce a consolidated XDR description file reflecting all extensions selected for an RPC-over-RDMA implementation. Code components extracted from this document must include the following license text. When the extracted XDR code is combined with other complementary XDR code which itself has an identical license, only a single copy of the license text need be preserved. <CODE BEGINS> /// /* /// * Copyright (c) 2010, 2016 IETF Trust and the persons /// * identified as authors of the code. All rights reserved. /// * /// * The authors of the code are: /// * B. Callaghan, T. Talpey, C. Lever, and D. Noveck. /// * /// * Redistribution and use in source and binary forms, with /// * or without modification, are permitted provided that the /// * following conditions are met: /// * /// * - Redistributions of source code must retain the above /// * copyright notice, this list of conditions and the /// * following disclaimer. /// * /// * - Redistributions in binary form must reproduce the above /// * copyright notice, this list of conditions and the /// * following disclaimer in the documentation and/or other /// * materials provided with the distribution. /// * /// * - Neither the name of Internet Society, IETF or IETF /// * Trust, nor the names of specific contributors, may be /// * used to endorse or promote products derived from this /// * software without specific prior written permission. /// * /// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS /// * AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED /// * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE /// * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS /// * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO /// * EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE /// * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, /// * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT /// * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR /// * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS /// * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF /// * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, /// * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING /// * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF /// * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. /// */ <CODE ENDS> The XDR defined in this section is used to encode the Transport Header Stream in each RPC-over-RDMA Version Two message. The terms "Transport Header Stream" and "RPC Payload Stream" are defined in Section 4 of . <CODE BEGINS> /// /* From RFC 5531, Section 9 */ /// enum msg_type { /// CALL = 0, /// REPLY = 1 /// }; /// /// struct rpcrdma2_segment { /// uint32 rdma_handle; /// uint32 rdma_length; /// uint64 rdma_offset; /// }; /// /// struct rpcrdma2_read_segment { /// uint32 rdma_position; /// struct rpcrdma2_segment rdma_target; /// }; /// /// struct rpcrdma2_read_list { /// struct rpcrdma2_read_segment rdma_entry; /// struct rpcrdma2_read_list *rdma_next; /// }; /// /// struct rpcrdma2_write_chunk { /// struct rpcrdma2_segment rdma_target<>; /// }; /// /// struct rpcrdma2_write_list { /// struct rpcrdma2_write_chunk rdma_entry; /// struct rpcrdma2_write_list *rdma_next; /// }; /// /// struct rpcrdma2_chunk_lists { /// enum msg_type rdma_direction; /// uint32 rdma_inv_handle; /// struct rpcrdma2_read_list *rdma_reads; /// struct rpcrdma2_write_list *rdma_writes; /// struct rpcrdma2_write_chunk *rdma_reply; /// }; /// /// enum rpcrdma2_errcode { /// RDMA2_ERR_VERS = 1, /// RDMA2_ERR_BAD_XDR = 2, /// RDMA2_ERR_INVAL_PROC = 3, /// RDMA2_ERR_READ_CHUNKS = 4, /// RDMA2_ERR_WRITE_CHUNKS = 5, /// RDMA2_ERR_SEGMENTS = 6, /// RDMA2_ERR_WRITE_RESOURCE = 7, /// RDMA2_ERR_REPLY_RESOURCE = 8, /// RDMA2_ERR_INVAL_OPTION = 9, /// RDMA2_ERR_SYSTEM = 10, /// }; /// /// struct rpcrdma2_err_vers { /// uint32 rdma_vers_low; /// uint32 rdma_vers_high; /// }; /// /// struct rpcrdma2_err_write { /// uint32 rdma_chunk_index; /// uint32 rdma_length_needed; /// }; /// /// union rpcrdma2_error switch (rpcrdma2_errcode rdma_err) { /// case RDMA2_ERR_VERS: /// rpcrdma2_err_vers rdma_vrange; /// case RDMA2_ERR_BAD_XDR: /// void; /// case RDMA2_ERR_INVAL_PROC: /// void; /// case RDMA2_ERR_READ_CHUNKS: /// uint32 rdma_max_chunks; /// case RDMA2_ERR_WRITE_CHUNKS: /// uint32 rdma_max_chunks; /// case RDMA2_ERR_SEGMENTS: /// uint32 rdma_max_segments; /// case RDMA2_ERR_WRITE_RESOURCE: /// rpcrdma2_err_write rdma_writeres; /// case RDMA2_ERR_REPLY_RESOURCE: /// uint32 rdma_length_needed; /// case RDMA2_ERR_INVAL_OPTION: /// void; /// case RDMA2_ERR_SYSTEM: /// void; /// }; /// /// struct rpcrdma2_optional { /// enum msg_type rdma_optdir; /// uint32 rdma_opttype; /// opaque rdma_optinfo<>; /// }; /// /// typedef rpcrdma2_propid uint32; /// /// struct rpcrdma2_propval { /// rpcrdma2_propid rdma_which; /// opaque rdma_data<>; /// }; /// /// typedef rpcrdma2_propval rpcrdma2_propset<>; /// typedef uint32 rpcrdma2_propsubset<>; /// /// struct rpcrdma2_connprop { /// rpcrdma2_propset rdma_start; /// rpcrdma2_propsubset rdma_nochg; /// }; /// /// struct rpcrdma2_reqprop { /// rpcrdma2_propset rdma_want; /// }; /// /// struct rpcrdma2_resprop { /// rpcrdma2_propsubset rdma_done; /// rpcrdma2_propsubset rdma_rejected; /// rpcrdma2_propset rdma_other; /// }; /// /// struct rpcrdma2_updprop { /// rpcrdma2_propset rdma_now; /// }; /// enum rpcrdma2_proc { /// RDMA2_MSG = 0, /// RDMA2_NOMSG = 1, /// RDMA2_ERROR = 4, /// RDMA2_OPTIONAL = 5, /// RDMA2_CONNPROP = 6, /// RDMA2_REQPROP = 7, /// RDMA2_RESPROP = 8, /// RDMA2_UPDPROP = 9 /// }; /// /// union rpcrdma2_body switch (rpcrdma2_proc rdma_proc) { /// case RDMA2_MSG: /// rpcrdma2_chunk_lists rdma_chunks; /// case RDMA2_NOMSG: /// rpcrdma2_chunk_lists rdma_chunks; /// case RDMA2_ERROR: /// rpcrdma2_error rdma_error; /// case RDMA2_OPTIONAL: /// rpcrdma2_optional rdma_optional; /// case RDMA2_CONNPROP: /// rpcrdma2_connprop rdma_connprop; /// case RDMA2_REQPROP: /// rpcrdma2_reqprop rdma_reqprop; /// case RDMA2_RESPROP: /// rpcrdma2_resprop rdma_resprop; /// case RDMA2_UPDPROP: /// rpcrdma2_updprop rdma_updprop; /// }; /// /// struct rpcrdma2_xprt_hdr { /// uint32 rdma_xid; /// uint32 rdma_vers; /// uint32 rdma_credit; /// rpcrdma2_body rdma_body; /// }; /// /// /* /// * Transport propid values for basic properties /// */ /// const uint32 RDMA2_PROPID_RBSIZ = 1; /// const uint32 RDMA2_PROPID_BRS = 2; /// /// /* /// * Transport property typedefs /// */ /// typedef uint32 rpcrdma2_prop_rbsiz; /// typedef rpcrdma2_bkreqsup rpcrdma2_prop_brs; /// /// enum rpcrdma2_bkreqsup { /// RDMA2_BKREQSUP_NONE = 0, /// RDMA2_BKREQSUP_INLINE = 1, /// RDMA2_BKREQSUP_GENL = 2 /// }; <CODE ENDS> When the rdma_proc field has the value RDMA2_MSG, an RPC Payload Stream MUST follow the Transport Header Stream in the Send buffer. When the rdma_proc field has the value RDMA2_ERROR, an RPC Payload Stream MUST NOT follow the Transport Header Stream. When the rdma_proc field has the value RDMA2_OPTIONAL, all, part of, or no RPC Payload Stream MAY follow the Transport header Stream in the Send buffer. Implementations of RPC-over-RDMA Version Two are REQUIRED to support backwards direction operation as described in . RPC-over-RDMA Version Two introduces the rdma_direction field in its transport header to optimize the process of distinguishing between forward- and backwards-direction messages. The rdma_direction field qualifies the value contained in the transport header's rdma_xid field. This enables a receiver to reliably avoid performing an XID lookup on incoming backwards-direction Call messages. In general, when a message carries an XID that was generated by the message's receiver (that is, the receiver is acting as a requester), the message's sender sets the rdma_direction field to REPLY (1). Otherwise the rdma_direction field is set to CALL (0). For example: When the rdma_proc field has the value RDMA2_MSG or RDMA2_NOMSG, the value of the rdma_direction field MUST be the same as the value of the associated RPC message's msg_type field. When the rdma_proc field has the value RDMA2_OPTIONAL and a whole or partial RPC message payload is present, the value of the rdma_optdir field MUST be the same as the value of the associated RPC message's msg_type field. When the rdma_proc field has the value RDMA2_OPTIONAL and no RPC message payload is present, a Requester MUST set the value of the rdma_optdir field to CALL, and a Responder MUST set the value of the rdma_optdir field to REPLY. The Requester chooses a value for the rdma_xid field from the XID space that matches the message's direction. Requesters and Responders set the rdma_credit field in a similar fashion: a value is set that is appropriate for the direction of the message. When the rdma_proc field has the value RDMA2_ERROR, the direction of the message is always Responder-to-Requester (REPLY). To request Remote Invalidation, a requester MUST set the value of the rdma_inv_handle field in an RPC Call's transport header to a non-zero value that matches one of the rdma_handle fields in that header. If none of the rdma_handle values in the Call may be invalidated by the responder, the requester MUST set the RPC Call's rdma_inv_handle field to the value zero. If the responder chooses not to use Remote Invalidation for this particular RPC Reply, or the RPC Call's rdma_inv_handle field contains the value zero, the responder MUST use RDMA Send to transmit the matching RPC reply. If a requester has provided a non-zero value in the RPC Call's rdma_inv_handle field and the responder chooses to use Remote Invalidation for the matching RPC Reply, the responder MUST use RDMA Send With Invalidate to transmit that RPC reply, and MUST use the value in the RPC Call's rdma_inv_handle field to construct the Send With Invalidate Work Request. Error handling works the same way in RPC-over-RDMA Version Two as it does in RPC-over-RDMA Version One, with the addition of several new error codes, and error messages never flow from requester to responder. Version One error handling is described in Section 5 of . In all cases below, the responder copies the values of the rdma_xid and rdma_vers fields from the incoming transport header that generated the error to transport header of the error response. The responder sets the rdma_proc field to RDMA2_ERROR, and the rdma_credit field is set to the credit grant value for this connection. This is the equivalent of ERR_VERS in RPC-over-RDMA Version One. The error code value, semantics, and utilization are the same. If a responder recognizes the value in the rdma_vers field, but it does not recognize the value in the rdma_proc field, it MUST set the rdma_err field to RDMA2_ERR_INVAL_PROC. If a responder recognizes the values in the rdma_vers and rdma_proc fields, but the incoming RPC-over-RDMA transport header cannot be parsed, it MUST set the rdma_err field to RDMA2_ERR_BAD_XDR. The error code value of RDMA2_ERR_BAD_XDR is the same as the error code value of ERR_CHUNK in RPC-over-RDMA Version One. The responder MUST NOT process the request in any way except to send an error message. If a requester presents more DDP-eligible arguments than the responder is prepared to Read, the responder MUST set the rdma_err field to RDMA2_ERR_READ_CHUNKS, and set the rdma_max_chunks field to the maximum number of Read chunks the responder can receive and process. If a requester has constructed an RPC Call message with more DDP-eligible results than the server is prepared to Write, the responder MUST set the rdma_err field to RDMA2_ERR_WRITE_CHUNKS, and set the rdma_max_chunks field to the maximum number of Write chunks the responder can process and return. If a requester has constructed an RPC Call message with a chunk that contains more segments than the responder supports, the responder MUST set the rdma_err field to RDMA2_ERR_SEGMENTS, and set the rdma_max_segments field to the maximum number of segments the responder can process. If a requester has provided a Write chunk that is not large enough to convey a DDP-eligible result, the responder MUST set the rdma_err field to RDMA2_ERR_WRITE_RESOURCE. The responder MUST set the rdma_chunk_index field to point to the first Write chunk in the transport header that is too short, or to zero to indicate that it was not possible to determine which chunk is too small. Indexing starts at one (1), which represents the first Write chunk. The responder MUST set the rdma_length_needed to the number of bytes needed in that chunk in order to convey the result data item. Upon receipt of this error code, a responder MAY choose to terminate the operation (for instance, if the responder set the index and length fields to zero), or it MAY send the request again using the same XID and more reply resources. If an RPC Reply's Payload stream does not fit inline and the requester has not provided a large enough Reply chunk to convey the stream, the responder MUST set the rdma_err field to RDMA2_ERR_REPLY_RESOURCE. The responder MUST set the rdma_length_needed to the number of Reply chunk bytes needed to convey the reply. Upon receipt of this error code, a responder MAY choose to terminate the operation (for instance, if the responder set the index and length fields to zero), or it MAY send the request again using the same XID and larger reply resources. A responder MUST set the rdma_err field to RDMA2_ERR_INVAL_OPTION when an RDMA2_OPTIONAL message is received and the responder does not recognize the value in the rdma_opttype field. If some problem occurs on a responder that does not fit into the above categories, the responder MAY report it to the sender by setting the rdma_err field to RDMA2_ERR_SYSTEM. This is a permanent error: a requester that receives this error MUST terminate the RPC transaction associated with the XID value in the rdma_xid field. When an RPC-over-RDMA Version Two client establishes a connection to a server, the first order of business is to determine the server's highest supported protocol version. As with RPC-over-RDMA Version One, a client MUST assume the ability to exchange only a single RPC-over-RDMA message at a time until it receives a valid non-error RPC-over-RDMA message from the server that reports the server's credit limit. First, the client sends a single valid RPC-over-RDMA message with the value two (2) in the rdma_vers field. Because the server might support only RPC-over-RDMA Version One, this initial message can be no larger than the Version One default inline threshold of 1024 bytes. If the server does support RPC-over-RDMA Version Two, it sends RPC-over-RDMA messages back to the client with the value two (2) in the rdma_vers field. Both peers may use the default inline threshold value for RPC-over-RDMA Version Two connections (4096 bytes). If the server does not support RPC-over-RDMA Version Two, it MUST send an RPC-over-RDMA message to the client with the same XID, with RDMA2_ERROR in the rdma_proc field, and with the error code RDMA2_ERR_VERS. This message also reports a range of protocol versions that the server supports. To continue operation, the client selects a protocol version in the range of server-supported versions for subsequent messages on this connection. If the connection is lost immediately after an RDMA2_ERROR / RDMA2_ERR_VERS message is received, a client can avoid a possible version negotiation loop when re-establishing another connection by assuming that particular server does not support RPC-over-RDMA Version Two. A client can assume the same situation (no server support for RPC-over-RDMA Version Two) if the initial negotiation message is lost or dropped. Once the negotiation exchange is complete, both peers may use the default inline threshold value for the transport protocol version that has been selected. If the server supports the RPC-over-RDMA protocol version used in Call messages from a client, it MUST send Replies with the same RPC-over-RDMA protocol version that the client uses to send its Calls. The security considerations for RPC-over-RDMA Version Two are the same as those for RPC-over-RDMA Version One. Like other fields that appear in each RPC-over-RDMA header, property information is sent in the clear on the fabric with no integrity protection, making it vulnerable to man-in-the-middle attacks. For example, if a man-in-the-middle were to change the value of the Receive buffer size or the Requester Remote Invalidation boolean, it could reduce connection performance or trigger loss of connection. Repeated connection loss can impact performance or even prevent a new connection from being established. Recourse is to deploy on a private network or use link-layer encryption. This document does not require actions by IANA. Key words for use in RFCs to Indicate Requirement Levels In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements. XDR: External Data Representation Standard This document describes the External Data Representation Standard (XDR) protocol as it is currently deployed and accepted. This document obsoletes RFC 1832. [STANDARDS-TRACK] RPC: Remote Procedure Call Protocol Specification Version 2 This document describes the Open Network Computing (ONC) Remote Procedure Call (RPC) version 2 protocol as it is currently deployed and accepted. This document obsoletes RFC 1831. [STANDARDS-TRACK] Remote Direct Memory Access Transport for Remote Procedure Call, Version One This document specifies a protocol for conveying Remote Procedure Call (RPC) messages on physical transports capable of Remote Direct Memory Access (RDMA). It requires no revision to application RPC protocols or the RPC protocol itself. This document obsoletes RFC 5666. Bi-directional Remote Procedure Call On RPC-over-RDMA Transports Minor versions of Network File System (NFS) version 4 newer than minor version 0 work best when Remote Procedure Call (RPC) transports can send RPC transactions in both directions on the same connection. This document describes how RPC transport endpoints capable of Remote Direct Memory Access (RDMA) convey RPCs in both directions on a single connection. InfiniBand Architecture Specifications InfiniBand Trade Association A Remote Direct Memory Access Protocol Specification This document defines a Remote Direct Memory Access Protocol (RDMAP) that operates over the Direct Data Placement Protocol (DDP protocol). RDMAP provides read and write services directly to applications and enables data to be transferred directly into Upper Layer Protocol (ULP) Buffers without intermediate data copies. It also enables a kernel bypass implementation. [STANDARDS-TRACK] Direct Data Placement over Reliable Transports The Direct Data Placement protocol provides information to Place the incoming data directly into an upper layer protocol's receive buffer without intermediate buffers. This removes excess CPU and memory utilization associated with transferring data through the intermediate buffers. [STANDARDS-TRACK] Network File System (NFS) Version 4 Minor Version 1 Protocol This document describes the Network File System (NFS) version 4 minor version 1, including features retained from the base protocol (NFS version 4 minor version 0, which is specified in RFC 3530) and protocol extensions made subsequently. Major extensions introduced in NFS version 4 minor version 1 include Sessions, Directory Delegations, and parallel NFS (pNFS). NFS version 4 minor version 1 has no dependencies on NFS version 4 minor version 0, and it is considered a separate protocol. Thus, this document neither updates nor obsoletes RFC 3530. NFS minor version 1 is deemed superior to NFS minor version 0 with no loss of functionality, and its use is preferred over version 0. Both NFS minor versions 0 and 1 can be used simultaneously on the same network, between the same client and server. [STANDARDS-TRACK] Network File System (NFS) Version 4 Minor Version 1 External Data Representation Standard (XDR) Description This document provides the External Data Representation Standard (XDR) description for Network File System version 4 (NFSv4) minor version 1. [STANDARDS-TRACK] Remote Direct Memory Access Transport for Remote Procedure Call This document describes a protocol providing Remote Direct Memory Access (RDMA) as a new transport for Remote Procedure Call (RPC). The RDMA transport binding conveys the benefits of efficient, bulk-data transport over high-speed networks, while providing for minimal change to RPC applications and with no required revision of the application RPC protocol, or the RPC protocol itself. [STANDARDS-TRACK] The authors gratefully acknowledge the work of Brent Callaghan and Tom Talpey on the original RPC-over-RDMA Version One specification . The authors also wish to thank Bill Baker, Greg Marsden, and Matt Benjamin for their support of this work. The extract.sh shell script and formatting conventions were first described by the authors of the NFSv4.1 XDR specification . Special thanks go to nfsv4 Working Group Chair Spencer Shepler and nfsv4 Working Group Secretary Thomas Haynes for their support.


text:
In this section you find useful advices about how to manage your UNIBAT battery in the best way.
Click on the question you are interested in to view the answer.
Click on the question you are interested in to view the answer.
What is the best way to take care of the battery?
If the battery is not a maintenance free battery, the liquid level has to be checked. When the bike has to be stored for over 30 days, we suggest to use a battery charger like our UNICHARGER, that is a completely automatic device. During the storage of the bike UNICHARGER can remain connected to the battery, acting a constant check and recharge of the accumulator, and granting a long lasting endurance. Furthermore we recommend you to clean the battery, the terminals and the clamps to prevent corrosion. Protect the battery from strong impacts or shocks.
What is the main cause of battery sulfation?
Sulfation may occur when battery is not constantly used for a considerable time (six months or more). In this case the lead plates harden and recharge is difficult, as well as the product usage. Anyway the new AGM Technology helps to extend the sulfation time of almost 40% more.
How long does a battery recharge last?
There is a mathematical formula which calculates the theoretical charging time and it is considered best practice to stay near this value.
This is the formula:
Battery capacity (in apere) / Battery charger capacity (Ampere/h).
The result is the required charging time (in hours).
For instance, if you have a 60Ah battery and you want to charge it with a e 6 Ah/h battery charger, the charging time will be 60/6= 10 hours
Can an AGM battery be installed in any position?
This type of battery can be safely installed in almost all positios, because acid is kept by special separators made of special absorbed glass material (agm). These separators keep the acid and electric contacts between the elements
Can I replace my battery with a more powerful, bigger, smaller or lighter one?
The use of a battery different from that installed by the vehicle's manufacturer can compromise and affect the vehicle's efficiency. Anyway in some cases you can still do that, but we always suggest our customers to ask a professional installer or ask the dealer directly.


text:
PyBuilder — an easy-to-use build automation tool for Python
PyBuilder is a software build tool written in 100% pure Python, mainly targeting Python applications.
PyBuilder is based on the concept of dependency based programming, but it also comes with a powerful plugin mechanism, allowing the construction of build life cycles similar to those known from other famous (Java) build tools.
PyBuilder is running on the following versions of Python 3.7, 3.8, 3.9, 3.10, 3.11 and PyPy 3.7, 3.8 and 3.9.
See the GitHub Actions Workflow for version specific output.
PyBuilder is available using pip:
$ pip install pybuilder
For development builds use:
$ pip install --pre pybuilder
See the PyPI for more information.
Getting started
PyBuilder emphasizes simplicity. If you want to build a pure Python project and use the recommended directory layout, all you have to do is create a file build.py with the following content:
from pybuilder.core import use_plugin
default_task = "publish"
See the PyBuilder homepage for more details and a list of plugins.
Release Notes
The release notes can be found here. There will also be a git tag with each release. Please note that we do not currently promote tags to GitHub "releases".


text:
The United States has officially declared war against hundreds of Chinese goods and products. As of Friday July 6th, the Trump Administration unveiled a new wave of tariffs against imports from China, sparking major retaliatory measures from the Chinse government in response. Trump boldly imposed tariffs on $34 billion worth of Chinese products, prompting President Xi Jinping to impose an equal amount of tariffs on U.S goods imported into China. President Trump's primary reasoning behind unleashing such restrictive tariffs is regarding China's status as an holistically unfair trading partner and grave threat to the U.S economy.
During the 2016 election and now amid his second year in office, Trump has repeatedly echoed his disdain for past trade deals with China, that have rapidly benefited the Chinese economy at the continual expense of the U.S. For good reason, President Trump has often disparaged the gross failure of previous U.S trade deals gone sour under former Presidential Administrations, including Bill Clinton, George W. Bush, and Barack Obama, each of whom has allowed China unfettered access to U.S goods and an unchecked expanse of the Chinese economy through the WTO. In his Crippled America book, President Trump hit upon many of the most nefarious scandals China has perpetuated in trades with the U.S, stating,
"There are people who wish I wouldn't refer to China as our enemy. But that's exactly what they are," Trump explains. "They have destroyed entire industries by utilizing low-wage workers, cost us tens of thousands of jobs, spied on our businesses, stolen our technology, and have manipulated and devalued their currency, which makes importing our goods more expensive – and sometimes, impossible."
China continues to ramp up heavily restrictive tariffs against U.S goods exported to Asia, producing a trade deficit of $152.2 billion as of this year. According to a recent USA Today report, "for May, the America's deficit in goods with China rose 18.7 percent to $33.2 billion." This, despite the fact that the United States is currently experiencing its lowest trade deficit in decades, following the increasing trend of U.S goods exported to other countries due to the economic policies of the Trump administration.
According to the article, "The Commerce Department said Friday that the May trade deficit — the difference between what America sells and what it buys in foreign markets — fell 6.6 percent to $43.1 billion. It was the smallest imbalance since October 2016." Exports with other nations arose 1.9 percent to a record $215.3 billion, while imports rose up by 0.4 percent to $258.4 billion.
In response to China's $34 million tariff, President Trump proposed future tariffs, each more heavily restrictive and economically devastating than the last. The next proposed set consists of a $16 billion tariff, set to be released in 2 weeks, along with a $200 and $300 billion tariff, equaling more than a whopping $500 billion in restrictions on Chinese products, all in response to China's stubborn retaliation and refusal to drop its restrictive trading methods. According to Fox News, the $34 million tariff is far-reaching, constituting a 25% tax on roughly 818 Chinse goods, including "X-ray machine parts, water boilers, airplane tires, and industrial parts". The $34 million Chinese tariff on U.S imports affects a wide array of products such as "soybeans, electric cars, pork and other products".
The Fox report also reveals a quote from a senior Trump official regarding the administration's stance toward the emerging trade war with China: "We are ready for a trade war. If they want it we are ready to fight it. They need to remember America would win that so-called war, hands-down. Our market is bigger, our consumers richer – we are the global innovator. All we ask is for an even playing field from the Chinese. If they won't agree to that, then they will have to deal with the consequences."
China stands to lose a great deal more in the coming trade war with the U.S, due to the fact that China imports a great deal from the U.S much more than America imports from China. In a fiery campaign speech in Montana on Thursday, President Trump echoed his disgust toward the $462 million trade deficit that the U.S currently has with China, and declared his mission to fix this gross imbalance for the betterment of the American economy, despite what the President described as warnings from a group of unnamed politicians seeking to "leave things the way they are". In response to this warning, Trump proudly declared that, "China is killing us," and that "the U.S has all the cards."
Indeed, the U.S holds the upper-hand in the trade war. With Trump as President, the era of Chinese economic theft has officially ended. This recent tariff clash is only the first step in a long stream of major consequences facing the Chinese economy if they continue to rip the U.S off in lop-sided trade deals. China has been placed on notice, and would be wise not to strive to match the U.S in successive tariffs, which will only cripple their economy at a far greater rate than it would hurt America's.
In addition to the Chinese government launching $34 billion in tariffs against American products, the Chinese Minister of Commerce accused President Trump's methods as, "typical trade bullying", and accused Trump of having "launched the largest trade war in economic history."
If true, then China has an obligation to avoid facing a looming economic recession and end this trade war by submitting to American tariffs, reforming their unfair trade policies, and scrapping any attempts to undermine the unparalleled American economy.