The embarrassing issue of humping
Rate this article:
Many dog owners will be familiar with the awkward scenario of their dog unexpectedly humping another dog, an inanimate object, or even a human leg. So why do dogs hump and should we do anything about it? Ross McCarthy, canine behaviourist of the London Dog Behaviour Company, answers some common questions on the subject
Is it sexually motivated?
Sometimes, but, depending on the age and gender of your dog, humping, as we call it, is most commonly an exploratory behaviour. It's governed primarily by initial excitement and touch in certain places that create arousal.
Essentially, it's a pleasurable activity for an excited dog, and it can become an embedded response in certain situations: while some dogs may run and grab a toy or slipper when you come home, others might go and mount their bed.
Why do my dogs tend to hump more when visitors come round?
It's not sexual – dogs just get excited at the change in the norm. So when visitors come, life is fun and exciting and they hump as a type of displacement behaviour, transferring their feelings about the event to something else.
It may also have something to do with your responses and those of the visitors: if a dog's excitement is stoked by all the attention and fuss that could be a reason to continue with the behaviour that incited the reaction.
My dog is neutered. Why does he still hump?
In purely biological terms, unneutered male dogs want to mate bitches in season – that's it. There are, of course, exceptions, such as when they get a scent that they like on someone or something. But the impulse is largely reserved for when they get that unmistakeable, innate mating message via scent.
Neutering helps to decrease the amount of testosterone (a sex hormone) in a dog's body, lessening the urge to mate, and therefore to hump. However, a certain amount of the hormone remains in the dog's bloodstream, meaning they'll continue to want to mate and, by extension, will continue to exhibit mounting behaviour.
Bear in mind, too, that humping is learned and practised from puppyhood (well before sexual maturity). It's a way for dogs to test out their physical abilities and social potential – more dominant members of the litter will assert themselves by mounting their siblings, thereby displaying leadership or dominance.
Why do female dogs hump?
It's common for female dogs to hump too, particularly in puppyhood (although not usually as much as males do). The reason is simple: it feels pleasurable to them and is simply an intrinsic behaviour, motivated by play and social interaction in the same way as it is for male dogs. Some dogs (of either gender) might hump in response to stress as well as excitement, so it's useful to watch your dog's humping habits to see if something in particular is agitating him or her.
What should I do about the humping?
Probably nothing. My 16-year-old neutered German Shepherd, Vhko, likes to try to mount my youngest Rottweiler, Rohkh, for a short while after their evening meal. Both dogs seem to enjoy the interaction, so I allow it to continue. I think if the routine included humans, I might put a stop to it, but if you have a puppy who's humping his bed or a toy, you should probably just leave him alone to get on with what is fundamentally a natural, normal canine behaviour.
However, humping can sometimes have an underlying medical cause, such as a urinary tract infection or skin allergy, so if the behaviour has come on suddenly or seems excessive, it's worth asking your vet about it – particularly if your dog is also spending a lot of time licking his or her genital area.
If you've ruled out a medical reason and are still concerned that the humping is getting out of hand or happens too frequently, you should use positive reinforcement training to stop the habit and teach an alternative response. A qualified behaviourist can help you to assess the situation and take the best course of action.
Rate this article:
Back to top


text:
Deerns will give advice concerning new-build projects and renovation of existing systems. From an escalator in a shopping centre to the design of an entire transport hub, such as airport terminals or public-transport hubs.
Deerns' particular challenge consists of the optimisation of passenger flows.
Important aspects in our design recommendations include:
- The logistic flows
- Installation and type of escalators
- Moving walkways and/or ramps
- The civil-engineering environment.
An escalator or ramp is a diagonal transport system with steps or pallets that move up or down. A moving walkway, on the other hand, is a horizontal system, often made up of pallets, which is especially suitable in situations where longer walking distances need to be covered, like in airports or above-ground or underground railway stations. Because of their intensive use, and the required safety and reliability as a result, strict requirements are made of these systems. An advantage of escalators as opposed to lifts, for example, is the greater transport capacity and the absence of waiting times.

source: openbmb/Ultra-FineWeb


text:
Getting on the property ladder in 2022 can be a challenge – akin to pushing a boulder up a hill for example, or swimming in treacle. The cost of living is going up and so are house prices – but there are ways to give yourself a leg up to secure your dream home – like shared ownership. But what is shared ownership or help to buy, how does it work and where do you start?
Hockeys are the leading estate agents in Cambridge, and their Director Jeremy Trott has the answers to all of those questions.
How Does Shared Ownership Work?
Also known as help to buy, shared ownership is a great scheme, particularly for first time buyers to find affordable housing in Cambridge. However, so many people aren't aware of what it is and how it works. Shared ownership is quite a simple concept - the buyer purchases a percentage of the property with the remaining amount owned by the housing provider. The buyer then pays a mortgage on the share that they own and rent on the remaining percentage. Shared ownership also provides the opportunity to do a staircase purchase – so you can buy a bigger stake in the property as your wealth increases. If you get a pay rise for example, or you inherit a lump sum, you can increase your equity. Some housing associations allow you to staircase right up to the full amount, so eventually you can own the property outright
What is a shared ownership mortgage?
A shared ownership mortgage is simply when the buyer takes out a mortgage on the percentage of the property that they own. The deposit required for shared ownership is often more manageable than with a traditional purchase – usually around 5% rather than 10-15%. As always, we would recommend talking to an independent mortgage adviser and, here at Hockeys, we can put you in touch with experts who can walk you through the process.
What are the benefits of shared ownership?
The benefits of shared ownership are many but most importantly, it gives those buyers who are on a lower income a chance to get on the property ladder. It provides an opportunity to own an asset and not plough money solely into rent paying off somebody else's mortgage. Also, there is no such thing as a bidding war with shared ownership – the property will be valued by an independent valuer who will then set the price for the applicants, so no nasty last-minute surprises or gazumping! If a buyer has a link to the area where the property is for sale, in many cases their application will be given priority - making it easier to lay down roots in a place of familiarity.
How do you find a shared ownership property?
There are a limited amount of shared ownership properties, and here at Hockeys, we may only have one or two on the market at any given time - they tend to go quite quickly. Initially, a shared ownership property will be marketed by the housing association during a nomination period and then if the housing association cannot find a buyer, it can go on the open market with an estate agent.
If shared ownership is of interest, or if you would like to know more about obtaining a mortgage on a shared equirty property then Register with Hockeys so we can get in touch as soon as a relevant property becomes available.
A small selection of help to buy housing groups can be found below:
Demovo (Formerly BPHA)
Further Reading: More Advice for Home Buyers
Click below to read more of our expert advice for home buyers:
And if you have any questions about the Cambridge property market, feel free to contact us, we would be very happy to hear from you!

source: m-a-p/FineFineWeb


What is Spider Blocking?
Spider blocking is a feature of the LSN CDN that allows you to block Google from indexing your CDN content.
How to Enable Spider Blocking
 1. Login to OnePortal's cdn.html">CDN setup page.
 2. Click "Other Options".
 3. Under "Block Bots" select "On".
 4. Click "Save Changes".
Tagged:
Rate This Article
(39 out of 98 people found this article helpful)
About The Author


text:
|Author Name||URATA Shujiro (Faculty Fellow, RIETI / Waseda University) /MATSUURA Toshiyuki (RIETI) /Yuhong WEI (RIETI / Hitotsubashi University)
|Creation Date/NO.||February 2006 06-E-006|
|Download / Links|
Authors analyze the pattern of intrafirm transfer of management technology from Japanese multinational corporations (MNCs) to their overseas affiliates by using firm-level micro data and discern the determinants of the extent of technology transfer achieved. Defining intrafirm transfer of technology achieved as the case where responsibility of the task such as top management, sales, and labor management is given to local staff rather than Japanese staff, authors found that top management has been transferred at a limited number of affiliates, while the task of labor management has been transferred at many affiliates. Among the affiliates in different regions, technology transfer has been relatively more extensively achieved at affiliates in Europe, while it has been relatively limited at affiliates in ASEAN countries. An examination of the determinants of technology transfer revealed that the length of operation of the affiliates, and the quality of labor in the host countries have significantly positive impacts for the affiliates in Asia. These observations indicate the importance of providing an FDI friendly environment, under which MNCs are likely to stay for a long period, and the importance of improving the quality of human resources through education and training, in order to promote intrafirm transfer of management technology.


text:
There are a lot of technical hurdles to overcome before we put boots on Mars, and one of the less obvious (thought certainly important) is how to deal with injuries that far away from Earth.
When you're on Mars, access to medical care is limited to the supplies and expertise you bring with you. Sadly, considering the limited amount of space on a trip to Mars, it'll be almost impossible to prepare for everything. So NASA scientists are trying to improve the odds with some cutting-edge new gauze that could quickly close wounds and even speed up the healing process.
It's called electric gauze, and Seeker reports the tech could have a major impact on the way wounds heals, though it still needs a good bit of study to determine exactly how it might function in space or on a planet with different gravity (since blood flows differently depending of the gravity). Here on Earth, it obviously also has some potentially great implications.
"What's unique about this material is that it's electroactive -- meaning that if you warm it up, if you push on it, if you apply any load on it, even if you just blow on it -- it actually generates voltage," Emilie "Mia" Siochi, a senior materials scientist at NASA's Langley Research Center, said in a video interview.
Put simply, the electric gauze applies voltage to a polymer, which creates a fiber. If they do it right, the fibers can serve as "scaffolding" for a cell as it heals. Scientists think that can make it heal faster and avoid infection, which could be critical for astronauts living on the fringe of space.


feet likely lent themselves to upright walking for extended distances, while their curved fingers probably made them good climbers. The trove of bones were all in one place because the H. naledi likely practiced ritualized treatment of their dead—in this case depositing bodies in the remote section of the cave. Up until now, scientists have believed that only modern humans engaged in such burial-type behavior.


text:
Clue: Atmospheric region with a "hole"
We have 1 answer for the clue Atmospheric region with a "hole". See the results below.
- Covering with a hole in it
- Protection from ultraviolet rays
- Ultraviolet radiation blocker
- Holey protector
- Stratospheric stratum that protects the Earth from the Sun
- It's found all around the world
- Chlorofluorocarbons damage it
Last Seen In:
- New York Times - March 09, 2004
Found an answer for the clue Atmospheric region with a "hole" that we don't have? Then please submit it to us so we can make the clue database even better!


Joining Multiple Inputs into One Output Sequence
Rajesh081725
Posted by Rajesh081725 under LINQ category on | Points: 40 | Views : 821
You can use a LINQ query to create an output sequence that contains elements from more than one input sequence. The following example shows how to combine two in-memory data structures, but the same principles can be applied to combine data from XML or SQL or DataSet sources. Assume the following two class types:
C#
class Student
{
public string First { get; set; }
public string Last {get; set;}
public int ID { get; set; }
public string Street { get; set; }
public string City { get; set; }
public List<int> Scores;
}
class Teacher
{
public string First { get; set; }
public string Last { get; set; }
public int ID { get; set; }
public string City { get; set; }
}
The following example shows the query:
C#
class DataTransformations
{
static void Main()
{
// Create the first data source.
List<Student> students = new List<Student>()
{
new Student {First="Svetlana",
Last="Omelchenko",
ID=111,
Street="123 Main Street",
City="Seattle",
Scores= new List<int> {97, 92, 81, 60}},
new Student {First="Claire",
Last="O'Donnell",
ID=112,
Street="124 Main Street",
City="Redmond",
Scores= new List<int> {75, 84, 91, 39}},
new Student {First="Sven",
Last="Mortensen",
ID=113,
Street="125 Main Street",
City="Lake City",
Scores= new List<int> {88, 94, 65, 91}},
};
// Create the second data source.
List<Teacher> teachers = new List<Teacher>()
{
new Teacher {First="Ann", Last="Beebe", ID=945, City = "Seattle"},
new Teacher {First="Alex", Last="Robinson", ID=956, City = "Redmond"},
new Teacher {First="Michiyo", Last="Sato", ID=972, City = "Tacoma"}
};
// Create the query.
var peopleInSeattle = (from student in students
where student.City == "Seattle"
select student.Last)
.Concat(from teacher in teachers
where teacher.City == "Seattle"
select teacher.Last);
Console.WriteLine("The following students and teachers live in Seattle:");
// Execute the query.
foreach (var person in peopleInSeattle)
{
Console.WriteLine(person);
}
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}
}
Output:
The following students and teachers live in Seattle:
Omelchenko
Beebe
Comments or Responses
Login to post response


2.1.40 ProjectSearch
Description
Query objects inside Origin
Syntax
VB: Function ProjectSearch(text As ByVal String) As String
C++: LPCSTR ProjectSearch(LPCSTR text )
C#: string ProjectSearch(string text )
Parameters
text
The string contains the content for searching
Return
The ProjectSearch method returns XML string as search result.
Remark
Examples
Python
EX1
import OriginExt as O
app = O.Application(); app.Visible = app.MAINWND_SHOW
pageName = app.CreatePage(app.OPT_WORKSHEET)
searchResult = app.ProjectSearch("1")
print(searchResult)
EX2
import OriginExt as O
import os
str = input('to search for:')
root = 'c:\\tmp\\'
flist = []
for fn in os.listdir(root):
 if fn.endswith('.opju') or fn.endswith('.opj'):
 fullpath = root + fn
 flist.append(fullpath)

app = O.Application()
found=[]
for afile in flist:
 if app.Load(afile):
 result = app.ProjectSearch(str)
 app.Execute('doc -s')#to prevent asking to save
 if len(result) > 10:
 print('*',end='')
 found.append(afile)
 else:
 print('.',end='')
print('done')
for fopj in found:
 print(fopj)

app.Exit()
del app
Version Information
Origin 2018 SR0
See Also
GetFinder


Teco Motor Oscillations
Description of the problem:
My Teco motor is oscillating back and forth (humming / screeching).
Try changing the notch filter parameter inside the Teco drives to reduce harmonics.
 1. Press the [Mode] button until you see CN001
 2. Use the up and down arrow keys to set it to CN013
 3. Hold down the [Enter] key until the drive enters the parameter
 Note: Start by setting it to 500. Adjust by 50 at a time. You can use any value from 0-1000.
 4. After you update the parameter, hold down [Enter] again until it goes back to CN013.
 5. Then cycle power to the drive and your setting will be updated
 6. Continue adjusting the parameter until the oscillations cease
Note - This is for reference only, not to be used unless specific instruction is given: CN014 can be widened (lowered) to allow greater range of acceptance for positioning. This will directly affect CN013 setting and should not be used until CN013 adjustments are proven to not be enough tolerance for the application.


text:
THE XÈTÁN ANGELS
The Xètán Angels are a magnificent group of human beings who reside in the Kingdom of Xètá situated in the outer regions of the Universe. The Kingdom of Xètá is a very large planet that is home to multiple groups of Angels known as 'Angels of Light'. They are an ancient civilization that pre-dates the Universe who are known for their magical abilities and for their enchanting history.
The Xètán Angels are responsible for the introduction of several children's fables to this planet and these are Aladdin, Alice in Wonderland, Cinderella, Sleeping Beauty, Snow White and the Seven Dwarves all of which are loosely based on actual events that took place on Xètá over a thousand millennia ago. The Xètán Angels are also responsible for introducing several breeds of cats to our planet and they are Persian, Siamese and Egyptian Mau.
There are several Xètán Angels who will soon be acknowledged for their significant contributions to this planet and they are Xètán Angels Zé, Jorat and Phillyda.
The Xètán Angels have a pivotal role in our planet's enlightenment transition alongside the Andromeda Angels, the Árian Angels, the Fárian Angels and the Ômega Angels.
Reference: The Age of Enlightenment
Copyright © Cynthia A. Silk 2018. All Rights Reserved.


text:
Bile esculin agar
Composition and process
Bile salts are the selective ingredient, while esculin is the differential component. Enterococcus hydrolyze esculin to products that react with ferric citrate in the medium to produce insoluble iron salts, resulting in the blackening of the medium.
Test results must be interpreted in conjunction with gram stain morphology.
Bile Esculin Agar is used primarily to differentiate Enterococcus from Streptococcus. Members of the genus Enterococcus are capable of growing in the presence of 4% bile (oxgall) and hydrolyzing esculin to glucose and esculetin. Esculetin combines with ferric ions to produce a black complex.
For some purposes, certain bacteria are able to hydrolyze aesculin. A plate containing aesculin will fluoresce a pale blue under UV radiation. Some bacteria can hydrolise this, leading to UV dark colonies, as opposed to UV light ones.
When new techniques are produced to identify enterococci, they are often compared to the use of bile esculin agar.
- "BSCI424 Laboratory Media". Retrieved 2008-11-18.
- Lindell SS, Quinn P (May 1975). "Use of bile-esculin agar for rapid differentiation of Enterobacteriaceae". J. Clin. Microbiol. 1 (5): 440–3. PMC 275140. PMID _PHONE_.
- Grabsch EA, Ghaly-Derias S, Gao W, Howden BP (December 2008). "Comparative study of selective chromogenic (chromID VRE) and bile esculin agars for isolation and identification of vanB-containing vancomycin-resistant enterococci from feces and rectal swabs". J. Clin. Microbiol. 46 (12): 4034–6. doi:10.1128/JCM.00944-08. PMC _PHONE_. PMID _PHONE_.

source: HuggingFaceFW/fineweb-edu


text:
Marathon is a city on Knight's Key, Boot Key, Key Vaca, Fat Deer Key, Long Point Key, Crawl Key and Grassy Key islands in the middle Florida Keys, in Monroe County, Florida, in the United States. As of the 2000 census, the city had a total population of 10,255. As of 2005, the population recorded by the U.S. Census Bureau is 10,626.
Aviation Accident Litigation Lawyers In Marathon Florida
What is aviation accident litigation?
Cases involving individuals who have been injured in crashes and collisions involving commercial airlines and private airplanes. An aviation Accident is an occurrence associated with the operation of an aircraft which takes place between the time any person boards the aircraft with the intention of flight and all such persons have disembarked, in which a person is fatally or seriously injured, the aircraft sustains damage or structural failure and/or the aircraft is missing or is completely inaccessible.
Answers to aviation accident litigation issues in Florida


Take the 2-minute tour ×
I'm looking for a word which describes a certain motion, a way of moving. Namely, I'm searching for a word which describes how a kaleidoscope moves when you turn it, or how a web moves when you pinch it in one location and drag that point around. This motion is distinctive in that if one location in the object moves then every other point moves in a complicated but, nonetheless, a systematic and fluid way.
I will be very sad if no such word exists.
I'm going to ask that everyone ignore my web analogy. That motion is distinctive to the idea I'm trying to capture. Here are a couple gifs that exemplify what I have in mind:
In addition to what I have said, this movement is interesting in that moving one point causes all the other points to move, but changing the root point you move does not alter how the other points were moving when you were moving the original vantage point.
I think I'll have to give up and just go with kaleidoscopic.
share|improve this question
'Kaleidoscope' means either the instrument, or 'any complex pattern of frequently / constantly changing shapes and colours' (or 'a complicated set of circumstances') [AHDEL] – Edwin Ashworth Apr 9 at 21:04
Sphere is animated hyperbolic tessellation. 4-d Rotation is animated topological transformation. Kaleidoscope is animated Cartesian tessellation. – Aaron K Apr 9 at 22:41
The sphere gif reminds me of a gyroscope. – JLG Apr 9 at 23:45
6 Answers 6
up vote 2 down vote accepted
I do not think that the motion in webs and kaleidoscopes are described by exactly the same phenomenon. I think that Voronoi Diagrams and Delaunay Triangulation would be most interesting to your inquiry about webs. I would call their motion "Voronoi optimizations." Hyperbolic tessellations are more closely related to kaleidoscopes and I would describe their motion as simply "kaleidoscopic."
share|improve this answer
youtube.com/watch?v=ly8tgaswRo8 An nice example of a Voronoi / Delaunay Triangulation Optimization Diagram as an animation/musical toy iApp. – Aaron K Apr 9 at 22:33
Everything you've mentioned is interesting. And I feel like moving hyperbolic tessellations capture what I want (or higher-dimensional analogs). I guess I'll have to settle for kaleidoscopic. – Bryan Apr 9 at 22:41
I'm sure it will be better than "Voronoi/Delaunay Triangulation Optimization Diagram-ic" would be. – Oldcat Apr 9 at 23:27
These are not specific to that kind of movement, but:
 - meshed
 - harmonious/harmonized - if you're emphasizing the beauty/symmetry, I'd favor this
 - synchronized
share|improve this answer
"Kinematic" might be applicable in this case. Let me know what you think of that word as a solution to your query.
share|improve this answer
Unfortunately, I can't find anything that defines this word independently of 'kinematics' which is a field of study of body movements. Can you define it for me? – Bryan Apr 9 at 22:34
I think the words transformation, distortion, and permutation are all suitable. Even diffusion and refraction works. These are all utilitarian but easily understood.
I however like phantasmagorial
 - a confusing or strange scene that is like a dream because it is always changing in an odd way.
 - a constantly changing medley or real or imagined images (as in a dream)
share|improve this answer
This almost fits what I want, but I don't want the overtones of 'phantasm' or 'other-wordly.' – Bryan Apr 9 at 22:35
Consider simply using "kaleidoscopic."
kaleidoscopic: changing form, pattern, color, etc., in the manner of a kaleidoscope.
share|improve this answer
Psychedelic is often associated with the vivid colours and complex patterns of a kaleidoscope. If you added kinetic as in kinetic art I think that would paint a appropriate image.
share|improve this answer
Your Answer


text:
Registration for 3D model of human atlas based on vertex information
Journal: Yiyong Shengwu Lixue/Journal of Medical Biomechanics
Objective: To develop a registration method for 3D human atlas models by using geometric information of the vertices so as to lay a foundation for statistical modeling of atlas. Methods: Based on CT images of the normal human, thirty 3D models of human atlases were created and marked by the manual selected points, including 1 standard module, 20 training sets and 9 testing samples. The training sets were first registered with the standard module, including calculation on geometric information of the individual vertex and optimization process of weight coefficients in the registration models. By minimizing the energy function defined with the Euclidean distances between the automatic registered points and the manual selected points in training sets, the optimized weight coefficients could be obtained. The testing samples were then registered with the standard module to calculate the Euclidean distances between the automatic registered points and the manual selected points. The results were then compared with the training sets to evaluate the stability of the registration method. Results: The registration function and the corresponding optimized weight coefficients were obtained, and the average errors for the training sets and testing samples were 1.983 mm and 2.045 mm, respectively. Further statistical analysis showed that there were no obvious differences in the error distributions among the training sets and testing samples. Conclusions: The accuracy and stability of the proposed registration method meet the requirement in medical applications, and it can provide automatic registration of points of interest on human atlas models and be used for element classification in statistical modeling.


text:
Interior: Plants warrant federal protection
The federal government has declared two western Colorado wildflowers to be candidates for protection under the Endangered Species Act, conservation groups say.
Interior Secretary Ken Salazar determined the skiff milkvetch and Scholl's milkvetch warrant but can't be listed for protection because of higher priorities, WildEarth Guardians and the Center for Native Ecoystems said in a news release.
Colorado is the only state where the plants are found, the groups said. The skiff milkvetch, which gets its name from its boat-shaped fruits, occupies just 83 acres in Gunnison and Saguache counties. Schmoll's milkvetch has a total of four populations, and is found on mesa tops in Mesa Verde National Park and the Ute Mountain Ute reservation.
Drought, climate change and proliferation of cheatgrass, a nonnative species, are considered threats to both plants. Livestock grazing, development, and roads and trails are among other threats to the skiff milkvetch, the groups say.


text: The history of the kingdom of Yaxchilan, situated on the banks of the Usumacinta River, extends for about 450 years, from 359AD until 808 AD, when it was gradually abandoned and swallowed by the inexorable jungle. It was not until 1892 when Alfred Maudsley became one of the first Europeans to admire the wonderful constructions, stelae and lintels. The Structure 12, with its façade towards the sunrise, is the construction from which the Lintel 48 comes from, which contains an initial set date whose glyphs are represented by heads and four periods of time (baktun, k'atun, winal and k'in) recorded with full body animal figures. The Long Count Calendar is 126.96.36.199.16, the equivalent to February 11, 526 AD, with the Calendar Round 2 Kib '19 Paax.Dra. Federica Sodi MirandaColaboradores: Arqlgo. Hugo Herrera Torres Araceli Ruiz Peláez Mtro. Hugo García Capistran.


text:
|Uploaded:||January 16, 2010|
|Updated:||January 16, 2010|
In this lesson you will learn to draw Professor X of the X-Men. First off, his real name is Charles Francis Xavier and as leader of the X-Men. He is paraplegic and has the power to read and influence human minds. He has gone through many different versions, most notably as the character from the films as played by the noble Welshman, Mr. Patrick Stewart. Xavier's goals are to promote the peaceful affirmation of mutant rights, to mediate the co-existence of mutants and humans and to protect society from antagonistic mutants, including his old friend, the militant Magneto. To achieve these aims, he founded Xavier's School for Gifted Youngsters (later named the Xavier Institute) to teach mutants to explore and control their powers. Its first group of students was the original X-Men. Xavier's students consider him a visionary and often refer to their mission as "Xavier's dream". He is highly regarded by others in the Marvel universe, respected by various governments and trusted by several other superhero teams, including the Avengers and the Fantastic Four. So, without further ado, let's draw!


text:
In 2022, with support from Enabel under the Skills Development Fund, Rwenzori Forum for Peace and Justice (RFPJ) partnered with Bulhalho Foundation to implement a project titled "Enhanced livelihood skills of 135 urban youth and 90 vulnerable women in and around Fort Portal Tourism City through small scale urban farming." The project offered urban farming skills to 225 (44 males & 181 females) local farmers in rabbit farming, piggery, vegetable, mushroom, and watermelon growing in 12 Wards in Fort Portal City and 03 Sub-Counties in Kabarole District. The project strengthened the capacity of the beneficiaries in selected small scale agricultural enterprises, enhanced their entrepreneurship skills, and supported them with agricultural inputs and tools to start small scale agricultural enterprises for sustained livelihoods.
Overall, the project sought to enhance market-oriented skills among the beneficiaries through offering work-based learning and by extension, to enhance their employability and graduation from vulnerability to resilience. It extensively achieved the following result areas; improved market-relevant agro-enterprise skills; improved competitiveness in the agricultural trades undertaken by youth and women; and enhanced livelihood options as well as social and economic resilience of selected vulnerable youths and women within the target area.
All successful project beneficiaries were assessed by the Directorate of Industrial Training (DIT) and were certified as trained farmers in Fort Portal City and Kabarole district.


Character Bio
Anthenia (Twin)
Anthenia is one of the twin daughters of Medusa. A good aligned sorceress, she chooses the path of the goddess Gaia (Gaea). Her gift to communicate to almost any animal is unrivaled. Anthenia has a unique ability do what has been labeled as multi spells or speed casting. Chaining spells by quickly speaking incantations or weaving symbols. Soft-spoken and kind-hearted, she is the mirror image of what her mother once was. Playing in the woods one day, they were approached by a kind and beautiful female stranger. The stranger showed the young girls how to fight and how to shoot a bow. She would visit them from time to time in the woods, in the same place every day. It was here where they would learn what it was like to be a young lady. Things Pel could not teach them. This stranger turned out to be Artemis, who know of the children and the plight that they and their mother had been bewitched. This guided hand helped both Race and Anthenia to choose their own paths. Race, the path of the warrior, and Anthenia, the sorceress of the wood. The two of them also have their mother's unique gift of turning those that look at them into stone. The two of them were curious and spirited. Pel, knowing that they would not be held back, instructed them to carve their own masks from the dark gray bark of the Dimble trees that line the forest. This way their true nature could remain hidden as they walked among the others.
Race: Humanoid
Class: Sorceress
Abilities: Arcana, Acrobatics, Nature
Physical Traits:
Height: 6′ 1″
Weight: 190 lbs.
Eye color: Hazel
Hair: Snakes (Purple and White)
Skin color and type: Fair
Weapons: Wood Staff
Leave a Reply
You are commenting using your account. Log Out / Change )
Google photo
Twitter picture
Facebook photo
Connecting to %s
%d bloggers like this:


text:
CISAC - Publications Page
This article presents a method developed to assess laser Directed Energy Weapon engagements. This method applies physics-based models, which have been validated by experiments. It is used to assess the capabilities of the Airborne Laser (ABL), a system for boost phase missile defense purposes, which is in development under supervision of the U.S. missile defense agency. Implications for international security are presented.


Next: , Previous: Revision Control, Up: Merging with patch
10.3 Applying Imperfect Patches
patch tries to skip any leading text in the patch file, apply the diff, and then skip any trailing text. Thus you can feed a mail message directly to patch, and it should work. If the entire diff is indented by a constant amount of white space, patch automatically ignores the indentation. If a context diff contains trailing carriage return on each line, patch automatically ignores the carriage return. If a context diff has been encapsulated by prepending ' to lines beginning with '-' as per Internet RFC 934, patch automatically unencapsulates the input.
However, certain other types of imperfect input require user intervention or testing.


text:
Catholics and Lutherans Growing Together in Faith
On October 31, 2016 Pope Francis, LWF President Bishop Dr Munib A. Younan and General Secretary Rev. Dr Martin Junge led an Ecumenical Commemoration of the Reformation in anticipation of the 500th anniversary of the Reformation in 2017. It highlighted the solid ecumenical developments between Catholics and Lutherans and the joint gifts received through dialogue.
During this year leading up to October 31, 2017, the Vatican and Lutheran World Federation, National Church offices, and dioceses and synods throughout the world will provide opportunities for Lutherans and Catholics together to affirm the gifts of the Reformation, to seek forgiveness from one another and to commit to common witness.
Check this page often for resources and upcoming events.
Please wait while we gather your results.
Various articles to explain the upcoming 500th anniversary of the Reformation in 2017.
Eco-Reformation: Bringing Grace and Hope to the Care for Our Common Home: Catholic and Lutheran Perspectives on Laudato Si.
These study guides and resources can be used to promote dialogue between Catholic and Lutheran Congregations.
Catholics and Lutherans Growing Together in Faith. The Archdiocese and the ELCA are planting trees as a sign of our common commitment to service and care for creation.


node package manager
Introducing npm Enterprise add-ons. Integrate third-party dev tools into npm…
stream-pipeline
Efficient way of connecting disparate streams
pipeline
Efficient way of connecting disparate streams
When you want to connect several disparate pipes in a configuration driven way use this tool. Disparate here means pipes that at the end should buffer completely.
a => b => c wait for c to end then c => d => e wait for e to end then e => f => g
How to.
Create a config and pass it in to pipline.
 var pipeline = new Pipeline(
 [
 {
 pipes: [
 through(function(d) {
 d.newData = 1;//Math.random();
 this.queue(d);
 }),
 JSONStream.stringify(),
 ]
 },
 {
 pipes: [
 JSONStream.parse(),
 JSONStream.stringify()
 ]
 },
 {
 pipes: [
 JSONStream.parse()

 ]
 }

 ]
 );

Pipeline exposes the 'in' stream and 'out' stream through two properties.
process.stdout.pipe(pipeline.out);
pipeline.in.write("hello");
The above will break because pipeline.out in the above example is objects. but add in another JSONStream.stringify and you will have a working pipeline.
Pipelines are executed in the array order they are provided.
Please look at the Test file for examples.


Things that weigh a gram
When you don't have a balance in hand but need household items as a reference for a gram, what can you pick that will weigh a gram ?
I've searched my home and checked using an electronic precision scale in order to select what items that weigh 1 gram.
See also the Gram to oz converter at the bottom of this article.
There is my selection:
Household things that weigh a gram
A Dollar note, a paper clip, 2 Paris metro tickets, an England train ticket, the core of a pen Bic Cristal, a small ink cartridge.
 - Any dollar note. According to the US Bureau of Engraving and Printing, a dollar bill weighs exactly one gram. This is the same for any dollar note. I've checked by myself and this is true.
 - A paper clip
 - a small ink cartridge for fountain pen (picture: pelican 4000)
 - Two paris metro tickets. One of those tickets only weigh half a gram. If one day you visit this city, you may end up with some in your pocket.
 - a 2″ birthday candle. Preferably not used.
 - A UK train tickets. That is also true for a tube ticket, or Underground, the metro of London. If you are one of the 6 million tourists that visit this city every year, you will bring some of those in your souvenirs.
 - The core of a Bic Cristal ballpoint pen
There are plenty of other items that are notoriously weighing a gram but I haven't checked by myself:
a coin of one Yen of Japan, one fifth of a sheet of paper, a pinch of salt, a raisin, a stick of gum, 1 milliliter of water or 1/3 or teaspoon of water.
What is a gram?
The word "gram" comes from Latin "gramma", meaning 'small weight'.
It is abbreviated g, not to be confused with a "grain" that is a unit of measure of a grain of cereal (wheat or barley) but also for gold nuggets and abbreviated gr.
The gram is the smallest unit of weight in the Metric System. It is equivalent of the weight of a cubic centimeter of pure water at 4 degrees Celsius, or 1 milliliter (1/1000 litre) of water.
Smaller units are expressed in fractions of grams, e.g. a milligram (mg) is a thousandth of gram, and higher units are multiple, like a Kilogram (or a Kilo, abbrev. Kg) is a thousand grams.
A metric ton is a thousands of Kilograms, which means it weighs a million grams.
The gram is commonly used in pharmaceuticals, for the weighing of molecules in medicines and tablets (eg Penicilin 500mg) and in nutrition labels for food products.
Conversion of a gram
1 gram is equivalent of 0.0353 dry ounces, 0.002 pound.
1 stone = 14 Pounds (lb) = 224 ounces (oz) = 6,350.3 g
1 lb = 16 oz = 453.6 g
1 oz = 28.35 g
1 troy ounce, the units used for precious metals (Gold, Silver, Palladium and Platinum) = 31.1035 g
For more information about the Gram and the metric system, feel free to see the Wikipedia page about those topics.
If you want to convert any weight in gram, use this converter:

or try this online Grams to Ounce Converter.
Time to Get on the Scales: the Importance of Weighing Eggs
UK – Aviagen explains how weighing eggs can tell you a lot about the needs of your birds.
For all the mechanical sensors (thermometers, humidity sensors, air quality sensors and even weighing scales) that can be installed in a house, the best sensors of all are the birds themselves. Observing their movements, their positioning on the floor, other behaviour and even their produce (eggs) can tell you a lot about their needs.
Aviagen
Information on egg weights can be invaluable
Whilst weighing eggs and monitoring changes in egg weight might not seem a priority, the information which can be gained from this practice can be invaluable.
The key is to combine monitoring of daily egg weight with trends in bodyweight. Egg weight and changes in egg weight can often be an early indicator of less than optimum nutrition intake.
A change in egg weight will be noted before an effect on production occurs. A drop in egg weights implies inadequate nutrition, while over-feeding and excess nutrient intake will lead to a rise in egg weight.
Using daily egg weight in conjunction with bodyweight trends provides the farm manager with information which will allow any issues to be detected early, aiding accurate management decisions of bird feed allocation during production.
U.K.: Use of a weighing scale to measure political correctness
There is a tradition in High Wycombe, United Kingdom that consist in weighing the ruling politicians in public in order to see if politicians and dignitaries have been "overindulging" during their time in office.

Mayor of High Wycombe is weighed-in
Mayor of High Wycombe is weighed-in
This year, the newly elected mayor, Cllr Hanif said he is proud to become the new mayor of the town and wants traditions like the mayor weigh-in event to continue.
According to folklore, the ceremony began when a visiting monarch observed the mayor being drunken disorderly and declared that any future mayors will be weighed at the start and end of their tenure.
Source: Bucks Free Press

China: customer pays brand new car with 660,000 coins
In China, a man went into a car dealer showroom in Shenyang to buy a brand new car. He did pay the full price for the vehicle with coins and only a few bank notes. As you can imagine, this turned A LOT of heads in the dealership. If you want to get a new car, without all the hassle, you could check out a vehicle finance calculator. This will allow you to pay in monthly instalments, leaving you money for the better things in life! Paying full price can be daunting in itself, but imagine paying full price in coins. In America, not many would think about paying that much for used cars in Kansas or anywhere else using that method. We can only hope that he was able to get gap insurance once he made this purchase since it covers his car once it begins to depreciate – see more about gap insurance at _URL_
The full payment from Mr. Gan weighed at least four tons. More than 10 employees went through 1,320 bundles of coins wrapped in brown paper, which placed in a pile stood over 12 feet tall. It took several hours for them to count and filter the coins until they emptied Gan's truck, according to Shanghaiist.
Chinese often pay large amounts with only coins
The buyer used that pile of coins to purchase a SUV that cost $109,700 (680,000 yuan). He paid $106,480 (660,000 yuan) with coins and the rest of the amount with small bank notes.
Gan said that he was saving the money over the years. Because he works in a gas station, he would most often receive payments in small coins and small denominations notes. "Our station is in the suburbs, there are very few banks. So we didn't deposit the coins and decided to use them to buy a car for our company," he said, according to the BBC.
In order to be considerate, Gan took care to tell the car dealership about his method of payment ahead of time. He feared to be turned away, but the car dealer gladly accepted it and was prepared for his arrival with weighing scales and a full-service staff, according to News Corp Australia.
Chinese media reported that this is not an unusual event in China to pay big tickets items with large hoard of coins. The down payment for an apartment was paid by a man in Fujian using 100,000 coins, and a woman in Zhengzhou paid for a BMW in a manner similar to Gan, according to World Car Fans.
Source: HNGN
spring scales

Spring scales are weighting balances that need to be hung to make their measurements. They are made of a spring with a loop at the top end for fixing and a hook at the other end to hang what need to be weighted.
Spring Scale
pocket balance
The first record of a spring balance is found in Great Britain around 1770 near Wolverhampton. The inventor incorporated the company of George Salter & Co., who patented the spring balance in 1838.
A spring scale is are also called Spring Balance is very simple: it only uses gravity and Hookes law to operate.
However, it only measure mass (the force of gravity) and not weight and the reading may depend of where you are on the Earth surface. For that reason they are marked with a mention similar to: "no legal for trade".
Because of their simplistic conception, competitive cost, robustness, ease of use and rapidity, it is a very popular way to take quick measurements that don't need to be 100% accurate, like babies weighting in developing countries up to silo storage loads in farms.

Annual Weight-in at the London Zoo
Once a year every year, all the crew of the London Zoo is on the deck for the annual weigh-in of the 19,000 animals residents of the ZSL London Zoo.
From tiny frogs to Lions, Giraffes and Elephants, all animals need to be weighted in order to monitor their well-being.
This exercise requires all sorts of scales and balances adapted to each animal size. Zoo keepers have to be creative in order to get the creatures let them take their measurements.
The data collected is then shared


text:
You must know that a hemisphere is a half of a sphere. Below are the formulas to find the curved surface area of a hemisphere (without the base circle area) and the total surface area of a hemisphere (with the base circle area).
Curved Surface Area of Hemisphere:
You must know that the surface area of a sphere is 4πr². A hemisphere is half of a sphere, this must mean that the curved surface area of a hemisphere is 2 divide by the surface area of a sphere. That is; 4πr²/2 which gives the following expression.
Total Surface Area of Hemisphere
If you're to take into consideration the base circle below the curve meaning the total surface area. The surface area would be a combination of the above area and the area of the circle. As simple as that!. The area of the circle is πr². This means the total surface area is 2πr² + πr². If we simplify this gives 3πr² as expressed below.
Remember there is a difference between the curved surface area and the total surface area. The total surface area includes the base circle below the hemisphere and the curve surface area does not, it's just the curve of the hemisphere.


I'm unsure
{absolute_results} not working properly
Hi Low
I'm getting some strange behaviour when using the {absolute_results} variable in Low Alphabet with pagination.
What seems to happen is that when a paginated alpha group is first loaded it shows the correct number of entries... but at some stage when clicking up and down through the result pages, the tag stops working and displays the count of entries on the current page, rather than the total number of results across the entire paginated set.
So it starts off working okay, but then at some point stops working. Instead of {absolute_results} it starts to show {total_results} instead.
I hope that makes some kind of sense. It's a bit hard to explain... but I'd be interested to see if you can replicate this issue on your own system.
1 person has
this problem
 - Low (Official Rep) July 19, 2011 14:58
 Hey Andrew,
 That's pretty strange indeed. Let's narrow this down a bit.
 1. When it happens, does it happen at the same URL all the time? Or is it intermittent?
 2. What version of EE are you using?
 3. Can you replicate this behaviour with a regular channel:entries tag?
 Low Alphabet simply collects the entry_ids of the entries to display and then passes them on to the Channel module, which takes care of the parsing of variables etc. Including the {absolute_results} and {total_results} vars. So in theory, Low Alphabet shouldn't affect it...
 - (some HTML allowed)
 How does this make you feel?
 Add Image


Skip to main content
Generate random strings in Python
Project description
rstr is a helper module for easily generating random strings of various types. It could be useful for fuzz testing, generating dummy data, or other applications.
It has no dependencies outside the standard library, and is compatible with Python 3.
A Word of Caution
By default, rstr uses the Python random module to generate psuedorandom text. This module is based on the Mersenne Twister and is not cryptographically secure.
If you wish to use rstr for password-generation or other cryptographic applications, you must create an instance that uses SystemRandom.
For example:
>> from rstr import Rstr
>> from random import SystemRandom
>> rs = Rstr(SystemRandom())
The basic method of rstr is rstr(). At a minimum, it requires one argument, an alphabet of characters from which to create a string.
>>> import rstr
>>> rstr.rstr('ABC')
By default, it will return a string between 1 and 10 characters in length. You may specify an exact length by including it as a second argument:
>>> rstr.rstr('ABC', 4)
You can also generate a range of lengths by adding two arguments. In the following case, rstr will return a string with a randomly selected length between 5 and 10 characters.
>>> rstr.rstr('ABC', 5, 10)
It's also possible to include particular characters in your string. This is useful when testing a validator to make sure that certain characters are rejected. Characters listed in the 'include' argument will always be present somewhere in the resulting string.
>>> rstr.rstr('ABC', include='&')
Conversely, you can exclude particular characters from the generated string. This is helpful when starting with a pre-defined population of characters.
>>> import string
>>> rstr.rstr(string.digits, exclude='5')
Note that any of the arguments that accept strings can also accept lists or tuples of strings:
>>> rstr.rstr(['A', 'B', 'C'], include = ['@'], exclude=('C',))
Other methods
The other methods provided by rstr, besides rstr() and xeger(), are convenience methods that can be called without arguments, and provide a pre-defined alphabet. They accept the same arguments as rstr() for purposes of specifying lengths and including or excluding particular characters.
The characters provided by string.letters in the standard library.
The characters provided by string.uppercase in the standard library.
The characters provided by string.lowercase in the standard library.
The characters provided by string.printable in the standard library.
The characters provided by string.punctuation in the standard library.
The characters provided by string.printable in the standard library, except for those representing whitespace: tab, space, etc.
The characters provided by string.digits in the standard library.
The characters provided by the concatenation of string.letters and string.punctuation in the standard library.
The characters provided by the concatenation of string.digits and string.punctuation in the standard library.
Characters commonly accepted in text input, equivalent to string.digits + string.letters + ' ' (the space character).
Characters that are safe for use in postal addresses in the United States: upperand lower-case letters, digits, spaces, and the punctuation marks period, hash (#), hyphen, and forward-slash.
Characters safe (unreserved) for use in URLs: letters, digits, hyphen, period, underscore, and tilde.
Characters that are allowed for use in hostnames, and consequently, in internet domains: letters, digits, and the hyphen.
Inspired by the Java library of the same name, the xeger() method allows users to create a random string from a regular expression.
For example to generate a postal code that fits the Canadian format:
>>> import rstr
>>> rstr.xeger(r'[A-Z]\d[A-Z] \d[A-Z]\d')
u'R6M 1W5'
xeger works fine with most simple regular expressions, but it doesn't support all Python regular expression features.
Custom Alphabets
If you have custom alphabets of characters that you would like to use with a method shortcut, you can specify them by keyword when instantiating an Rstr object:
>>> from rstr import Rstr
>>> rs = Rstr(vowels='AEIOU')
>>> rs.vowels()
You can also add an alphabet to an existing instance with the add_alphabet() method:
>>> rs.add_alphabet('odds', '13579')
>>> rs.odds()
You can combine rstr with Python's built-in string formatting to produce strings that fit a variety of templates.
An email address:
A postal address:
"""{0} {1}
{2} {3}
{4}, {5} {6}
""".format(rstr.letters(4, 8).title(),
 rstr.letters(4, 8).title(),
 rstr.digits(3, 5),
 rstr.letters(4, 10).title(),
 rstr.letters(4, 15).title(),
Project details
Download files
Files for rstr, version 2.2.6
Filename, size File type Python version Upload date Hashes
Filename, size rstr-2.2.6-py2.py3-none-any.whl (18.2 kB) File type Wheel Python version 2.7 Upload date Hashes View
Filename, size rstr-2.2.6.tar.gz (11.2 kB) File type Source Python version None Upload date Hashes View
Supported by


How to add/subtract Hour, Minute, Second, Millisecond, Microsecond and Nanosecond to a date in Go Language
Hello everyone, In this tutorial, we will learn how to add/subtract Hour, Minute, Second, Millisecond, Microsecond and Nanosecond to date in Go Language.
The time package in Go language provides Add() function which is used to add/subtract a duration to time t. Since duration can be represented in hours, minutes, seconds, milliseconds, microseconds and nanoseconds,
The signature of the Add method is:
func (t Time) Add(d Duration) Time
Example 1: Go Program to add/subtract minutes.
package main
import (
"fmt"
"time"
)
func main() {
//Current date and time
dt1 := time.Now()
fmt.Println("Current date and time : ", dt1)
//Adding 30 minutes
dt2 := dt1.Add(30 * time.Minute)
fmt.Println("After 30 minutes:", dt2)
//Subtract 3 minutes
dt3 := dt1.Add(-3 * time.Minute)
fmt.Println("Before 3 minutes:", dt3)
}
Output:
Example 2: Go Program to add/subtract seconds.
package main
import (
"fmt"
"time"
)
func main() {
//Current date and time
dt1 := time.Now()
fmt.Println("Current date and time : ", dt1)
//Adding 120 seconds
dt2 := dt1.Add(120 * time.Second)
fmt.Println("After 120 seconds:", dt2)
//Subtract 170 seconds
dt3 := dt1.Add(-170 * time.Second)
fmt.Println("Before 170 seconds:", dt3)
}
Output:
Example 3: Go Program to add/subtract milliseconds.
package main
import (
"fmt"
"time"
)
func main() {
//Current date and time
dt1 := time.Now()
fmt.Println("Current date and time : ", dt1)
//Adding 1200 Milliseconds
dt2 := dt1.Add(1200 * time.Millisecond)
fmt.Println("After 1200 Milliseconds:", dt2)
//Subtract 1700 Milliseconds
dt3 := dt1.Add(-1700 * time.Millisecond)
fmt.Println("Before 1700 Milliseconds:", dt3)
}
Output:
Example 4: Go Program to add/subtract microseconds.
package main
import (
"fmt"
"time"
)
func main() {
//Current date and time
dt1 := time.Now()
fmt.Println("Current date and time : ", dt1)
//Adding 12000 Microseconds
dt2 := dt1.Add(12000 * time.Microsecond)
fmt.Println("After 12000 Microseconds:", dt2)
//Subtract 12000 Microseconds
dt3 := dt1.Add(-12000 * time.Microsecond)
fmt.Println("Before 12000 Microseconds:", dt3)
}
Output:
Example 5: Go Program to add/subtract nanoseconds.
package main
import (
"fmt"
"time"
)
func main() {
//Current date and time
dt1 := time.Now()
fmt.Println("Current date and time : ", dt1)
//Adding 120000 Nanoseconds
dt2 := dt1.Add(120000 * time.Nanosecond)
fmt.Println("After 120000 Nanoseconds:", dt2)
//Subtract 120000 Nanoseconds
dt3 := dt1.Add(-120000 * time.Nanosecond)
fmt.Println("Before 120000 Nanoseconds:", dt3)
}
Output:
Author Name: Ram
Popular posts from this blog
Learn Java 8 streams with an example - print odd/even numbers from Array and List
Spring boot video streaming example-HTML5
Spring Boot + Mockito simple application with 100% code coverage
Spring Boot + OpenCSV Export Data to CSV Example
Custom Exception Handling in Quarkus REST API
Registration and Login with Spring Boot + Spring Security + Thymeleaf
DataTable-Pagination example with Spring boot, jQuery and ajax
Spring Webflux File Download - REST API Example
Node JS mini projects with source code - free download
ReactJS, Spring Boot JWT Authentication Example


Definition of:edge connector
edge connector
The protruding part of an expansion board that is inserted into an expansion slot. It contains a series of printed lines that go to and come from the circuits on the board. The number of lines (pins) and the width and depth of the lines are different on the various interfaces (ISA, EISA, PCI, Micro Channel, etc.).
Edge Connector
Edge connectors are very popular because they are "printed" onto the outer layers of the board in the same process that creates the circuit lines.
Plug In Cartridges
Edge connectors provide a simple connection mechanism for cartridges such as these educational programs for preschoolers.


, df) b = _Bunch() b.statistic = statistic b.pvalue = pvalue b.df = df return b
[docs] def homogeneity(self, method="stuart_maxwell"): """ Compare row and column marginal distributions. Parameters ---------- method : string Either 'stuart_maxwell' or 'bhapkar', leading to two different estimates of the covariance matrix for the estimated difference between the row margins and the column margins. Returns a bunch with attributes: statistic : float The chi^2 test statistic pvalue : float The p-value of the test statistic df : integer The degrees of freedom of the reference distribution Notes ----- For a 2x2 table this is equivalent to McNemar's test. More generally the procedure tests the null hypothesis that the marginal distribution of the row factor is equal to the marginal distribution of the column factor. For this to be meaningful, the two factors must have the same sample space (i.e. the same categories). """ if self.table.shape[0] < 1: raise ValueError('table is empty') elif self.table.shape[0] == 1: b = _Bunch() b.statistic = 0 b.pvalue = 1 b.df = 0 return b method = method.lower() if method not in ["bhapkar", "stuart_maxwell"]: raise ValueError("method '%s' for homogeneity not known" % method) n_obs = self.table.sum() pr = self.table.astype(np.float64) / n_obs # Compute margins, eliminate last row/column so there is no # degeneracy row = pr.sum(1)[0:-1] col = pr.sum(0)[0:-1] pr = pr[0:-1, 0:-1] # The estimated difference between row and column margins. d = col - row # The degrees of freedom of the chi^2 reference distribution. df = pr.shape[0] if method == "bhapkar": vmat = -(pr + pr.T) - np.outer(d, d) dv = col + row - 2*np.diag(pr) - d**2 np.fill_diagonal(vmat, dv) elif method == "stuart_maxwell": vmat = -(pr + pr.T) dv = row + col - 2*np.diag(pr) np.fill_diagonal(vmat, dv) try: statistic = n_obs * np.dot(d, np.linalg.solve(vmat, d)) except np.linalg.LinAlgError: import warnings warnings.warn("Unable to invert covariance matrix", SingularMatrixWarning) b = _Bunch() b.statistic = np.nan b.pvalue = np.nan b.df = df return b pvalue = 1 - stats.chi2.cdf(statistic, df) b = _Bunch() b.statistic = statistic b.pvalue = pvalue b.df = df return b
[docs] def summary(self, alpha=0.05, float_format="%.3f"): """ Produce a summary of the analysis. Parameters ---------- alpha : float '1 - alpha' is the nominal coverage probability of the interval. float_format : string Used to format numeric values in the table. method : string The method for producing the confidence interval. Currently must be 'normal' which uses the normal approximation. """ fmt = float_format headers = ["Statistic", "P-value", "DF"] stubs = ["Symmetry", "Homogeneity"] sy = self.symmetry() hm = self.homogeneity() data = [[fmt % sy.statistic, fmt % sy.pvalue, '%d' % sy.df], [fmt % hm.statistic, fmt % hm.pvalue, '%d' % hm.df]] tab = iolib.SimpleTable(data, headers, stubs, data_aligns="r", table_dec_above='') return tab
[docs]class Table2x2(SquareTable): """ Analyses that can be performed on a 2x2 contingency table. Parameters ---------- table : array-like A 2x2 contingency table shift_zeros : boolean If true, 0.5 is added to all cells of the table if any cell is equal to zero. Attributes ---------- log_oddsratio : float The log odds ratio of the table. log_oddsratio_se : float The asymptotic standard error of the estimated log odds ratio. oddsratio : float The odds ratio of the table. riskratio : float The ratio between the risk in the first row and the risk in the second row. Column 0 is interpreted as containing the number of occurences of the event of interest. log_riskratio : float The estimated log risk ratio for the table. log_riskratio_se : float The standard error of the estimated log risk ratio for the table. Notes ----- The inference procedures used here are all based on a sampling model in which the units are independent and identically distributed, with each unit being classified with respect to two categorical variables. Note that for the risk ratio, the analysis is not symmetric with respect to the rows and columns of the contingency table. The two rows define population subgroups, column 0 is the number of 'events', and column 1 is the number of 'non-events'. """ def __init__(self, table, shift_zeros=True): if type(table) is list: table = np.asarray(table) if (table.ndim != 2) or (table.shape[0] != 2) or (table.shape[1] != 2): raise ValueError("Table2x2 takes a 2x2 table as input.") super(Table2x2, self).__init__(table, shift_zeros)
[docs] @classmethod def from_data(cls, data, shift_zeros=True): """ Construct a Table object from data. Parameters ---------- data : array-like The raw data, the first column defines the rows and the second column defines the columns. shift_zeros : boolean If True, and if there are any zeros in the contingency table, add 0.5 to all four cells of the table. """ if isinstance(data, pd.DataFrame): table = pd.crosstab(data.iloc[:, 0], data.iloc[:, 1]) else: table = pd.crosstab(data[:, 0], data[:, 1]) return cls(table, shift_zeros)
[docs] @cache_readonly def log_oddsratio(self): # docstring for cached attributes in init above f = self.table.flatten() return np.dot(np.log(f), np.r_[1, -1, -1, 1])
[docs] @cache_readonly def oddsratio(self): # docstring for cached attributes in init above return (self.table[0, 0] * self.table[1, 1] / (self.table[0, 1] * self.table[1, 0]))
[docs] @cache_readonly def log_oddsratio_se(self): # docstring for cached attributes in init above return np.sqrt(np.sum(1 / self.table))
[docs] def oddsratio_pvalue(self, null=1): """ P-value for a hypothesis test about the odds ratio. Parameters ---------- null : float The null value of the odds ratio. """ return self.log_oddsratio_pvalue(np.log(null))
[docs] def log_oddsratio_pvalue(self, null=0): """ P-value for a hypothesis test about the log odds ratio. Parameters ---------- null : float The null value of the log odds ratio. """ zscore = (self.log_oddsratio - null) / self.log_oddsratio_se pvalue = 2 * stats.


text:
William Kurelek's Huronia Mission Paintings
This volume presents a biographical synopsis of Kurelek's life and work, to better place each of the 21 paintings in the perspective of the artist's temperament. Each reproduction is followed by a commentary that is a highly informative blend of aesthetics, history, theology, linguistics, geography, and ethnography. The result is a sustained meditation on what actually transpired between the Hurons, Iroquois, and the eight French missionaries who were destined for martyrdom. This volume provides a valuable effort to enter into the vision of Christianity which animates the pictures themselves, and to account for what Kurelek was able to portray about the daily life and spiritual vision of the Jesuits and their companions, about the Hurons and the Iroquois. This book will be a useful introduction to the Christian experiment that was Huronia, and an initial interpretation of Kurelek's paintings. This volume combines an historian's objectivity, a scholar's criticism, and an art lover's enthusiasm.
"... brings together two discerning contemporary chroniclers of the lives of St. Jean [de Brébeuf] and his companions: painter William Kurelek and historian Michael Pomedli.... Professor Pomedli's witness takes the form of narrative commentaries on each of Kurelek's plates, which serve at once to retell the story of St. Jean de Brébeuf and to a lesser extent William Kurelek, and to provide an historical overlay drawing into high relief the complete circumstances, flora and climate, theology and interpretation, event and culture as well as names and dates, of the Huron and Jesuit encounter.... the book is nicely presented and sensitively argued." - The BC Catholic
ISBN10: 0-7734-9731-5 ISBN13: 978-0-7734-9731-3 Pages: 196 Year: 1991


text:
The The Effect of the Kahoot Quiz on the Student's Results in the Exam
Students taking low-stake quizzes in a gamified environment shows improvement on their studies, thus has the potential to be an effective part in an improved learning experience. Previous researches show that implementing gamification into the educational system has positive outcome on the student's engagement, motivation and the overall experience of learning. In this study is a field experiment, where quizzes were created with the Kahoot application, to bring action and visual triggers into the classroom. The aim of this paper to measure the long-term learning effect of the Kahoot quiz in the exams. Several of the quiz questions during the class were purposefully blended into the exam's question bank as a multiple choice or a true or false question. In this research 200 bachelor students participated in a 14-week long elective course. The data was collected weekly from the Kahoot quizzes and from the two mandatory exams. All the results from the Kahoot quiz and the exams provided the base of the analysis. Furthermore, the exam results were analyzed based on number of Kahoot quizzes they took part, a comparison of the results of each question based. The results show that students who took part in more Kahoot quizzes tend to reach higher exam mark. Moreover, they marked more correct answers and less incorrect ones. As a conclusion, using some level of game-based learning has a positive effect on the student's results and perception of learning.


org.scalactic
MapEqualityConstraints
trait MapEqualityConstraints extends AnyRef
Provides an implicit method that loosens the equality constraint defined by TypeCheckedTripleEquals or ConversionCheckedTripleEquals for Scala Maps to one that more closely matches Scala's approach to Map equality.
Scala's approach to Map equality is that if both objects being compared are Maps, the elements are compared to determine equality. This means you could compare an immutable TreeMap and a mutable HashMap for equality, for instance, and get true so long as the two maps contained the same key-value mappings. Here's an example:
scala> import scala.collection.immutable.TreeMap
import scala.collection.immutable.TreeMap
scala> import scala.collection.mutable.HashMap
import scala.collection.mutable.HashMap
scala> TreeMap("one" -> 1, "two" -> 2) == HashMap("one" -> 1, "two" -> 2)
res0: Boolean = true
Such a comparison would not, however, compile if you used === under either TypeCheckedTripleEquals or ConversionCheckedTripleEquals, because TreeMap and HashMap are not in a subtype/supertype relationship, nor does an implicit conversion by default exist between them:
scala> import org.scalactic._
import org.scalactic._
scala> import TypeCheckedTripleEquals._
import TypeCheckedTripleEquals._
scala> TreeMap("one" -> 1, "two" -> 2) === HashMap("one" -> 1, "two" -> 2)
<console>:16: error: types scala.collection.immutable.TreeMap[String,Int] and
 scala.collection.mutable.HashMap[String,Int] do not adhere to the equality constraint selected for
 the === and !== operators; the missing implicit parameter is of type
 org.scalactic.EqualityConstraint[scala.collection.immutable.TreeMap[String,Int],
 scala.collection.mutable.HashMap[String,Int]]
 TreeMap("one" -> 1, "two" -> 2) === HashMap("one" -> 1, "two" -> 2)
 ^
If you mix or import the implicit conversion provided by MapEqualityConstraint, however, the comparison will be allowed:
scala> import MapEqualityConstraints._
import MapEqualityConstraints._
scala> TreeMap("one" -> 1, "two" -> 2) === HashMap("one" -> 1, "two" -> 2)
res2: Boolean = true
The equality constraint provided by this trait requires that both left and right sides are subclasses of scala.collection.GenMap and that an EqualityConstraint can be found for both key types and both value types. In the example above, both the TreeMap and HashMap are subclasses of scala.collection.GenMap, and the regular TypeCheckedTripleEquals provides equality constraints for the key types, both of which are String, and value types, both of which are Int. By contrast, this trait would not allow a TreeMap[String, Int] to be compared against a HashMap[String, java.util.Date], because no equality constraint will exist between the value types Int and Date:
scala> import java.util.Date
import java.util.Date
scala> TreeMap("one" -> 1, "two" -> 2) === HashMap("one" -> new Date, "two" -> new Date)
<console>:20: error: types scala.collection.immutable.TreeMap[String,Int] and
 scala.collection.mutable.HashMap[String,java.util.Date] do not adhere to the equality constraint selected for
 the === and !== operators; the missing implicit parameter is of type
 org.scalactic.EqualityConstraint[scala.collection.immutable.TreeMap[String,Int],
 scala.collection.mutable.HashMap[String,java.util.Date]]
 TreeMap("one" -> 1, "two" -> 2) === HashMap("one" -> new Date, "two" -> new Date)
 ^
Source
MapEqualityConstraints.scala
Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
 1. Alphabetic
 2. By inheritance
Inherited
 1. MapEqualityConstraints
 2. AnyRef
 3. Any
 1. Hide All
 2. Show all
Learn more about member selection
Visibility
 1. Public
 2. All
Value Members
 1. final def !=(arg0: AnyRef): Boolean
 Definition Classes
 AnyRef
 2. final def !=(arg0: Any): Boolean
 Definition Classes
 Any
 3. final def ##(): Int
 Definition Classes
 AnyRef → Any
 4. final def ==(arg0: AnyRef): Boolean
 Definition Classes
 AnyRef
 5. final def ==(arg0: Any): Boolean
 Definition Classes
 Any
 6. final def asInstanceOf[T0]: T0
 Definition Classes
 Any
 7. def clone(): AnyRef
 Attributes
 protected[java.lang]
 Definition Classes
 AnyRef
 Annotations
 @throws( ... )
 8. final def eq(arg0: AnyRef): Boolean
 Definition Classes
 AnyRef
 9. def equals(arg0: Any): Boolean
 Definition Classes
 AnyRef → Any
 10. def finalize(): Unit
 Attributes
 protected[java.lang]
 Definition Classes
 AnyRef
 Annotations
 @throws( classOf[java.lang.Throwable] )
 11. final def getClass(): Class[_]
 Definition Classes
 AnyRef → Any
 12. def hashCode(): Int
 Definition Classes
 AnyRef → Any
 13. final def isInstanceOf[T0]: Boolean
 Definition Classes
 Any
 14. implicit def mapEqualityConstraint[KA, VA, CA[ka, kb] <: GenMap[ka, kb], KB, VB, CB[kb, vb] <: GenMap[kb, vb]](implicit equalityOfA: Equality[CA[KA, VA]], evKey: CanEqual[KA, KB], evValue: CanEqual[VA, VB]): CanEqual[CA[KA, VA], CB[KB, VB]]
 Provides an equality constraint that allows two subtypes of scala.collection.GenMaps to be compared for equality with === so long as an EqualityConstraint is available for both key types and both value types.
 Provides an equality constraint that allows two subtypes of scala.collection.GenMaps to be compared for equality with === so long as an EqualityConstraint is available for both key types and both value types.
 15. final def ne(arg0: AnyRef): Boolean
 Definition Classes
 AnyRef
 16. final def notify(): Unit
 Definition Classes
 AnyRef
 17. final def notifyAll(): Unit
 Definition Classes
 AnyRef
 18. final def synchronized[T0](arg0: ⇒ T0): T0
 Definition Classes
 AnyRef
 19. def toString(): String
 Definition Classes
 AnyRef → Any
 20. final def wait(): Unit
 Definition Classes
 AnyRef
 Annotations
 @throws( ... )
 21. final def wait(arg0: Long, arg1: Int): Unit
 Definition Classes
 AnyRef
 Annotations
 @throws( ... )
 22. final def wait(arg0: Long): Unit
 Definition Classes
 AnyRef
 Annotations
 @throws( ... )
Inherited from AnyRef
Inherited from Any
Ungrouped


text:
New apartment designs for a new era
We're living in a whole new world, and your next multifamily project must follow the new rules of living. People are living, working, and schooling in their homes with the need to keep spaces sanitized, separate, and convenient for living healthy and well.
Multifamily designs for the new normal
The COVID-19 pandemic is forcing us to find safer and smarter ways of building homes. The demand for high-quality housing is continuing to rise and BASE4 is here to help.
Here's what you can do:
- Add desk areas. Everyone is working at home, so you need separate work/study areas with ample plug-ins for everyone's devices.
- Increase storage. It is essential to expand the storage area for holding food, goods and cleaning supplies that will be needed during self-quarantine periods.
- Add outdoor spaces. Create an ample patio and outdoor areas for nature breaks.
- Use simple-to-sanitize materials in the apartment for that easy clean.
- Sanitize the air. Consider using HVAC systems that slow the spread of viruses and germs.
- Separate apartment entrances. Design individual entryways instead of common lobbies.
Must-Have Design Updates for Common Areas
Keep your multi-family building safe from contaminants in common areas, such as laundry, trash/recycling, and bike storage rooms. Here's how:
- Install touch-free door openers.
- Add a sink for handwashing by entryway doors.
- Replace trash, recycling bins, and other communal items with equipment that is made of easy-to-clean materials.
- Limit occupants based on the square footage and social distancing guidelines.
- Perform regular cleanings.
- Disinfect equipment such as washers, dryers, and bike pumps frequently.
- Require the use of masks.
- Provide hand sanitizing stations and cleaning supplies.
Make home a safe space for living, working, and schooling.


text:
This study explored the gendered nature of STEM higher education institution through a feminist critical discourse analysis of STEM course syllabi from a Midwest research university. I explored STEM syllabi to understand how linguistic features such as stance and interdiscursivity are used in the syllabus and how language and discourses used in the syllabus replicate the masculine nature of STEM education. Findings suggest that the discourses identified in the syllabi reinforce traditional STEM academic roles, and that power and gender in the STEM syllabi are revealed through exploration of the themes of knowledge, learning, and the teaching and learning environment created by the language used in the syllabus. These findings inform and extend understanding of the STEM syllabus and the STEM higher education institution and lead to recommendations about how to make the STEM syllabus more inclusive for women.
Critical Discourse Analysis, Feminist Research Methods, Poststructuralism, Syllabus, Syllabi, STEM Education
Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 4.0 License.
Recommended APA Citation
Parson, L. (2016). Are STEM Syllabi Gendered? A Feminist Critical Discourse Analysis. The Qualitative Report, 21(1), 102-116. Retrieved from _URL_


text:
Here is the basic tip to customize your computers desktop running on Mac OS. If you are bored with same old background the do this.
- Choose System Preferences from Apple Menu. A System Preferences window will pop-up.
- Select Desktop & Screen Saver button.
- Select on the Desktop tab. On the right side you have default images of Mac. And on the left side you have an category of images.
- Select any image you like. There are plenty of them.
- As you click on the thumbnail of a image the desktop background will change. By this you can see a preview.
- Now Close the window.


GUI for the Cone Ply Piece Optimization Tool
This tool is supposed to support the user by finding the optimal ply piece shape for laminated cones. There are four different tools that can be used:
 - The Input-Tool
 - The Cone Geometry-Tool
 - The Plot Ply Piece-Tool
 - The Evaluation-Tool
When the program is started, the Input-Tool shows up. All other Tools are accessible through the Menu Bar Item 'Tools'.
Installation Requirements
To use this tool one needs Python 2.x, numpy and matplotlib, like for the Abaqus-plugin. Additionally, PyQt4 (_URL_ is needed.
Input Tool
The Input-Tool is also the Main Window of this program. The user can use the other tools by following the program or by clicking the different items in the menu 'Tools'.
../../../_images/fig_011.png
Figure 1: Input GUI
In Figure 1 is the Input-Tool shown. In the menu bar are two different items visible. In the 'File'-Menu one can save or load a specific study or close the whole program. Inside the 'Tools'-Menu are three different items which lead to the other three tools.
The 'Set Cone Geometry'-Button opens the Cone Geometry-GUI, which will be explained later.
One can edit five different parameters for one study: Maximum width, starting Position, Fiber Angle, Width Variation and the basic ply shape. For each parameter one has to define the lower and the upper limits and the step size. On the right side of the GUI is a drawing which explains three of the four numerical parameters. For further explanation is the effect of the parameters in the following chapter shown.
Effect of the different parameters on the shape of the ply piece
There are five different parameters used in this program to modify the shape of the ply piece. The basic ply shape parameter changes the general rules which are applied by constructing the ply piece. In Figure 2 is the influence of the parameters shown. The blue lines are the edges of the unwounded cone. The red and grey polygons are the ply pieces and the orange area is the so called effective area. Inside this area the fiber angle deviation is smaller than 2°. The larger the area, the better.
Shape A is a trapezoidal shape and has by definition none overlapping areas. Only the sides perpendicular to the original line are parallel to each other. Shape B is also a trapezoidal shape (called 'Trapez2') and allows single overlapping of two ply pieces on the free cone area. The last basic shape is rectangular. The opposite sides are parallel to each other. In Figure 2 are the different basic shapes exemplarily shown.
../../../_images/fig_021.png
Figure 2: Examples of different basic shapes
The maximum width parameter determines the largest width of the ply piece. For the rectangular shape is the width constant and for the trapezoidal shapes can this width be found at the lower end of the cone. In Figure 3 are three different examples for the maximum width shown.
../../../_images/fig_031.png
Figure 3: Example of the maximum width
The starting position s_{{\Theta}_{nom}} defines at which s-coordinate the nominal fiber angle starts. The smaller the value is, the nearer starts the part at the cone vertex. In Figure 4 are two different examples shown.
../../../_images/fig_041.png
Figure 4: Examples of the starting position
The fiber angle {\Theta}_{nom} is measured between the s-coordinate and the straight lines of the ply piece. In this example the fiber angle lies between the lower edge of the unwounded cone area and the upper and longer edge of the ply piece. In Figure 5 are examples of different fiber angle shown.
../../../_images/fig_051.png
Figure 5: Examples of different fiber angles
The width variation is a different parameter. When a ply piece is constructed, the program uses a 'basic line' which starts at s_{{\Theta}_{nom}} with the fiber angle \Theta. The ending edge of the ply piece is always perpendicular to the basic line. The width variation defines the position of the vertices of the ply piece polygon on the ending edge relative to the basic line.
For a value of a_w=0 the basic line is also the upper edge of the ply piece polygon, see Figure 6 (a). When a_w is 0.5 the basic line is the axis symmetry for the upper and lower ply piece edges (Figure 6 (b)). The upper limit of a_w is 1.0 and then the basic line is also the lower edge of the ply piece (Figure 6 (c)).
This parameter is important for fiber angles smaller than 15°. For larger angles the optimum is always a_{w, opt}=0. For 0° the optimum value is a_w=0.5. This variable can only be used for the Shapes A and C.
../../../_images/fig_061.png
Figure 6: Examples of different width variations
Using the Input-Tool
The controls in the Input-Tool are used to define the limits and step sizes of the parametric study.
In the first column one can choose if one of the parameters shall be fixed. In this case only the minimum Value is considered. This reduces the processing time and makes the evaluation easier.
The next three columns are the minimum, maximum and step size value for each parameter. If an entry is invalid (Min > Max) a Message Box adverts the mistake.
It is possible to save the parameters to a file and load it to the GUI later. When loaded the values in the editable lines are changed.
It is not possible to compare the results of different basic shapes in this tool. For this it is recommended to export the result data to Excel.
Geometry Tool
This tool changes the geometry of the studied cone. This tool can be entered by clicking the 'Set Cone Geometry'-Button or the 'Cone Geometry Tool'- Item in the Menu 'Tools' in the menu bar.
When started, the window in Figure 7 will be opened. On the left side are four changeable lines and some further information about the cone geometry. It is possible to change the the half-cone angle and the dimensions of the cone. The parts between r1 and r2 and between r3 and r4 are auxiliary parts used for cutting and molding the edges of the cone. Between r2 and r3 (each with height H) is the so called free cone area.
The algorithm of the ply piece design will try to cover the whole cone, but the investigation and evaluation of the fiber angle deviation will be only applied to the free cone.
On the right side of the window is a dynamic drawing, which will change with the entered values. There is also the definition of the coordinate system.
../../../_images/fig_071.png
Figure 7: Cone Geometry Tool
New cone designs can be saved to a file and in a later session recovered. The save and load functions can be found in the File-Menu. The cone geometry set in this window will be used for all tools of this program.
Evaluation Tool
The evaluation tool is used to draw graphics and export the results of a parameter study to an Excel or csv-file. The tool will be opened after the parametric study is finished or by clicking its Item in the Input-Tool Menu 'Tools'. In Figure 8 is the Window of the evaluation tool shown.
The items for loading, saving and exporting can be found in the Menu 'File'. The loading application is used when the tool is opened directly from the Input-Tool window. Only files created by the save-function can be loaded into the program and not the export files.
To draw a graphic one has to choose which results should be shown. It is possible to show all evaluation parameters in one drawing. In the next step one has to decide if the drawing should be a 2D or 3D Graphic. In a 2D-Graphic is for every design parameter an own drawing made. At each Step are the highest value and the value of the other parameters for this point shown. In a 3D-Graphic are also the best results for the two design parameters chosen as axes shown. This drawing can be turned to get the best view of the drawing and is useful to get an overview of the results. In Figure 9 and Figure 10 are examples for the 2D and the 3D-Result drawing shown.
It is possible that the export function fails if there are too many results. In this case one can simply save the results and afterwards import the file as a csv-file to Excel.
../../../_images/fig_081.png
Figure 8: Evaluation Tool
../../../_images/fig_091.png
Figure 9: 2D-Result Drawing
../../../_images/fig_101.png
Figure 10: 3D-Results Drawing
Evaluation Parameters
There are five different parameters used to evaluate the different shapes of the ply pieces:
The degree of coverage R_{DoC} is the ratio of the area of a ply piece on the free


D) to stop.
You can then provide a request body. If you do, the method will be POST instead of GET. When you are done with inputting data, or want the request to be GET, press CTRL + D. The faas-cli will then execute the inferred request and output the response, similarly to the web UI.
To delete a function, run faas remove:
 1. faas remove nodeinfo
You'll get the following output:
Output
Deleting: nodeinfo. Removing old function.
Run faas list again to see that nodeinfo was removed:
Output
Function Invocations Replicas
In this step, you've deployed, listed, invoked, and removed functions in your cluster from the command line using the faas-cli. In the next step, you'll create your own function and deploy it to your cluster.
Step 5 — Creating and Deploying a New Function
Now you'll create a sample Node.JS function using the faas-cli and deploy it to your cluster.
The resulting function you'll create will be packaged as a Docker container and published on Docker Hub. To be able to publish containers, you'll need to log in by running the following command:
 1. docker login
Enter your Docker Hub username and password when prompted to finish the login process.
You'll store the sample Node.JS function in a folder named sample-js-function. Create it using the following command:
 1. mkdir sample-js-function
Navigate to it:
 1. cd sample-js-function
Populate the directory with the template of a JS function by running the following command:
 1. faas new sample-js --lang node
The output will look like this:
Output
2020/03/24 17:06:08 No templates found in current directory. 2020/03/24 17:06:08 Attempting to expand templates from _URL_ 2020/03/24 17:06:10 Fetched 19 template(s) : [csharp csharp-armhf dockerfile go go-armhf java11 java11-vert -x java8 node node-arm64 node-armhf node12 php7 python python-armhf python3 python3-armhf python3-debian ru by] from _URL_ Folder: sample-js created. ___ _____ ____ / _ \ _ __ ___ _ __ | ___|_ _ __ _/ ___| | | | | '_ \ / _ \ '_ \| |_ / _' |/ _' \___ \ | |_| | |_) | __/ | | | _| (_| | (_| |___) | \___/| .__/ \___|_| |_|_| \__,_|\__,_|____/ |_| Function created in folder: sample-js Stack file written: sample-js.yml ...
As written in the output, the code for the function itself is in the folder sample-js, while the OpenFaaS configuration for the function is in the file sample-js.yaml. Under the sample-js directory (which resembles a regular Node.JS project) are two files, handler.js and package.json.
handler.js contains actual JS code that will return a response when the function is called. The contents of the handler look like the following:
sample-js-function/sample-js/handler.js
"use strict"
module.exports = async (context, callback) => {
 return {status: "done"}
}
It exports a lambda function with two parameters, a context with request data and a callback that you can use to pass back response data, instead of just returning it.
Open this file for editing:
 1. nano sample-js/handler.js
Change the highlighted line as follows:
sample-js-function/sample-js/handler.js
"use strict"
module.exports = async (context, callback) => {
 return {status: "
Hello Sammy!
"}
}
When you are done, save and close the file. This OpenFaaS function will, when called, write Hello Sammy! to the response.
Next, open the configuration file for editing:
 1. nano sample-js.yml
It will look like the following:
sample-js-function/sample-js.yml
version: 1.0
provider:
 name: openfaas
 gateway: https://openfaas.your_domain
functions:
 sample-js:
 lang: node
 handler: ./sample-js
 image: sample-js:latest
For the provider, it specifies openfaas and a default gateway. Then, it defines the sample-js function, specifies its language (node), its handler and the Docker image name, which you'll need to modify to include your Docker Hub account username, like so:
sample-js-function/sample-js.yml
version: 1.0
provider:
 name: openfaas
 gateway: http://127.0.0.1:8080
functions:
 sample-js:
 lang: node
 handler: ./sample-js
 image: your_docker_hub_username/sample-js:latest
Save and close the file.
Then, build the Docker image, push it to Docker Hub, and deploy it on your cluster, all at the same time by running the following command:
 1. faas up -f sample-js.yml
There will be a lot of output (mainly from Docker), which will end like this:
Output
. . . [0] < Pushing sample-js [your_docker_hub_username/sample-js:latest] done. [0] Worker done. Deploying: sample-js. Deployed. 202 Accepted. URL: https://openfaas.your_domain/function/sample-js
Invoke your newly deployed function to make sure it's working:
 1. faas invoke sample-js
Press CTRL + D. You'll see the following output:
Output

Hello Sammy!

This means that the function was packaged and deployed correctly.
You can remove the function by running:
 1. faas remove sample-js
You have now successfully created and deployed a custom Node.JS function on your OpenFaaS instance in your cluster.
Conclusion
You've deployed OpenFaaS on your DigitalOcean Kubernetes cluster and are ready to deploy and access both pre-made and custom functions. Now, you are able to implement the Function as a Service architecture, which can increase resource utilization and bring performance improvements to your apps.
If you'd like to learn more about advanced OpenFaaS features, such as autoscaling for your deployed functions and monitoring their performance, visit the official docs.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
Learn more about us
About the authors
Default avatar
Savic
author
Still looking for an answer?
Ask a questionSearch for more help
Was this helpful?

1 Comments
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Hello, can we use this with Node autoscaler? For example, if I run a pod that get more ram and cpu then existing, can it start new droplet node and run that task? I'm about the provision of instance, if it can automatic get instance its just like AWS Fargate except the cluster to run the OpenFaaS
Try DigitalOcean for free
Click below to sign up and get $200 of credit to try our products over 60 days!
Sign up
Join the Tech Talk
Success! Thank you! Please check your email for further details.
Please complete your information!
Get our biweekly newsletter
Sign up for Infrastructure as a Newsletter.
Hollie's Hub for Good
Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.
Become a contributor
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
Welcome to the developer cloud
DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.
Learn more
DigitalOcean Cloud Control Panel


text:
Enhancing Medical Device Demonstrations with Augmented Reality
As technology continues to advance at an unprecedented pace, industries across the board are finding innovative ways to leverage its power. One such industry that has embraced the potential of augmented reality (AR) is healthcare. In particular, AR has proven to be a game-changer when it comes to enhancing medical device demonstrations.
What is Augmented Reality?
Before we delve into the practical applications of AR in medical device demonstrations, let's first understand what augmented reality is. AR is a technology that overlays digital information, such as images, videos, or 3D models, onto the real world. It allows users to interact with virtual objects in a real-world environment, enhancing their perception and understanding of the world around them.
The Benefits of AR in Medical Device Demonstrations
Medical device demonstrations play a crucial role in showcasing the capabilities and benefits of new technologies to healthcare professionals. Traditionally, these demonstrations have relied on static images, brochures, or videos to convey information. However, AR takes these demonstrations to a whole new level by providing an immersive and interactive experience.
- Enhanced Visualization: AR allows healthcare professionals to visualize medical devices in a realistic and detailed manner. They can examine the device from different angles, explore its features, and even see how it interacts with the human body.
- Real-time Interactivity: With AR, medical device demonstrations become dynamic and interactive. Healthcare professionals can manipulate virtual objects, simulate device usage, and even perform virtual surgeries to gain a better understanding of the device's functionality.
- Improved Learning and Training: AR can be a valuable tool for medical education and training. It enables students and trainees to practice using medical devices in a safe and controlled environment, reducing the risk of errors and improving their skills.
- Remote Collaboration: AR technology also facilitates remote collaboration between healthcare professionals. Experts can guide and mentor others in real-time, regardless of their physical location, by overlaying instructions and annotations onto the live video feed.
AR has already made significant strides in the healthcare industry, with several notable examples of its successful implementation in medical device demonstrations.
One such example is the use of AR in surgical procedures. Surgeons can wear AR glasses that provide them with real-time information, such as patient vitals, surgical plans, and anatomical overlays. This technology enhances their precision and reduces the risk of errors during complex surgeries.
Another example is the application of AR in medical device sales. Sales representatives can use AR to showcase their products to potential customers in a more engaging and interactive way. They can demonstrate the device's features, simulate its usage, and even show how it compares to competing products.
The Future of AR in Medical Device Demonstrations
The potential of AR in medical device demonstrations is vast, and its future looks promising. As technology continues to evolve, we can expect even more advanced AR solutions that push the boundaries of what is possible.
Imagine a world where healthcare professionals can use AR to visualize complex medical procedures in real-time, guiding them through each step with precision and accuracy. Or a world where patients can use AR to better understand their medical conditions and treatment options, empowering them to make informed decisions about their healthcare.
With the rapid advancements in AR technology and its proven benefits in medical device demonstrations, it's clear that this technology has the potential to revolutionize the healthcare industry.
Augmented reality is not just a buzzword; it's a transformative technology that is reshaping the way we interact with the world. In the context of medical device demonstrations, AR offers enhanced visualization, real-time interactivity, improved learning and training, and remote collaboration.
Real-world examples have already demonstrated the power of AR in healthcare, and the future holds even more exciting possibilities. As business executives, it's essential to stay informed about emerging technologies like AR and explore how they can enhance your business' performance and drive innovation.
So, why not take a closer look at augmented reality for enhancing medical device demonstrations? The potential benefits are undeniable, and the opportunities for growth and improvement are endless.


text:
- Psychology & the public
- What we do
- Member networks
- Careers, education & training
Does Facebook make you fatter?
Time spent on social networking sites comes at the expense of other activities – including physical activity.
That is the suggestion of a study being presented today at the Annual Conference of the British Psychological Society's Division of Health Psychology in Liverpool.
The study carried out at the University of Ulster by Masters degree student Emer O'Leary under the supervision of psychologists Dr Wendy Cousins and Dr Tadhg Macintyre asked 353 students to complete an online survey measuring social networking activity and levels of physical activity.
The results showed that the vast majority of students used social networking sites like Facebook and Twitter spending an average of one hour a day online. When it came to the results from the physical activity questionnaire, just over half the students were classified as 'moderately active; and a third were 'high activity', with a minority (12.7 per cent) falling into the 'low physical activity' group. A quarter of the respondents said they took part in team sports.
When the results were analysed, the researchers found that the amount of time spent social networking was negatively correlated with the respondents' level of physical activity in the previous week. People who spent a lot of time on social networking sites were also less likely to take part in team sports, but this effect was less pronounced.
Dr Cousins says:
"Time is a finite resource, so time spent in social networking must come at the expense of other activities. Our study suggests that physical activity may be one of those activities.
"Our findings are intriguing, but as we have not conclusively demonstrated that social networking causes lower levels of physical activity. We will need to carry out more research to see if it really is a case of Facebook makes you fat rather than Twitter makes you fitter."
- Most Read
- Most Comments
- Register of Applied Psychology Practice Supervisors
- Raising awareness of adult autism