text:
You've finally got that cute new kitten! But what to name the animal? You don't have to settle for 'Fluffy'. Read these steps and tips and give your cat a name that you both will love!
1Determine the cat's gender. You don't want to name your cat Princess and later discover it's a boy. Determining the gender of a newborn cat can be challenging, regardless of where you acquired the kitten. The best way to do so is by judging the relative distance between the anus and the urinary tract opening.Ad
2Look at the cat's markings. If there is a black splotch surrounding their eye, consider a name like Pirate. If your cat is completely black except for her white paws, consider the traditional but cute name, "Boots".
3Pick a name that everyone in the family will like. If this will be a family cat, make sure to consider the kid's choices too. If the children want to name the kitten after himself/herself, you might not want to take him/her up on his suggestion. But if your sister or brother thinks of "Peanuts", for example, that's not a bad name. Have everyone make a list of three names they think are good options, then share the lists and come up with a name everyone will like.
4Pick a name that suits the cat's personality. If the cat is always hiding, maybe he could be "Bashful". Or if your kitten has a weird habit of crying during thunderstorms, but only when lightning crashes, you could call him/her "Lightning".
5Consider a historical, mythological, fictional or famous name. There are many interesting and unique names available in these categories.
6Make a list of possible names. Say them that you have listed and see how the cat responds. Once you've found one that you like best, stick to it to avoid confusion.
7Reinforce your choice. Pet and spend time with the cat while saying its name over and over.Ad
We could really use your help!
credit and credit-worthiness?
- A different way to name your furry friend is to get word from other languages, then change the way they sound. I named my cat Karena, which I got from Kirena, the Japanese word for beautiful. Just go to google translate, and try out some words. Note that some words have alternate translations.
- Try to choose a name that starts with an ear-catching, recognizable sound, rather than a vowel. This makes it easier for the cat to pick out his/her name among the "blah-blah-blah" of human speech. A cat called Uhura might take much longer to recognize her name as referring to her than any other cat would, and might not start responding to it right away.
- If you're getting two cats at the same time, don't name them "Pretty" and "Litty". As cute as that may seem at first, it will be confusing for: (1) your cats. They won't know who they are! (2) Your family. When you say "Please let Litty outside", your daughter might end up letting Pretty out! (3) Yourself. You will mix your cats up. So end the confusion, and name them different names that don't sound related to each other.
- Cats respond better to names with a long "ee-e" sound, so it may be a good idea to name your cat "Spunky" instead of "Whiskers".
- Avoid giving your cat a 'people name.' If you're hanging out with Sam, and you call your cat, who will know who you're talking to if your cat's name is Sam? If you insist on a name that people use, make it a unusual and uncommon name, like Tabitha.
- If you've lost all hope, and it's a boy's name you need, call it Felix! Felix means "lucky" in Latin, so maybe some luck will rub off on him.
- Ask friends, family, or even neighbors for a name! Body markings are also a good way to name a cat.
- Try to give your cat a name with two or three syllables, because you will, believe it or not, end up shortening your kitty's name. If you name him "Sandwich", you will start calling him "San", and that's not a great name.
- If your cat already had a name when you got it, continue using it.
- If you're set on finding a unique name, try searching through the following website: Behindthename.com, which is filled with uncommon and common names from all different cultures. Granted, some of these names will be more cat-like than others, but keep looking because eventually you will find one.
- Don't change its name too often. Alfie to Smudge is fine, but Massie to Midnight to Sooty to Spooky! The poor puss!
- Before you even name your cat, make sure he or she comes from a reliable source with a well-established medical history. This includes knowing about any past illnesses and medications. Is the cat up-to-date with vaccinations and dewormings? What about FIV/FeLV test results? Does it have a microchip?
Categories: Getting a Cat
Recent edits by: Anna, GP_116661431637714329812, Rock20000
In other languages:
Español: Cómo ponerle nombre a tu gato
Thanks to all authors for creating a page that has been read 40,992 times.


The SWING Project (Smart WIng for New Generation UAV for Civilian Use) aims to study composite materials, composite material processes, composite structure design methods, Actuation Systems and Health Monitoring Methodologies to be applied for an civil UAV aircraft.
Italsystem in involved in this project (founded by MISE) with other major national companies, in order to improve the pre-competitive advantage of the Italian aerospace industry in the growing market of remote-controlled aircraft (UAV).
The objectives of this project are:
1. Make demonstrator of a UAV swing in composite material and test it statically. The target is to reduce the weight at least of 10% respect the usage of classic material and to reduce the cost at least of 5%.
The main challenge is the availability of a composite materials database to use in design: the qualification process of the material is a technological barrier if you want to certify an aeronautical product. The very high certification cost is a limit and usually only the major aerospace OEMs can face it. One goal of the project is to qualify at least two materials.
2. Develop an Electro-Mechanical Actuator (EMA) and related control unit (ECU) to integrate in the wing. The target is to implement a highly critical actuation system (DAL A, a failure on 10-9 FH).
ItalSystem was selected for the design and development of the ECU, due to its twenty-year experience in the design and certification of avionic and embedded systems.
Project progress 80%
Start typing and press Enter to search


text:
a1 Brock University, St Catharines, Canada
The relation between women's timing of menarche and father absence was examined in a national probability sample of Great Britain (NATSAL 2000; N>5000). Current body mass index (as a proxy for childhood weight) was examined as a potential mediator of this relationship, along with the potential moderating role that siblings (e.g. number of older brothers) had on this relationship. As in a number of previous studies, an absent father (but not an absent mother) during childhood predicted an earlier age of puberty (i.e. an early menarche). There was no evidence that weight mediated this relationship or that siblings moderated it. Both a lower body mass index and more siblings (e.g. more younger sisters and brothers) were independent predictors of a later timing of puberty. The results confirm that certain psychosocial factors (i.e. father absence; presence of siblings) may affect the timing of sexual maturation in adolescent girls.

source: openbmb/Ultra-FineWeb


Files with shd suffix are often would as part of the Microsoft Windows operating system. Used to stores shadow spooler, job settings.
There are 2 other file types using
the SHD file extension!
empty icon.shd - ArcView shadeset symbol file
empty icon.shd - Constructor shadow file
Detailed description
Software that open shd file
Add comment
Bookmark & share this page with others:
SHD file extension - Microsoft Windows shadow spooler file
What is shd file? How to open shd files?
File type specification:
System file type icon System file type
shd file icon: shd filetype icon
File extension shd is used for the Microsoft Windows shadow spooler files. The print job's spooled data is contained in a spool file. The shadow file includes some additional information used by the spooler, like job settings.
For each print job there are two spool files generated by the Windows® NT/2000 spooler. One file with the .SHD extension for job settings, and one with the .SPL extension for the drawing commands.
The default software associated to open shd file:
Microsoft Windows icon
Microsoft Corporation logoMicrosoft Windows Microsoft Windows software
Company or developer:
Microsoft Corporation
A family of operating systems developed by the Microsoft Corp. The first Windows was released in 1985 as a GUI add-on to MS-DOS. MS-DOS based Windows versions were developed to 2000, when was released the last version called Windows ME. Windows based on NT core started in 1993. Windows NT family are developed to these days, the latest version is called Windows 10.
Help how to open:
It is unlikely that you can open .shd files directly, it's not their purposes.
How to convert:
Unfortunately, we do not know about any possible way to convert .shd files, it may not even be possible.
List of recommended software applications associated to the .shd file extension
Recommended software programs are sorted by OS platform (Windows, macOS, Linux, iOS, Android etc.)
and possible program actions that can be done with the file: like open shd file, edit shd file, convert shd file, view shd file, play shd file etc. (if exist software for corresponding action in File-Extensions.org's database).
Unspecified and all other actions for computer programs working with shd file - Microsoft Windows shadow spooler file
Click on the software link for more information about Microsoft Windows. Microsoft Windows uses shd file type for its internal purposes and/or also by different way than common edit or open file actions (eg. to install/execute/support an application itself, to store application or user data, configure program etc.).
Microsoft Windows:
Previous file extension
SHA file extension
File-Extensions.org > System file types
Next file extension
file extension SHLB

Follow us!
Enter any file extension without dot (e.g. pdf)
Search for file extension details and associated application(s)
RSS feed


text:
Multi-Species Grassland Sward tool
What is a multi-species grassland sward?
The most common definition of a multi-species seed mixture is one that contains two or more species (not including perennial rye grass or white clover). There is nothing new about this - a traditional hay meadow can often have more than 30 species in it. However, with intensification the number of species in many fields has fallen, as we have often become more reliant on perennial ryegrass which is often associated with heavy applications of fertiliser. Recent research has shown numerous benefits of increasing the plant diversity in our grazed and mown pastures.
What does the FAS online tool do?
All fields are unique, this tool lets you input attributes of your field. The tool will then provide a list of species to consider including in a mixture . The tool will provide a brief description of the species and their attributes and the benefits they can bring you and your wildlife. The final mix will depend on your objectives for the field.
What are the agronomic benefits of multi-species swards?
Chiefly multi-species swards can be more resilient, which is of increasing importance with a changing climate. For example, species with deeper roots can be beneficial during a time of unexpected drought.
There have been trials which demonstrate a yield increase from their use. Moreover, trials show less need for bagged fertiliser which is a boost for farm profitability. The Smart Grass Project, led by University College Dublin found that 'compared to perennial ryegrass, multispecies swards produced the same quantity of herbage Dry Matter with 45% less fertiliser nitrogen.
The tool will explain other useful properties for example nitrogen fixing capability or tolerance to various environmental factors.
What are the biodiversity benefits of multi-species swards?
By increasing the diversity of the plants in our fields we can increase the benefits for many kinds of wildlife, including insects. Insects may not be glamorous, but their numbers are what sustains many more charismatic kinds of farmland wildlife.
What are the benefits to your Farm or Crofts carbon footprint?
In some cases, using multi-species swards will allow you to reduce the amount of bagged fertiliser used. This will reduce the carbon footprint by reducing emissions from the field and from fertiliser manufacture and transportation.
Using the online tool
We would like to hear how you get on using the online tool for your farm or croft. Please send feedback to _EMAIL_. Not sure if it's worth the effort? Be inspired by two farmers stories of using multi species swards on their farms.
Multi-species Sward Grassland podcast
Multi-species Sward Grassland video
Sign up to the FAS newsletter
Receive updates on news, events and publications from Scotland's Farm Advisory Service

source: m-a-p/FineFineWeb


How do I set up and use a TTY/TDD device with my Nokia phone?
In addition to your phone, you will need the following for TTY/TDD communication:
 - A TTY/TDD device that is cellular ready or cellular compatible.
 - A cable for connecting the TTY/TDD to your phone, usually supplied by the manufacturer of the TTY/TDD device.
Set up the TTY/TDD profile
You can connect your phone directly to the TTY/TDD device. In order for your phone to recognize the TTY/TDD, you will need to set up the TTY/TDD profile.
Important: Some manufacturers of TTY/TDD devices suggest that the phone be least 18 inches from the TTY/TDD device. When connecting to any other device, read its user guide or contact its manufacturer for detailed instructions and safety information.
 1. Connect one end of the cable to the TTY/TDD device.
 2. Insert the other end of the cable into the headset jack on the bottom of the phone.
 3. At the Start screen, select Menu > Settings > Enhancement settings > TTY/TDD > Use TTY > Yes and press Select.
 1. At the Start screen, enter the number and press the Send key.
 2. When the receiving party answers, begin typing your conversation on the TTY/TDD.
 3. Press the End key to end the call.
Receive a call
 1. Make sure the TTY/TDD device is connected to your phone.
 2. Press the Send key to answer the call, and type your responses on the TTY/TDD.
 3. Press the End key to end the call.
Make a call


Distributed tuning job count
 Type: int
 Default value: 0
 Minimum value: 0
 Maximum value: MAXINT
Enables distributed parallel tuning, which can significantly increase the performance of the tuning tool. A value of n causes the tuning tool to distribute tuning work among n parallel jobs. These jobs are distributed among a set of machines. Use the WorkerPool parameter to provide a distributed worker cluster.
Note that distributed tuning is most effective when the worker machines have similar performance. Distributed tuning doesn't attempt to normalize performance by server, so it can incorrectly attribute a boost in performance to a parameter change when the associated setting is tried on a worker that is significantly faster than the others.
One important note about integer-valued parameters: while the maximum value that can be stored in a signed integer is $2^{31}-1$, we use a MAXINT value of 2,000,000,000. Attempting to set an integer parameter to a value larger than this maximum will produce an error.
For examples of how to query or modify parameter values from our different APIs, refer to our Parameter Examples.


31
\$\begingroup\$
I recently learned from a comment by MathOverflow user pregunton that it is possible to enumerate all rational numbers using iterated maps of the form \$f(x) = x+1\$ or \$\displaystyle g(x) = -\frac 1x\$, starting from \$0\$.
For example, $$0 \overset{f}{\mapsto} 1 \overset{f}{\mapsto} 2 \overset{g}{\mapsto} -\frac12 \overset{f}{\mapsto} \frac12 \overset{f}{\mapsto} \frac 32 \overset{g}{\mapsto} -\frac23 \overset{f}{\mapsto} \frac 13.$$
That is, $$ \frac13 = f(g(f(f(g(f(f(0))))))) = f\circ g\circ f\circ f\circ g\circ f\circ f(0).$$ This is an example of a shortest path of iterated maps to reach \$\frac13\$; every path from \$0\$ to \$\frac13\$ requires at least seven steps.
Challenge
Your challenge is to take two integers, n and d, and return a string of f's and g's that represents a shortest path of iterated maps from \$0\$ to \$\displaystyle\frac nd\$.
This is a , so shortest code wins.
Example
 n | d | sequence of maps
----+----+-----------------
 1 | 3 | fgffgff
 3 | 1 | fff
 8 | 2 | ffff
 1 | -3 | gfff
 2 | 3 | fgfff
 0 | 9 | [empty string]
 1 | 1 | f
 2 | 1 | ff
 1 | -2 | gff
 -1 | -2 | fgff
 6 | 4 | ffgff
 -2 | 3 | gffgff
 8 | 9 | fgfffffffff
\$\endgroup\$
7
 - 2
 \$\begingroup\$ Somewhat related. \$\endgroup\$
 – alephalpha
 Commented Jan 10, 2022 at 1:18
 - 2
 \$\begingroup\$ May we return output reversed, i.e. in the order of function application? \$\endgroup\$
 – chunes
 Commented Jan 10, 2022 at 1:26
 - 2
 \$\begingroup\$ May we take input as a rational number \$\frac nd\$, if our language supports them? \$\endgroup\$
 – att
 Commented Jan 10, 2022 at 1:52
 - 1
 \$\begingroup\$ @att but then, we should only allow reduced fractions input for other answers, imo. Since most languages only support 1/4 but not 2/8. \$\endgroup\$
 – tsh
 Commented Jan 10, 2022 at 2:27
 - 2
 \$\begingroup\$ For anyone interested: This can also be visualized and demonstrated in a classroom, using two ropes that get twisted together. A nice introduction to "Conway's Rational Tangles" is here: geometer.org/mathcircles/tangle.pdf \$\endgroup\$
 – mathmandan
 Commented Jan 12, 2022 at 18:38
17 Answers 17
13
\$\begingroup\$
Python, 54 bytes (-1 @Jonathan Allan, -1 me)
f=lambda n,d:n and'gf'[p:=n*d>0]+f(p*n-d,[n,d][p])or''
Attempt This Online!
Old Python, 56 bytes (@tsh)
f=lambda n,d:n*d<0and'g'+f(-d,n)or n and'f'+f(n-d,d)or''
Attempt This Online!
Old Python, 57 bytes
f=lambda n,d:n//d<0and'g'+f(-d,n)or n and'f'+f(n-d,d)or''
Attempt This Online!
Not 100% sure this is correct. Works on all test cases, though. It's kind of a Euclidean algorithm with overshoot.
Towards a proof of correctness
The group of transformations generated by f and g is called the Modular group. There is quite a bit of interesting theory but the one thing that seems relevant to us is that gg and gfgfgf are a "complete set of relations" and that the modular group is the "free product of the cyclic groups generated by g and h:=gf". This means that any element of the modular group can be uniquely written as g's alternating with either h or hh. Transforming back to f's and g's gh becomes f and ghh becomes fgf, so except for the left end which can be h or hh, i.e. gf or gfgf all valid representations are exactly the words with g's separated by at least 2 f's. And we can check that the algorithm indeed produces such words.
So, are we done? I'm not sure. What's missing is that I don't know how exactly the rationals and the modular group are related. It may well be that two distinct group elements move 0 to the same rational which would send us back quite a bit if not all the way to square 1.
\$\endgroup\$
6
 - 1
 \$\begingroup\$ Maybe n//d<0 -> n*d<0 \$\endgroup\$
 – tsh
 Commented Jan 10, 2022 at 1:42
 - 1
 \$\begingroup\$ @alephalpha I can see how this shows that it will always find a representation, but does it also guarantee that it's a shortest representation? \$\endgroup\$
 – loopy walt
 Commented Jan 10, 2022 at 2:21
 - 1
 \$\begingroup\$ @loopywalt Sorry, I didn't see the word "shortest" in the challenge. \$\endgroup\$
 – alephalpha
 Commented Jan 10, 2022 at 2:24
 - 1
 \$\begingroup\$ @loopywalt Although I don't know how it can be proved. But it seems that no counterexample exists for fractions may reached within 20 operators. \$\endgroup\$
 – tsh
 Commented Jan 10, 2022 at 6:54
 - \$\begingroup\$ @loopywalt Try it online! \$\endgroup\$
 – tsh
 Commented Jan 10, 2022 at 6:55
7
\$\begingroup\$
JavaScript (Node.js), 53 bytes
f=(n,d,p='',...e)=>n?f(...e,-d,n,p+'g',n-d,d,p+'f'):p
Try it online!
Stackoverflow on last testcase.
\$\endgroup\$
6
\$\begingroup\$
Ruby, 45 bytes
f=->n,d{n==0?"":n/d<0??g+f[-d,n]:?f+f[n-d,d]}
Try it online!
Use as f[n,d]
basically a port of loopy walt's python answer
\$\endgroup\$
5
\$\begingroup\$
Nibbles, 15.5 bytes
'.~$@?*@$~-@__*~@$$='$*@$"fg "
That's 31 nibbles at half a byte each in the binary form.
This is based on the python answer although I found an iterative solution shorter. It felt kind of awkward still though.
'. ~$@ Iterate while unique, starting with the tuple $ @ (which is the input arguments)
 ? *@$ if product of values > 0
 ~-@_ _ then ($-@, @) since true clause has condition's value put in $ (unused here though)
 *~@ $ else (-1*@, $)
 $ the second value of the tuple from the if (tuple's aren't returned as first class things but splat into the context and must be reconstructed, normally very concise but here a bit awkward
The above code computes the sequences of numerators and denominators, now we just need to convert it to f and g. Note that it has a few extra terms since it didn't stop being unique until after the solution was found. Luckily n*d is 0 in that case so we can use that to map it to a space. The below code is implicitly done via a map.
= '$ *@$ subscript using signum of n*d
 "fg " into this list (0 is


text:
Local structure and dynamics of lithium garnet ionic conductors: tetragonal and cubic Li7La3Zr2O7†
To better understand the ionic conduction in lithium garnet oxides, we employed molecular dynamics simulation to investigate the local structure and dynamics of a model material Li7La3Zr2O12 and origin of its tetragonal to cubic phase transition. Our simulations were able to produce lattice parameter, neutron scattering, and conductivity data close to those gathered using experimental techniques, which allows us to study atomic-scale details of this complex material. First, it was found that lithium atoms primarily perform oscillation and "structured diffusion" dynamics in the tetragonal and cubic phase, respectively. Second, we believe that the tetragonal to cubic phase transition is an entropy-driven one that involves redistribution of lithium atoms among all tetrahedral sites. The transition is likely to initiate on the tetrahedral 8a site but needs the cooperation of neighboring octahedral 32g Li as relay atoms. Finally, it was found that a few types of lithium clusters dominate in both phases of Li7La3Zr2O12, which leads to highly correlated motion of lithium atoms. The local symmetry of these clusters dictates a "center-pass" mechanism as lithium goes through the bottleneck.


text:
January 21, 2014
Researcher earns grant to study genetics of aging
A research scientist at the Southern Illinois University School of Medicine in Springfield has been awarded a five-year federal grant from the National Institutes Aging, a division of the National Institutes of Health to study a potential aging gene. The total budget for the grant is $687,555.
Dr. Rong Yuan, Ph.D., assistant professor of geriatric research in the Department of Internal Medicine, is the principal investigator for the project.
The study will use mice to test a potential aging gene, nuclear receptor interacting protein 1 (Nrip1), and to verify that depressing it can significantly reduce fat tissue, increase insulin sensitivity and enhance resistance to high-fat-diet-induced obesity and diabetes. The results of this research will help scientists understand how genetic metabolic diseases are related to aging.
This is the second NIA grant awarded for Yuan's research, which is focused on aging and longevity.
Yuan joined SIU's faculty in 2012. He received his medical degree and doctorate from Shanghai Second Medical University in China (2000), a master's of surgery (1997) and bachelor's in medicine (1993), from Chinese Southeast University in Nanjing, China.


text:
High humidity in Cuba and high temperatures are causing a pleasant weather at times, but also and partly tropical hot and humid. It is warm to hot all year round and invites to bathe at average water temperatures of 27 degrees. Dued to the lesser rain the best time for traveling is from January to May. Most precipitation decrease from June to November.
› Overview: Climate in Cuba
› Duration of daylight and sunshine in Cuba
hours of sunshine per day rainy days per month Precipitation in mm/day Relative humidity in % Water temperature Absolute humidity in g/m³ (approx.)
The most important cities in the region of La Habana
La Habana is a part of Cuba and has an east-west extension of about 00 km. From north to south it is approximately 20 km. The biggest cities are Havana and Arroyo Naranjo. The local time is now Monday, 9:16 am.
Data basis: German Weather Service, individual values averaged and supplemented by own elements.


Adopted daughter needs a new passport but how do I go about applying for it?
Passport Frequently Asked Questions and AnswersQuestion: My wife and I were both born in the U.S. and are natural born citizens. We adopted our daughter from Canada in 2004 and she is now 8 years old. Her U.S. Passport expired on July 20, 2009. We do not have her Certificate of Citizenship but we do have her birth certificate from Canada that shows us as her parents. Also, we have the Canadian adoption certificate that also identifies her as being our adopted daughter. Will this be adequate documentation to renew her passport?
Answer: Being that she obtains a previously-issued passport, she can use that as evidence to prove her U.S. citizenship. Also, you will have to present a document stating your relationship with your adopted daughter. In this case, an adoption decree with the names of the adopting parents is acceptable. As long as a translation is present. A foreign document is acceptable with the passport application. Other necessary documents will be a copy of the parent's identification documentations and a current or recent passport photo.
Here is a list of passport application acceptance facilities.
Here are some facts about minor's passports:
 - To qualify for a minor's passport the child must be under the age of 16.
 - The passport will have a validity term of 5 years.
 - It usually requires consent of both parents. In some cases this is not the case.
 - Can be renew by appearing in person.
 - Use Form DS-11 application.


IFD Principles
 1. Facilitate dermatological education and training at all health care levels in disadvantaged communities.
 2. Continue to support the RDTC in Moshi, Tanzania, and develop other means of achieving this mission.
 3. Improve the quality of care in dermatology and venereology in resource poor countries.
 4. Develop a cadre of experienced dermato-venereologists and health workers willing to serve on a short or long-term basis as visiting teachers, lecturers, advisers, or practitioners of dermatology; and to provide mentorship for those wishing to develop such a role.
 5. Document the needs of patients with dermatological disease in such areas and the current status and future requirements for trained manpower and resources.
 6. Develop rational treatment protocols and procedures which can be used widely in the developing world.
 7. Promulgate collaborative programmes between institutions from developing and developed countries of the world, non-governmental organisations and industry.
 8. Encourage and carry out appropriate research designed to improve the care of patients with dermatological disease.
 9. Promote dermato-venereological education and communication needs in developing countries at national and international meetings.
 10. Contribute to other programmes whose aim is to help patients with dermatovenereological diseases in resource poor settings.


text:
VectAlign (a.k.a. VectorDrawableAlign) is a developer's tool which automagically aligns two
VectorDrawable "pathData" strings (or SVG images) in order to allow morphing animations between them using an
AnimatedVectorDrawable. VectAlign can be used from command line or through a simple GUI (which includes morphing preview and export functionalities).
Here are some examples of what you can do with the help of VectAlign (take a look at the sample project for a live demo):
As stated in the official docs two paths must be compatible so that they can be morphed, which means that the paths must be composed by the same list of SVG commands (in terms of length and type of commands).
Example of compatible paths:
M 10,10 L 40,10 L 40,40 L 10,40 Z M 25,10 L 40,25 L 25,40 L 10,25 Z
Example of incompatible paths:
M 10,10 L 40,10 L 40,40 L 10,40 Z M 30,30 L 10,10 C 14,25 20,30 10,49 L 3,3 L 0,8 Z
AnimatedVectorDrawable containing morphing animations which use incompatible paths leads to runtime exceptions like the following:
android.view.InflateException: Binary XML file line #3 Can't morph from M 10,10 L 40,10 L 40,40 L 10,40 Z to M 30,30 L 10,10 C 14,25 20,30 10,49 L 3,3 L 0,8 Z at android.animation.AnimatorInflater.setupAnimatorForPath(AnimatorInflater.java:337) at android.animation.AnimatorInflater.parseAnimatorFromTypeArray(AnimatorInflater.java:283) ...
When the morphing involves only simple shapes is averagely simple to fix the paths by manually injecting or duplicating commands here and there; but when the complexity of the shapes grows, this task becomes quite tedious to do by hand (sometimes almost impossible). VectAlign automagically aligns any pair of SVG paths (regardless of their complexity), creating a new pair of morphable paths without altering the original images.
You can download the latest version of the pre-compiled jar from here.
added different morphing strategies (BASE, LINEAR, SUB_BASE, SUB_LINEAR)
added GUI (view, load and edit SVG/pathData, morphing preview)
added export function (automatically creates all the Android XML resources required)
first public release of VectAlign (command line only)
Run VectAlign from command line by passing the two paths that you want to use in your morphing animation; you can pass these sequences by typing them directly or by referring a file (a simple txt file or even a standard SVG image); simply pass no params if you want to start the GUI:
Examples of execution
Run VectAlign in GUI mode:
java -jar vectalign.jar
java -jar vectalign.jar --gui
Run VectAlign in command line mode:
java -jar vectalign.jar --start "M 10,20..." --end "M 30,30..."
java -jar vectalign.jar --start image1.svg --end image2.svg
The result represents the aligned (and compatible) version of the input paths/images: these new paths can be finally morphed using an
AnimatedVectorDrawable without incurring in the "Can't morph from X to Y" exceptions:
Example of output
-------------------- ALIGNMENT RESULT -------------------- # new START sequence: M 48.0,54.0 L 31.0,42.0 L 15.0,54.0 L 21.0,35.0 L 6.0,23.0 L 25.0,23.0 L 25.0,23.0 L 25.0,23.0 L 25.0,23.0 L 32.0,4.0 L 40.0,23.0 L 58.0,23.0 L 42.0,35.0 L 48.0,54.0 # new END sequence: M 48.0,54.0 L 48.0,54.0 L 48.0,54.0 L 48.0,54.0 L 31.0,54.0 L 15.0,54.0 L 10.0,35.0 L 6.0,23.0 L 25.0,10.0 L 32.0,4.0 L 40.0,10.0 L 58.0,23.0 L 54.0,35.0 L 48.0,54.0
usage: java -jar vectalign.jar [-g] [-s <"string"|txt_file|svg_file>] [-e <"string"|txt_file|svg_file>] [-m <BASE|LINEAR|SUB_BASE|SUB_LINEAR>] [-v] [-h] Align two VectorDrawable paths in order to allow morphing animations between them. -g,--gui Start VectAlign GUI -s,--start <"string"|txt_file|svg_file> Starting VectorDrawable path ("string", txt file or SVG file) -e,--end <"string"|txt_file|svg_file> Ending VectorDrawable path ("string", txt file or SVG file) -m,--mode <BASE|LINEAR|SUB_BASE|SUB_LINEAR> Aligning technique (default is BASE) -v,--version Print the version of the application -h,--help
VectAlign is based on an adaptation of the Needleman-Wunsch algorithm, which is used in bioinformatics to align protein or nucleotide sequences.
fillColorattribute in your
VectorDrawableand use the
strokeColoronly. This because filled surfaces are more likely to be affected by artifacts than the stroke-only ones and usually provide less gorgeous morphing effects.
Copyright 2015, Stefano Bonetta. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at _URL_ Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.


Printout Header
LEX Online Manual Content
Container Class Evaluation
Lex shows the hierarchy of the current connected LDAP directory in the tree view panel on the left side in the LEX main window, so that a fast and easy navigation is possible. To show this hierarchy, LEX reads all the container objects from the server, so that these objects can be used to build up the navigation tree.
The probem is: LDAP allows all types of objects to have child objects. So if you want to build up the current LDAP tree, normall you have to check literally all LDAP objects for children. This would lead to a sluggish application performance when you want to browse through a large tree hierarchy. Or if you would first pre-cache the tree structure, it would last very long to achieve this.
Therefore LEX has a list for each type of directory server with the names of the typical container object classes. There are different lists for the following environments:
 - OpenLDAP
 - Microsoft Active Directory (this includes AD LDS and ADAM)
 - Novell eDirectory
 - Sun iPlanet (this includes SUN Directory Servers and NetScape Directory Servers)
 - Siemens DirX
 - Generic LDAP (all other LDAP servers)
This classification was made to reflect the fact that all types of directories tend to have their typical structural elements. In all these lists, the object class 'organizationalUnit' will be in the list for sure. Other classes are not so obvious to be potential container classes with child objects.
If LEX loads the directory tree hierarchy, the list of container classes will be converted to the appropriate LDAP filter. This filter is used then to retrieve all the object from the server which are needed to built up the tree view.
The list of the container classes can be configured with the menu option Tools - Options - Container Classes. You see here different buttons for the regarding LDAP server environments where you can configure the appropriate list of container classes:
Configuring the container classes
Normally you do not have to work hard on these lists because a lot of the classes usually used as container classes are predefined as default values here.
Maybe you have to configure new classes to this lists if you encounter the following problem: You don't see an object in the tree view hierarchy as a container, even if it is shown in the object list when you look at the parent container:
Domain Controllers don't appaear in the tree
If you change the object list scope to 'deeptree', so that you see the entire subtree under the parent object, you may notice that this object have child objects - although it was not shown as a container.
Child objects visible in deeptree scope
Then you have to check what object class the regarding object has. Add this object class to the appropriate container class list under Tools - Options - Container Classes. If you don't know to which type of directory your current LDAP server belongs, you can check this in the option Connection - Connection Info.
Pseudo Container Classes
There might be object classes in a directory environment which have a large number of real objects existing for this class, whereas these objects have very seldom child objects below them. An example of such an object class are the 'computer' objects in an Active Directory environment.
In order to be able to show all hierarchical structures in the tree view panel in a very fast way, LEX works with so-called Pseudo Container Classes. These container classes are handles as follows:
 - Container Class objects are shown in the tree view panel ONLY if they have actually child objects:
 Pseudo Container Classes
 - If the entire tree hierarchy has to be cached (first connection or reload operation on the entire tree), LEX does not search for Pseudo Container Class objects. This is because there may be a huge count of these objects in the current directory - so this would last far too long for building up a tree with these information included. Even if we would search for all these - this would result potentially in a very large number of container objects in the tree view - although most of such objects doesn't have child objects.
 So for the caching of the entire tree hierarchy, no Pseudo Container Classes are used. Only the normal container class objects are evaluated.
 - If you just reload the 'tree environment' of the currently selected node, then only the node's parent, siblings and child nodes are refeshed. This is done by just pressing F5 or using the ViewRefresh option. Because this is probably a smaller amount of container objects to read from the server, LEX requests the normal container classes together with the Pseudo Container Classes.
The list of the pseudo container classes can be configured with the menu option Tools - Options - Container Classes. You see here different buttons for te regarding LDAP server environments where you can configure the approprate list of pseudo container classes:
Configuring the container classes


text:
Emily Riehl: Arrow induction and the dependent Yoneda lemma
Time: Tue 2022-01-11 15.15 - 17.00
Location: Zoom, meeting ID: _PHONE_
Video link: _URL_
Participating: Emily Riehl (Johns Hopkins University)
Abstract: This talk aims to convey why I am excited about the potential of some variant of homotopy type theory as a foundation for higher category theory. This will be illustrated by a case study involving the Yoneda lemma for \((\infty,1)\)-categories. In homotopy type theory, the contractibility of the based path space is expressed by the principle of "path induction," which says that identity types are freely generated by reflexivity terms. By an analogy in which arrows in an \((\infty,1)\)-category are thought of as directed paths, there is an analogous principle of "arrow induction," which says that hom types are freely generated by identity arrows. We explain how this unravels to a "dependent" generalization of the Yoneda lemma. This involves joint work with Dominic Verity and Mike Shulman.


text:
Mbarara to Kasese distance, location, road map and direction
Mbarara is located in Uganda
at the longitude of 30.65 and latitude of -0.6. Kasese is located in Uganda
at the longitude of 30.01 and latitude of 0.22.
Distance between Mbarara and Kasese
The total straight line distance between Mbarara and Kasese is 115 KM
(kilometers) and 696.11 meters. The miles based distance from Mbarara to Kasese is 71.9
miles. This is a straight line distance and so most of the time the actual travel distance between Mbarara and Kasese may be higher or vary due to curvature of the road.
Mbarara To Kasese travel time
Mbarara is located around 115 KM away from Kasese so if you travel at the consistant speed of 50 KM per hour you can reach Kasese in 2.31 hours. Your Kasese travel time may vary due to your bus speed, train speed or depending upon the vehicle you use.
Mbarara To Kasese road map
Mbarara is located nearly south
side to Kasese. The given south direction from Mbarara is only approximate. The given google map shows the direction in which the blue color line indicates road connectivity to Kasese. In the travel map towards Kasese you may find enroute hotels, tourist spots, picnic spots, petrol pumps and various religious places. The given google map is not comfortable to view all the places as per your expectation then to view street maps, local places see our detailed map here.
Mbarara To Kasese driving direction
The following diriving direction guides you to reach Kasese from Mbarara. Our straight line distance may vary from google distance.
Travel Distance from Mbarara
This website gives the travel information and distance for all the cities in the globe. For example if you have any queries like what is the distance between Chennai and Bangalore? and How far is Chennai from Bangalore? It will answer those queires aslo. Some popular travel routes and their links are given here :-
Travelers and visitors are welcome to write more travel information about Mbarara and Kasese.
- It can be your previous travel experience between Mbarara and Kasese.
- Available transport routes to reach Kasese like train routes, bus routes, air routes and cruise routes.
- Tourist places or any other important places on the routes between Mbarara and Kasese.
- Hotels, restaurant information on the way to Kasese.
- Photos related to Mbarara and Kasese or en route.
- Travel queries and other relavent information related to this page.


Rename Indexes
THIS TOPIC APPLIES TO: yesSQL Server (starting with 2016)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse
This topic describes how to rename an index in SQL Server 2016 by using SQL Server Management Studio or Transact-SQL. Renaming an index replaces the current index name with the new name that you provide. The specified name must be unique within the table or view. For example, two tables can have an index named XPK_1, but the same table cannot have two indexes named XPK_1. You cannot create an index with the same name as an existing disabled index. Renaming an index does not cause the index to be rebuilt.
In This Topic
Before You Begin
Limitations and Restrictions
When you create a PRIMARY KEY or UNIQUE constraint on a table, an index with the same name as the constraint is automatically created for the table. Because index names must be unique within the table, you cannot create or rename an index to have the same name as an existing PRIMARY KEY or UNIQUE constraint on the table.
Security
Permissions
Requires ALTER permission on the index.
Using SQL Server Management Studio
To rename an index by using the Table Designer
 1. In Object Explorer, click the plus sign to expand the database that contains the table on which you want to rename an index.
 2. Click the plus sign to expand the Tables folder.
 3. Right-click the table on which you want to rename an index and select Design.
 4. On the Table Designer menu, click Indexes/Keys.
 5. Select the index you want to rename in the Selected Primary/Unique Key or Index text box.
 6. In the grid, click Name and type a new name into the text box.
 7. Click Close.
 8. On the File menu, click Savetable_name.
To rename an index by using Object Explorer
 1. In Object Explorer, click the plus sign to expand the database that contains the table on which you want to rename an index.
 2. Click the plus sign to expand the Tables folder.
 3. Click the plus sign to expand the table on which you want to rename an index.
 4. Click the plus sign to expand the Indexes folder.
 5. Right-click the index you want to rename and select Rename.
 6. Type the index's new name and press Enter.
Using Transact-SQL
To rename an index
 1. In Object Explorer, connect to an instance of Database Engine.
 2. On the Standard bar, click New Query.
 3. Copy and paste the following example into the query window and click Execute.
 USE AdventureWorks2012;
 GO
 --Renames the IX_ProductVendor_VendorID index on the Purchasing.ProductVendor table to IX_VendorID.

 EXEC sp_rename N'Purchasing.ProductVendor.IX_ProductVendor_VendorID', N'IX_VendorID', N'INDEX';
 GO

For more information, see sp_rename (Transact-SQL).


Definition of sky wave in English:
sky wave
 - A radio wave reflected from the ionosphere.
 - 'Which of the following layers of the Ionosphere has no effect on sky wave propagation during the hours of darkness?'
 - 'At intermediate ranges, the sky wave will be coming in at an appreciable angle and it will be less effected by mountains.'
 - 'Note that some absorption of sky waves may also occur at lower atmospheric levels because of the presence of water and water vapor.'
 - 'As well as the ground wave, which propagates at all times, at night a sky wave is also propagated via the ionosphere.'
 - 'It should be mentioned that neither surface waves nor sky waves are possible in space or on airless bodies such as the Moon.'
 - 'The AS2259, near vertical incident sky wave, worked sometimes, but a doublet antenna 10 feet off the ground nearly always worked.'
 - 'Using sky waves it is thus impossible to work on frequencies too away below or above the MUF.'
 - 'HF has excellent sky wave and good surface wave performance and is good for long range communications, though it is subject to interference.'
 - 'The ground wave is much stronger than the sky wave so softer wave pockets can be found at the closer distances.'
 - 'Regional over the horizon communications are possible through a sky wave technique called tropospheric scatter (troposcatter or just tropo).'
 - 'These radio signals are termed sky waves for obvious reason.'
 - 'Fading can also occur on long circuits when sky wave signals take multiple hops to reach the receiver.'
 - 'The most important factor that effects the propagation of sky waves is the ionosphere.'


Dogs kill swans more often than swans kill dogs, experts say
Interfering with swans during nesting season is a criminal offence
Swans are fiercely protective parents and they see a dog as a predator
Every year there are several reports of swans being killed by dogs - but it is virtually unheard of for a swan to kill a dog, according to Birdwatch Ireland.
In the aftermath of an incident in Bushy Park on Saturday, in which a dog was killed by a swan, experts have moved to reassure the public that not only are such attacks highly improbable, they only happen when there is a perceived threat to young cygnets.
In the incident at the weekend, a cocker spaniel was swimming in the duck pond in Bushy Park, Terenure near a group of swans and cygnets when an adult swan broke away and attacked the dog, killing it.
"[Swans] are fiercely protective parents and they see a dog as a predator," explained Niall Hatch of Birdwatch Ireland.
"It's important that swans are given peace and quiet around the nesting season (which occurs during the summer months)."
In Ireland the most common swan type is the Mute swan, which are largely well accustomed to humans, whom they associate with food. By comparison the migrant Whooper and Bewick's swans are unlikely to interact.
Male Mutes grow up to 20 kilograms in size, about as large as possible for a flying bird, and they can strike out with their wings. Before doing so, however, they will hiss a warning to steer clear, generally in defence of their cygnets or nests.
Mr Hatch said his organisation receives about four to five reports every summer of swans being killed by dogs but he has never heard of it happening the other way round.
Measured response
Not only are swans a protected species, but it is a criminal offence under the Wildlife Act to interfere with them during the nesting season.
Eric Dempsey, bird expert and author, said a measured response is required to Saturday's attack - both to alert the public to the fact young cygnets are in the water, and to ward off any extreme reaction.
Although swan attacks, similar to those of seagulls, make headlines when they occur, they are considered extremely rare and are an aspect of natural protective behaviour.
"A swan would see a dog as a perceived threat, as a predator. Any animal will protect their babies," said Mr Dempsey. Dogs, experts say, should be kept out of the water during the summer months if swans are in the area.
Mr Dempsey stressed the birds are defensive, not aggressive, and will readily lead their young to humans in order to receive food. Any approach to their nest, however, can provoke a response.
A blow from a swan's wing is similar to getting slapped, said Mr Dempsey, who has himself been on the receiving end while working with the birds.
"There is a myth that swans will break your arm - I have never met or heard of a person who had their arm broken by a swan."
Attacks are rare, at least in terms of public reporting, but when cases do emerge they capture the public interest and are widely reported.
In 2001, 71-year-old Mary Ryan from Dublin lost her compensation claim against the State when she was beaten to the ground and battered by a swan in the Phoenix Park. She broke her wrist in the incident.
Ms Ryan said that having fed the swan, she heard a fluttering of wings behind her. "When I turned around I couldn't believe what I was seeing. He was coming for me. He knocked me to the ground," she said. "He continued to aggressively beat my legs and tried to peck me in the head."
In a case in the US in 2012, Anthony Hensley (37) drowned in Chicago after being knocked from his kayak by a swan, which then stopped him swimming ashore.
"It [WAS] presumably a male swan and it's presumably paired, and it's set up home for the spring," Chris Perrins, a retired Oxford ornithologist, told the BBC at the time. "It's going to defend that territory."
In 2014 there were reports of a swan, subsequently named Asbo, attacking boats and flying directly at humans on the River Cam in Cambridge.
However, despite the potential for such behaviour, Dr Michael Brooke of the University Museum of Zoology, Cambridge said the birds pose "no danger at all" to adult humans.
"I suppose it could be an issue for elderly people or a two-year old, but if you see your child in danger you can just pick them up and walk away," he said.
"People think of them as intimidating because they have a wide wingspan, but then some people are intimidated by spiders in the bath."


text:
The sustainable food agenda has always been important at Oxford Brookes. We recognise the importance of providing healthy food. As well as the environmental, economic and social impacts surrounding food systems.
Gather & Gather, our catering partners, were awarded 3 stars in the Sustainable Restaurant Association 'Food Made Good' program for their commitments to sustainability.
Key contract drivers are to promote healthy and sustainable food options at Brookes. This includes:
- actively sourcing locally grown produce
- promoting seasonal foods
- maintaining sustainable food and animal welfare accreditations such as Fairtrade
- reducing waste across the offering
- delivering greenhouse gas emission reductions.
We are proud to be a Fairtrade University. This enables us to make a positive contribution to developing countries by:
- offering better prices
- providing decent working conditions
- providing local sustainability and fair terms of trade for farmers and workers.
We also work closely with 'Good Food Oxford' and are signatories to the 'Good Food Oxford Pledge'. We aim to catalyse actions by individuals and organisations that promote a healthy, fair, ethical and environmentally sustainable food system in and around Oxford. And we encourage our community to get involved in local projects.
In line with the latest research we are moving away from a vegan framing approach. This means that Instead of a separate vegan catering outlet, we will embed vegan and vegetarian offerings across all our menus.


Dynamically Generating Zip/TGZ Files with One Line of Code
When you work on media-heavy web projects, you will have to manage large sets of images and, at some point, have to share these images with others. Sharing collections is more efficient when the images are archived because it enables easier transfer between servers and ensures that images can be delivered in a relatively smaller sized package.
ziptgz-cloudinary-teaser_en
You also may need to transform these sets of images before they are archived and shared. This strategy is common because it helps optimize files that are being sent from one machine to another, in scenarios such as:
 - Email – Providers, such as Gmail, now offer features that enable users to download all attachments for a given email as archived files.
 - Online schools and tutors – Companies such as Udacity and Pluralsight enable course downloads – which contain exercises, images and videos – that can created with a single click, as archived files are sent directly to your computer.
 - Automated backups – These backups are done by archiving all the media files on the server.
If your project entails uploading, transforming, zipping and sharing images, you typically have to reserve several hours to complete these tasks, writing numerous lines of code to support the efforts. The typical process typically requires:
 1. Uploading images to the server via the browser
 2. Transforming images on your server for optimization purposes
 3. Archiving images using a fairly complex logic
 4. Downloading an archived file
Each of the above step takes time and effort to complete. But it doesn't have to be so complex. A solution from Cloudinary, a leading provider of cloud-based image and video management, will enable you to condense these steps into a single line of code.
Generating Images ZIP/TGZ Files with Cloudinary
With Cloudinary, we can address the complex process of archiving and sharing images quickly and with just a line of code.
Cloudinary supports generating ZIP/TGZ files using the generate_archive Upload API method. This approach can include any type of file, and enables options for determining which files to include in the archive file. For example, you can choose based on the file's name, all files in the same folder, or some other criteria. Cloudinary also enables you to apply transformations to all the images before including them in the file and set various options for generating the archive file, such as naming the file.
Here's one way that Cloudinary enables you to archive and share images:
_URL_
If you click on the link above, you can download an archive of cat images. The signature parameter is required and is generated with your credentials using the Cloudinary SDK. Let's now look at performing these task in our various dev environments, using the SDK.
We have two options for archiving image files:
 1. Pre-creating an image zip/TGZ using your cloud images based on specific parameters
 2. Using a dynamic URL to download existing images from your cloud as an archive, which is the approach taken with the cat image example above.
Looking more closely at these two options, we'll go into detail about the process of generating the archive link.
Pre-creating and Uploading Image ZIP/TGZ Files
To pre-create a ZIP/TGZ file, use the create_zip SDK method. With this, you can automatically upload the archive file to the cloud, and then give your users a link for downloading it. This option is best if multiple users will be downloading the resulting archive file.
The pre-create option creates an archive file based on parameters you supply. The response for the archive requests gives us a URL to download the files.
The following line shows how to create an archive that contains images of our cloud-tagged cat:
// JavaScript
cloudinary.v2.uploader.create_zip(
 { tags: 'cats', resource_type: 'image',
 target_public_id: 'cute_cats.zip', transformations: {
 width: 50, height: 50, crop: 'fill'}},
 function(error,result) {console.log(result) });
// PHP
\Cloudinary\Uploader::create_zip(array(
 'tags' => 'cats', 'resource_type' => 'image',
 'target_public_id' => 'cute_cats.zip', 'transformations' => array(
 'width' => 50, 'height' => 50, 'crop' => 'fill')));
# Ruby
Cloudinary::Uploader.create_zip(:tags => 'cats',
 :resource_type => 'image', :target_public_id => 'cute_cats.zip',
 :transformations => {:width => 50, :height => 50, :crop => :fill})
Created zip
We then can gain access to the archived file using the image method:
// JavaScript
cloudinary.image("cute_cats.zip")
// PHP
cl_image_tag("cute_cats.zip")
# Ruby
cl_image_tag("cute_cats.zip")
Dynamic URLs for Downloading Archived Images
Another option is generating a signed URL for creating a ZIP/TGZ file on-the-fly and on-demand. The ZIPTGZ file is created and sent to your user only when the URL is accessed. The resulting ZIP/TGZ file is not cached or stored in your Cloudinary account, so this option is ideal for sharing images with a single user.
The SDK method to complete this is download_zip_url, which also takes parameters of the images we need to download and returns a URL to download the archived file:
// JavaScript
cloudinary.v2.utils.download_zip_url(
 { public_ids: ['cat3_tqjcms', 'cat4_atunfc', 'cat5_rp7bpa'], resource_type: 'image', transformations: {
 width: 50, height: 50, crop: 'fill'}},
 function(error,result) {console.log(result) });
// PHP
\Cloudinary\Utils::download_zip_url(
 array(
 'public_ids' => array('cat3_tqjcms', 'cat4_atunfc', 'cat5_rp7bpa', 'transformations' => array(
 'width' => 50, 'height' => 50, 'crop' => 'fill')),
 'resource_type' => 'image'));
# Ruby
Cloudinary::Utils.download_zip_url(
 :public_ids => ['cat3_tqjcms', 'cat4_atunfc', 'cat5_rp7bpa'],
 :resource_type => 'image',
 :transformations => {:width => 50, :height => 50, :crop => :fill})
The code above generates the URL like the shown earlier, which you can use to download the file. It's important to note that the URL contains an expiration date, which defaults to one hour, but can be extended with expires_at when setting the download option.
The Archive Alternative
We have been using the term zip and archive interchangeably in this guide. This is a very common phenomenon but they are quite different.
The examples are for ZIP/TGZ files but Cloudinary also supports archives. create_archive and download_archive_url are the archive alternative API methods for pre-creating archives and downloading archives respectively.
The methods receive the same arguments as the ZIP/TGZ alternatives. The difference is just in the name and the output.
Using a single line of code to generate ZIP/TGZ files offers numerous benefits when it comes to organizing, streamlining, normalizing and optimizing the delivery of multiple images. Cloudinary gives you options to best fit your needs, either creating the ZIP file and uploading it to the cloud, or generating a dynamic URL that creates and delivers the ZIP/TGZ file on demand.
This short guide gives you a quick and easy alternative for moving collections of images by using Cloudinary's archiving feature, which also enables you to transform and optimize images before creating an archive.
Want to try it yourself? Go to the Cloudinary website and test drive the solution for free.
Disclaimer: This article is sponsored by Cloudinary.
Noupe Editorial Team
The jungle is alive: Be it a collaboration between two or more authors or an article by an author not contributing regularly. In these cases you find the Noupe Editorial Team as the ones who made it. Guest authors get their own little bio boxes below the article, so watch out for these.


text:
CONDUCTING AN ENVIRONMENTAL AUDIT
Now that your hotel Environmental Policy is in place and the hotel's Environmental Team has been established, it is time to take action. But before any action is decided upon it is important to understand the problems you face. Below you will learn what an Environmental Audit is, what to audit, where to look for problems, and how to measure and record those problems.
An Environmental Audit is a systematic, documented, periodic and objective process that assesses an organization's activities and services in relation to :
- Assessing compliance with relevant statutory and internal requirements
- Facilitating management control of environmental practices
- Promoting good environmental management
- Maintaining credibility with the public
- Raising staff awareness and enforcing commitment to departmental environmental policy
- Exploring improvement opportunities
- Establishing the performance baseline for developing an Environmental Management System (EMS)
To understand as many of the environmental impacts of the hotel building and
operation and quantify a benchmark to measure progress.
1. Obtain committment from the directorate level and communicate the purpose of the Environmental Audit to all personel in the organization.
2. Define the scope of the Environmental Audit including a list of all sites that are to be audited. Identify the objective of the audit and what areas of the organization the audit should include or disclude.
3. The Environmental Audit should encompass the following:
- Material management, savings and alternatives
- Energy management and savings
- Water management and economy of use
- Waste generation, management and disposal
- Noise reduction, evaluation and control
(internal and external)
- Air emissions and indoor air quality
- Environmental emergency prevention and preparedness
- Transportation and travelling practices
- Staff awareness, participation and training in environmental issues
- Environmental information publicity
- Public enquiry and complaints response
- Environmental management system set up, suitability and performance
- Building environmental performance
4. Examine and document all potential environmental impacts.
Below is a flowchart provided by the Hong Kong Environmental Protection Department depicting all the steps of conducting and Environmental Audit.
Figure 1: Flowchart depicting Environmental Audit process.
Now that you understand how to conduct an Environmental Audit you can
direct your environmental team to conduct an audit. For more information please see the links to related resources on the right side menu or in the references section below.
1. Hong Kong Environmental Protection Department, What is an Environmental Audit?, 2002.

source: HuggingFaceFW/fineweb-edu


text:
"Microsoft® SSIS Balanced Data Distributor (BDD) is a new SSIS transform. This transform takes a single input and distributes the incoming rows to one or more outputs uniformly via multithreading. The transform takes one pipeline buffer worth of rows at a time and moves it to the next output in a round robin fashion. It's balanced and synchronous so if one of the downstream transforms or destinations is slower than the others, the rest of the pipeline will stall so this transform works best if all of the outputs have identical transforms and destinations. The intention of BDD is to improve performance via multi-threading. Several characteristics of the scenarios BDD applies to: 1) the destinations would be uniform, or at least be of the same type. 2) the input is faster than the output, for example, reading from flat file to OleDB. "
Considering the test performed on this transform, from the results it seems that performance of this transform is a little better over other transforms like Script and Conditional Split. But it should also be taken into consideration that this transform buffer by buffer to its output ends, and the other two checks the data based on the specified logic and then divides the data. Its a nice transform to have in your existing SSIS toolbelt.
The best use of this transform that I can think of is when your input is extremely fast, and you have replicated blocks of logic to keep up the pace with the incoming data flow. In such a case BDD acts as a distributor bridge pumping data to all logic pipelines. But if data is to be dissected conditionally, Conditional Split would be the option again. The speed of distribution harnessed by this transform seems to be due to two reasons: 1) No distribution of data conditionally, just pass buffer by buffer 2) Multithreading architecture.
Certain curious questions the my mind raises are:
1) Denali is already in CTP mode and more CTPs are expected to come. Then why this transform has been released separately at this time and so silently?
2) Will this transform be a regular transform available with Denali, or would it remain a mysterious separated out transform?
3) This transform is available only for SSIS 2008 and SSIS 2008 R2, not SSIS 2005. Why ? Actually it's SSIS 2005 that needs more help with transforms like this, where it would be a value addition to customers who have already made investments in SSIS 2005 !
Let's look forward to the next CTP of Denali to checkout whether this transform would have a seat in SSIS Denali.


text:
The Quiet Ensemble sees music everywhere in nature.
"Quintetto" is an installation based on the study of casual movement of objects or living creatures used as input for the production of sounds. The basic concept is to reveal what we call "invisible concerts" of everyday life. The vertical movements of the 5 fishes in the aquariums is captured by a video camera, that translates (through a computer software) their movements in digital sound signals. We'll have 5 different musical instruments creating a totally unexpected live concert.


text:
Cosmoislands: A Window to the Universe
Cosmoislas is a window into the vastness of the cosmos, as shown by renowned star photographer Daniel López. It is a dynamic educational project targeted at schoolchildren and their families, and general visitors at large.
Cosmoislas shows the night sky from some of the most amazing spots in the Canary Islands. Using interactive boards, visitors can learn interesting astronomical facts: apparent motion, rotation and stargazing, light pollution and look at the sky at night, etc.
- When: From 14 January to 31 December
- Where: CajaCanarias Cultural Space, Garachico
Sundays and holidays, closed
- More information: _URL_


text:
- 【 Glossary 】
- Flood-fighting group standby level
If the water continues rising above this point , over flood-fighting group standby level are put on standby.
- Flood caution level
There is a possibility of flood damage occurring. If the water reaches this level, over flood-fighting group are mobilized.
- Evacuation judgment level
This is the threshold where the water level is considered dangerous. If the water level reaches this point, the authorities recommend to start preparing for evacuation.
- Flood warning level
Risk of flood is high. If the water level reaches this point, the authorities recommend evacuating the area.
- Cope level (Levee crown)
It is the top of the dike or levee. If the water level rises above it, the river will overflow.
Copyright(c)2017 Yokohama City. All rights reserved.


Sign up ×
i have downloaded some SRTM Dem files here: They are from the USGS site.
I would like to export them as 3d.
I have ran through a few tutorials online, eg 1) 2)
But still don't get it.
Question: 1) so are the SRTM DEM files exportable to be viewed in 3d via Arcscene/ Arcmap? 2) how do you do it?
Thank you!
share|improve this question
1 Answer 1
up vote 4 down vote accepted
When you downloaded the data what format did it come in? By definition, if the data is a raster format, it can be considered 3D data, as it has a x,y,z value. If you are looking to have it extruded in ArcScene then you will want to do a few of the following things.
Assuming your data is in a usable raster format (ie: GeoTiff) then you will want to do the following: - Open the Properties of the data in ArcScene and change the Symbology (ie: Standard Dev. 2 and change the statistics to From Current Display Extent - On the Base Heights Tab change the radio buttom from No elevation values from a surface to Floating on a custom surface and choose the SRTM raster file (this will make the raster have 3D visual appeal - Finally you can play with the visual rendering which is located under the Rendering tab. The Higher the rendering, the more memory it needs from your computer and graphics card.
share|improve this answer
Let me try this outwill ask again if i get stuck. Thank you Ryan! – Anna Jun 5 '12 at 20:52
Your Answer


How do turtles breathe?
Within the group of vertebrates we find the order Testudines, which includes all turtles, both aquatic and terrestrial. Without a doubt, they are very peculiar animals, because their shell, regardless of the species, makes them always easily recognizable. On the other hand, they are full of various curiosities, which with the advancement of science have become much better known. One of these data and what else raises doubts is his way of breathing.
How do tortoises breathe?

Land turtles are vertebrates that have pulmonary-type breathing , so it is through these organs that they carry out their breathing process. Now, although tortoises breathe through lungs, their anatomy is very different from other vertebrates, so their breathing process also changes.
The shell of turtles is a thoracic cage that has been modified and forms part of their spinal column, where the ribs have also been fused, which has the consequence that in the process of inspiration and exhalation there is no expansion of the ribcage. region of the thorax, as is common in other vertebrate animals. This anatomical constitution means that the lungs , in their upper region, are attached to the shell , while the lower part is attached to other organs. This position limits their expansion.
But life in general uses complex processes that offer necessary alternatives so that the species can develop properly, and in this the turtles have not been left out. To solve the limitation of the expansive movement of the lungs, which allows the mobilization of air, the turtles use the abdominal and pectoral muscles as if they were a diaphragm , for which they make the air enter and leave the lungs thanks to two types of movements: one that drives the air into the lungs and another that takes it out, so that gaseous exchange can occur in the animal.
Certain studies suggest that this ventilation mechanism that occurs in turtles was possible through their anatomical evolution, where there was a division of labor carried out by structures such as the ribs and muscles located in the trunk, in which Given the limitation of their movements, their function was replaced by other muscles, such as the abdominals. As for the widening of the ribs, these became the main means of stabilizing the trunk of the animal. It is estimated that this entire transformation process must have occurred about 50 million years ago, before the evolution of the shell to a fully ossified structure took place.

Sea turtle breathing

Sea turtles and also those that live in freshwater bodies are still vertebrate animals that, in fact, belong to the same order as land turtles. In this sense, aquatic turtles also breathe through lungs , so they need to go to the surface to take in air .
However, both sea turtles and freshwater turtles have developed other mechanisms to carry out gas exchange underwater and thus be able to take in oxygen. In general, vertebrates, regardless of the type of respiration they have, due to the metabolic demands they have on their bodies, have little tolerance for the absence or deficiency of oxygen, and for a sea turtle, for example, it would be a limitation to have to rise every few minutes to the surface to breathe. Likewise, it would also be limiting for species of freshwater turtles, which develop brumation processes under water, as is the case of the red-eared slider turtle ( Trachemys scripta).
So how do water turtles breathe? It is common for turtles with aquatic habits, whether in marine or freshwater environments, to have a bimodal type of respiration , that is, they do it through their lungs , but also through the cloaca , which is the final part of the digestive system. of the animal and connects with the outside, so that it is lined with branched papillae that allow gas exchange.
Lastly, since there are hardly any absolute rules in nature, there are turtles, such as the painted turtle ( Chrysemys picta ), which can not only spend long periods of time underwater, but can also do so even in aquatic bodies. with very little or almost no oxygen, as in which the upper layer freezes, which prevents gas exchange.

Do sea turtles have gills?

The gills are organs that different animals of aquatic life use to be able to breathe underwater. Nonetheless, these structures are not part of the turtle anatomy, therefore sea turtles do not have gills .
However, there are vertebrates that do have them, apart from fish, such as amphibians in their larval phase, which have similar gill structures that are usually lost in metamorphosis. However, there are cases where they remain in adults, such as that of the Mexican salamander .
How long can a turtle last underwater?

The time a turtle can last underwater can vary, but thanks to its cloacal respiration, in some cases there are individuals that can last much longer than any other lung-breathing vertebrate can. Thus, for example, the Fitzroy turtle ( Rheodytes leukops ) can last from about 10 hours to about three weeks underwater . Another example is found in the painted turtle , which can stay underwater for up to four months .
In general, we can say that a resting turtle can spend between 4 and 7 hours underwater. However, when they are on the move or under stress, they need to come to the surface more continuously to take in air because their metabolic demand increases.

Decompression syndrome in sea turtles

Decompression syndrome is a pathology that originates when an individual submerged at a certain depth ascends rapidly and the atmospheric pressure abruptly decreases , causing nitrogen to pass from the lungs to the blood and form bubbles that cause this syndrome and its complications.
Sea turtles, to avoid suffering from this, limit the passage of blood to the lungs, so nitrogen does not dissolve and they can quickly rise to the surface without any problem. However, if the turtle is stressed, such as when it is trapped in a net, it cannot limit the passage of blood to the lungs, so when it is filled with this liquid, gas exchange occurs and nitrogen produces the formation of bubbles that have fatal consequences for the animal, which can cause death once it is abruptly removed from the water.
In this way, the decompression syndrome in turtles originates mainly because of fishing when trawling nets are used where they are trapped. Unfortunately, there are not a few sea turtles that suffer from this syndrome and end up dying. Fortunately, there are associations and foundations that are responsible for treating them to rehabilitate them and return them back to their habitat, such as the CRAM Foundation. This foundation is dedicated to the rescue, rehabilitation and liberation of marine animals that are injured, a task that is undoubtedly essential for sea turtles that suffer accidents with boats or are trapped in nets. We can help in this work by supporting the foundation through donations, which can be monthly or specific and of the amount that we want. With just €1 a month, we help a lot!


Click here to Skip to main content
13,047,131 members (58,868 online)
Click here to Skip to main content
Add your own
alternative version
Stats
127.9K views
13 bookmarked
Posted 6 Feb 2005
Rationale Behind Whidbey C++ Breaking Changes
, 6 Feb 2005
Rate this:
Please Sign up or sign in to vote.
The explanations, workarounds, scenarios and the rationale behind the decisions to change the Whidbey C++ compiler.
Introduction
Microsoft have made over 20 breaking changes to the C++ compiler for Whidbey. The Microsoft development team would love to get feedback on these changes and so have provided the following explanations, workarounds, scenarios and rationales behind their decision to change the compiler.
Note this is preliminary information and is subject to change.

1. Pointer-to-members now require qualified name and &.
Affected User Scenario:
Code written for previous versions of the compiler that just use the method name will give an error
Description:
This is Standard C++. Conformance demands that in order to create a pointer to a member function, the address of operator (&) is used with the fully qualified name of the method.
Customer Workaround:
Customer should fully qualify his method name and use the address of operator (&) in order to create a pointer to a member function. It's a common cause for bugs when we can't tell if the customer just forgot a parenthesis in a function call versus he wants to create a pointer to a member function.
Rationale:
Our rationale for making this enforcement other than conform to the C++ Standard, is that in many cases it lead customers to logical bugs in their code due missing parenthesis in function calls. Using the function's name without an argument list results in a function pointer which is convertible to several types, thus the code would have compiled leading to unexpected behavior at runtime.
2. __asm int 3 now generates native code
Affected User Scenario:
Customers that want their code to generate MSIL and use the __asm int 3 instruction to generate a break point will need to modify their code.
Description:
Before __asm int 3 was translated by the compiler to a CLR break instruction and did not cause native code to be generated when compiled with /clr.
Customer Workaround:
Customer must now use __debugbreak so that the function may be compiled to MSIL and still act as a break point.
Rationale:
We want to be more deterministic about when we generate native code or managed code instead of special casing inline assembly code when targeting the CLR. Inline assembly code should generate native code.
3. Explicit specialization not allowed as a copy constructor/copy assignment operator
Affected User Scenario:
Users that depended on an explicit template specialization for a copy constructor or copy assignment operator in their code will now get compiler error C2299.
Description:
Standard C++ prohibits this and as so we changed it to be conformant. Users will need to update their code.
Customer Workaround:
Customer workaround is to stop making the copy constructor/copy asignment operator a template function and just make it a regular function that takes a class type with the desired template arguments. Any code that calls the copy contructor/copy assignment operator by explicitly specifying the template arguments needs to remove the template arguments.
Rationale:
C++ Standard conformance is always on our list of priorities; users expect their code to be portable. We made this change to be conformant.
4. Unspecialized class template can't be used as a template argument in a base class list
Affected User Scenario:
Users that use an unspecialized template class name in the base class list for a the class' definition will see a compiler error.
Description:
It is illegal to use an unspecialized template class name as a template parameter in a base class list. Elsewhere inside the class, the compiler injects the unspecialized type parameter
Customer Workaround:
User needs to explicitly add the template type parameters to the template class name when using it as a template parameter in a base class list.
Rationale:
C++ Standard conformance is always on our list of priorities; users expect their code to be portable. We made this change to be conformant.
5. A using declaration of nested type is now illegal
Affected User Scenario:
Customers that have a using declaration with a nested type will now get C2885.
Description:
Before users where allowed to bring in a nested type's declaration to global scope by a using declaration. This is not allowed in Standard C++.
Customer Workaround:
Customer workaround is to fully qualify his nested type whenever he wants to use it. A typedef can also be used to bypass using the scope resolution operator everywhere.
Rationale:
The using declaration cannot be used with nested classes, the C++ Standard specifies that it can be used to bring a class into the scope that is contained in a namespace, not a class.
6. Compiler no longer allows const_cast to down cast in the old syntax.
Affected User Scenario:
Users were incorrectly allowed to use const_cast to down cast (cast down the hierarchy to a more derived class type) with our 7.0 and 7.1 compilers. User code like this will now hit compiler error C2440.
Description:
This is incorrect code. By definition const_cast can only be used to remove/add a cv qualifier. Any other use of it is incorrect.
Customer Workaround:
Customer workaround it to concatenate use of const_cast with one of our other casts that can down cast (dynamic_cast, static_cast or __try_cast).
Rationale:
The C++ Standard indicates that const_cast should be used to add or remove a const volatile qualifier; to allow it to behave differently special case on managed types was wrong.
7. Compiler disallows forward declaration of a managed enum
Affected User Scenario:
Declaring and not defining a managed enum (/clr or /clr:oldSyntax) will give a compiler error. Code written for the VC7.0 and VC7.1 compilers will break.
Description:
This used to compile in VC7.0 and VC7.1, but was not guaranteed to work correctly. The problem is the compiler can't correctly identify the underlying type of the enum.
Customer Workaround:
Customer should always define his managed enums at declaration
Rationale:
Managed enums can have different underlying types. We have no syntax for specifying an underlying type in an enum declaration; also the C++ Standard does not allow enum declarations.
8. Switch removal: /YX
Affected User Scenario:
Users used this switch to generate automatic pre-compiled headers support for their code. It was used by default from the IDE.
Description:
We have other switches that the user can use to add pre-compiled headers support that are better.
Customer Workaround:
Customer can use /Yc and /Yu for pre compiled headers support.
Rationale:
This switch sometimes behaved incorrectly. We prefer customers use /Yc and /Yu which give the user more control.
9. Switch removal: Optimizations /Oa, /Op and /Ow
Affected User Scenario:
Users will need to remove these from their projects.
Description:
These switches are both replaced by others or not needed anymore
Customer Workaround:
Customer can use the /fp switches for floating point optimizations.
Rationale:
Compiler options /Oa and /Ow usually led people to generate bad code and /Op was replaced by the better /fp switches; these provide the user with better control.
10. Switch removal: /ML and /MLd
Affected User Scenario:
Users that depended on statically linking to the single threaded CRT.
Description:
There is no single threaded CRT anymore
Customer Workaround:
Customer can just use /MT and /MTd respectively
Rationale:
We stopped making a single threaded C Runtime Library (CRT) and thus we do not need this compiler option anymore.
11. Switch removal: /G3 - /G7, /GB, /Gf, /GD, /GM
Affected User Scenario:
Users will need to remove these from their projects.
Description:
The processor specific optimization switches can be replaced by our /OX family of switches.
Customer Workaround:
Customer can achieve the same functionality using our /OX family of optimization switches.
Rationale:
Compiler options /G3 - /G7 targeted specific processors, most of which are no longer mass marketed. The user can achieve the same optimizations with our Ox compiler options. For 64 bit development, we added a new optimization switch: /Favor:[ALL|AMD64|EM64T]. Compiler option /Gf enabled string pooling but used writeable memory which is dangerous, /GF achieves the same functionality in safer readonly memory. Compiler option /GD's functionality can be achieved with our other optimizaton options; we do not need specific DLL optimizations. Compiler options /GM and /GB are not needed anymore.
12. Switch conflict: /clr and /MT
Affected User Scenario:
Users will need to replace /MT with /MD for their code targeting .NET
Description:
There is no support in the CRT for statically linking managed applications.
Customer Workaround:
Customer needs to change /MT to /MD and link dynamically to the CRT.
Rationale:
There is no support in the C Runtime Library to statically link to a managed application. All managed applications have to


text:
Social Structure of Ancient China
Let's learn about China's social structure
Description: Peasants Of Ancient China
Image copyright: _URL_
A. Which groups made up China's Social structure?
*In first class were the kings and nobles; they were at the highest level.
*Then came the lords and warriors, they were in the second class.
*Lastly were the peasants, they were in the lowest class.
B. What were the rights and responsibilities of each group?
*The kings lead the government and gave land to different lords.
*The lords' responsibilities were to pay the taxes to the king and provided warriors to protect the land.
*Peasants farmed the nobles land and worked for the nobles and kings.
C. Why were some groups more powerful than others?
*They were more powerful because they were wealthy and known.
* They had a lot more resources than others.
D. Why were boy children highly valued in Ancient China's society?
*Boys were valued girls more because they were the ones that passed down the family names to their families.
*When their parents got old, the boys were the ones that took care of their parents.
E. Compare and contrast ancient China's social structure with the United States (our country)
*They are similar because the kings and president are in the highest class.
*In the second class in the U.S. are educated adults like lawyers and surgeons and people in the army like marines. While in china it is the warriors.
*In the lower class are the homeless and the citizens of
The U.S. In ancient China it is the servants and the slaves.


text:
Wax pens are a favorite among stylists and artists everywhere. They're easy to use, and they come in a variety of colors and styles. What's not to love? The only downside is that wax pens need batteries to work, and those batteries tend to run out quickly. If you're like most people, you probably just toss the pen away when the battery runs out. That's not the best idea, though. Not only is it wasteful, but it also means that the pen can no longer be used. In this blog post, we will show you how to charge a wax pen battery with an android charger.
What is a wax pen?
A wax pen is a handheld device that uses a refillable cartridge to produce a small amount of hot wax that can be used for writing or drawing. The device typically consists of a cartridge with wax and an electronic heat-up system, which warms the wax until it liquefies. After the user injects the wax into the pen's tip, they can begin to write or draw. Wax pens are typically charge using an AC adapter or USB port, but there are also model that use batteries.
To charge a wax pen battery with Android charger: Plug in your Android charger into an available outlet and plug in your wax pen battery into the Android charger. The red light on the Android charger should turn green when it's charging your wax pen battery. When your wax pen battery is fully charged, unplug theAndroid charger from the outlet.
How to charge a wax pen battery with android charger?
Wax pens use disposable lithium ion batteries that need to be charged before each use. There are a few ways to charge a wax pen battery with an android charger. One way is to use the USB outlet that your android device charges using. Another way is to connect the wax pen battery to the usb port on the back of your android device using a micro USB cable.
What are the benefits of using an android charger for charging wax pens?
There are a few benefits of using an android charger for charging wax pens. First,android chargers provide a consistent and reliable current that is necessary for proper charging. Second,android chargers are typically smaller and more portable than traditional chargers, making them ideal for traveling with your wax pens. Finally, most android chargers also have indicator lights that let you know when the pen's battery is fully charged.


text:
The new MC&I Standard under indicator 6.5.5 requires FMU to prepare Forest Fire Management Plan (FFMP) for implementation in all fire -prone forest types. Under the FFMP, Kapit FMU has conducted a risk assessment for fire-prone forest types within FMU and provide a measure to prevent and control forest fire within FMU. Based on the current information, the risk of forest fire is classified as below.
The forest fire prevention and control conducted by the FMU included:
- increase awareness among forest workers, local communities through the placement of " No Open Burning" signboards at strategic location,
- conduct patrolling as an effective detection and prevention method during a drought period especially in the area adjacent to local communities shifting agricultural site or farmland,
- placement of other administrative measure i.e. instructions to workers not to conduct any open burning, to provide signage (e.g., No Burning) at designated locations and Actively consulting and communicating with its adjacent stakeholders in preventing and controlling forest fire potentially spreading into FMU
- and establishment of fire/emergency action plan.


Police Evidence Technician
The department has two civilian employees who are police evidence technicians. They are responsible for assisting officers with processing crime scenes and handling evidence. Duties include, but are not limited to:
 - Photograph crime scenes with digital, analog, or video equipment as part of processing the scene;
 - Conducts searches and preserves physical evidence such as hair, fibers, dirt, body fluids, etc.
 - Completes written reports as required to document crime scenes and the collection and preservation of evidence;
 - Receives and stores physical evidence to maintain proper security and chain of custody of evidence until released for use in court proceedings;
 - Makes appointments with attorneys and law enforcement personnel to review physical evidence in preparation for upcoming trials.
 - Assists the Violent/Sex Offender Detective with assuring violent/sex offenders are registered.


How Long Is A Tagline?
1 Answer
 1. An effective tagline is the one that is short, crisp, clear and catchy. A general rule for a good tagline is that it should not be more than 10 words. Try to keep the tagline as short as possible and as clear as possible.
 - 0
Leave an answer
You must login to add an answer.