Barrow Gurney

Barrow Gurney is a village and civil parish in Somerset, England, situated in the Unitary Authority of North Somerset on the B3130, midway between the A38 and A370 near the Long Ashton bypass and Bristol Airport,  south west of Bristol city centre. The civil parish includes Barrow Common, and has a population of 349.

It is close to Barrow Gurney Reservoirs, which supply drinking water for Bristol, and feed the Land Yeo which runs alongside the B3130 through the village. It was also the site of Barrow Hospital.

History

The Domesday Book of 1086 records that Barrow Gurney was held by Nigel de Gournay, who would have won his lands in Englishcombe, Twerton, Swainswick and Barrow Gurney by fighting for William I of England. His original home must have been Gournay, which was half-way between Dieppe and Paris.

The parish was part of the hundred of Hartcliffe.

A Benedictine nunnery was established here about the commencement of the 13th century by one of the Fitz-Hardinges (or Fitzhardinge).

Thomas de Gournay was involved with the murder of Edward II at Berkeley Castle in 1327.

There were three mills on the Land Yeo in Barrow Gurney. The Upper Barrow Mill, which had an Overshot water wheel, was a Gristmill which is known to have been operating in 1839. By 1866 it was running as a corn mill, and ceased operation by 1935. The Middle Mill was converted to snuff manufacture by Peter Lilly a tobacconist from Bristol around 1800 and became part of the W.D. & H.O. Wills tobacco manufacturing company. It ceased mill operations by 1839 and by 1885 both the leat and millpond had disappeared. The Lower Mill is known have been grinding corn in the 19th century. It was rebuilt in 1909 when an iron overshot watermill of  diameter was installed and steam power introduced. The mill is still used to produce animal feeds, however the waterwheel and millpond, which remain, are no longer in use.

Barrow Hospital (sometimes referred to as Barrow Gurney Hospital) was a psychiatric hospital which opened in the 1930s. In Second World War the hospital was commandeered by the Royal Navy and became a Royal Naval Auxiliary Hospital before being transferred to the National Health Service in 1948. In 2003 the Avon and Wiltshire Mental Health Partnership NHS Trust announced its intention to close Barrow Hospital by 2008. In 2008 planning permission was granted build 18 luxury homes and 405,000sq ft of office space on the southern part of the site. In 2010, plans were amended to include a 220-bed care home 'village' on the northern part of the site, more housing and fewer offices.

Governance

The parish council has responsibility for local issues, including setting an annual precept (local rate) to cover the council’s operating costs and producing annual accounts for public scrutiny. The parish council evaluates local planning applications and works with the local police, district council officers, and neighbourhood watch groups on matters of crime, security, and traffic. The parish council's role also includes initiating projects for the maintenance and repair of parish facilities, such as the village hall or community centre, playing fields and playgrounds, as well as consulting with the district council on the maintenance, repair, and improvement of highways, drainage, footpaths, public transport, and street cleaning. Conservation matters (including trees and listed buildings) and environmental issues are also of interest to the council.

The parish falls within the unitary authority of North Somerset which was created in 1996, as established by the Local Government Act 1992. It provides a single tier of local government with responsibility for almost all local government functions within its area including local planning and building control, local roads, council housing, environmental health, markets and fairs, refuse collection, recycling, cemeteries, crematoria, leisure services, parks, and tourism. They are also responsible for education, social services, libraries, main roads, public transport, Trading Standards, waste disposal and strategic planning, although fire, police and ambulance services are provided jointly with other authorities through the Avon Fire and Rescue Service, Avon and Somerset Constabulary and the South Western Ambulance Service.

North Somerset's area covers part of the ceremonial county of Somerset but it is administered independently of the non-metropolitan county. Its administrative headquarters is in the town hall in Weston-super-Mare. Between 1 April 1974 and 1 April 1996, it was the Woodspring district of the county of Avon. Before 1974 that the parish was part of the Long Ashton Rural District.

The parish is represented in the House of Commons of the Parliament of the United Kingdom as part of the North Somerset constituency. It elects one Member of Parliament (MP) by the first past the post system of election, currently Liam Fox of the Conservative Party. It is also part of the South West England constituency of the European Parliament which elects seven MEPs using the d'Hondt method of party-list proportional representation.

Religious sites

The parish Church of St Mary and St Edward and Barrow Court manor house chapel have 12th-century origins but were virtually rebuilt by Henry Woodyer 1887–90 for Henry Martin Gibbs son of William Gibbs of Tyntesfield. It has been designated as a Grade II* listed building.

Culture

It is mentioned in the song 'Drink up thy Zider' by The Wurzels.

It is well known in the Bristol area as a shortcut to Bristol Airport, despite very narrow roads and heavy traffic calming measures that are clearly intended to discourage this.

See also

 Barrow Gurney Reservoirs

References

External links

 Village web site
 map of Barrow Gurney circa 1900

Category:Civil parishes in Somerset
Category:Villages in North Somerset


Q:

Proving an algebraic binomial identity related to Bertrand's ballot theorem

I am trying to answer the math.stackexchange question found here by developing all the theory from scratch and not using Bertrand's ballot theorem. My logic boils down to being able to prove the following identity:
$$ \frac{n-m+1}{n+1} \binom{n+m}{n}  =  \frac{n-m}{n} \binom{n+m-1}{n-1} +  \frac{n-m+2}{n+1} \binom{n+m-1}{n}$$
where $0 < m < n$.
I tried using Wolfram but not an expert (or a subscriber). I thought of multiplying both sides to clear the denominator and see what happens, but it seems a bit daunting.
So I post the problem here hoping that 'cranking it out' doesn't involve too many algebraic/binomial tricks of the trade.

A:

Well, we just need to simplify the right hand side:
\begin{align}
RHS &= \frac{n-1-m+1}{n} {n+m-1 \choose n-1} + \frac{n-m+2}{n+1} {n+m-1 \choose n} \\
&= \frac{n-m}{n} \frac{(n+m-1) !}{(n-1)! m!} + \frac{n-m+2}{n+1} \frac{(n+m-1) !}{n! (m-1)!} \\
&= \Big[\frac{n-m}{n+m} + \frac{(n-m+2)m}{(n+1)(n+m)}\Big] {n+m \choose n}
\end{align}
So now we just need to show the following equality:
$$ \frac{n-m+1}{n+1} = \frac{n-m}{n+m} + \frac{(n-m+2)m}{(n+1)(n+m)}$$
The right hand side can be written as:
\begin{align}
\frac{n-m}{n+m} + \frac{(n-m+2)m}{(n+1)(n+m)} &=
\frac{(n-m)(n+1) + (n-m+2)m}{(n+m)(n+1)} \\
&= \frac{n^2+n+m-m^2}{(n+m)(n+1)}\\
&= \frac{(n+m)(n-m+1)}{(n+m)(n+1)}\\
&= \frac{n-m+1}{n+1}\\
\end{align}
Which gives you the result.


#ifndef COOLFluiD_LES_LES3DCons_hh
#define COOLFluiD_LES_LES3DCons_hh

//////////////////////////////////////////////////////////////////////////////

#include "LES3DVarSet.hh"

//////////////////////////////////////////////////////////////////////////////

namespace COOLFluiD {

    namespace Physics {
      namespace NavierStokes {
        class EulerTerm;
      }
    }

  namespace LES {

//////////////////////////////////////////////////////////////////////////////

  /**
   * This class represents a 3D Large Eddy Simulation physical model for conservative variables
   *
   * @author Kris Van den Abeele
   */
class LES3DCons : public LES3DVarSet {
public: // classes

  /**
   * Constructor
   * @see LES2D
   */
  LES3DCons(const std::string& name, Common::SafePtr<Framework::PhysicalModelImpl> model);

  /**
   * Default destructor
   */
  ~LES3DCons();

  /**
   * Set the composition
   * @pre this function has to be called before any other function
   *      computing other physical quantities
   */
  void setComposition(const RealVector& state,
                      const bool isPerturb,
                      const CFuint iVar)
  {
  }

  /**
   * Set the quantities needed to compute gradients (pressure,
   * velocity, etc.) starting from the states
   */
  void setGradientVars(const std::vector<RealVector*>& states,
                       RealMatrix& values,
                       const CFuint stateSize);

  /**
   * Compute required gradients (velocity, Temperature) starting from the gradients of the states
   */
      void setGradientVarGradients(const std::vector<RealVector*>& states,
                                   const std::vector< std::vector<RealVector*> >& stateGradients,
                                   std::vector< std::vector<RealVector*> >& gradVarGradients,
                                   const CFuint stateSize);

  /**
   * Compute the gradients of the states starting from gradient variable gradients (pressure, velocity, temperature)
   */
      void setStateGradients(const std::vector<RealVector*>& states,
                             const std::vector< std::vector<RealVector*> >& gradVarGradients,
                             std::vector< std::vector<RealVector*> >& stateGradients,
                             const CFuint stateSize);

  /**
   * Get the adimensional dynamic viscosity
   */
  CFreal getDynViscosity(const RealVector& state, const std::vector<RealVector*>& gradients);

  /**
   * Get the adimensional density
   */
  CFreal getDensity(const RealVector& state);

  /**
   * Get the adimensional thermal conductivity
   */
  CFreal getThermConductivity(const RealVector& state,
			      const CFreal& dynViscosity)
  {
    if (Framework::PhysicalModelStack::getActive()->getImplementor()->isAdimensional()) {
      return dynViscosity;
    }
    return dynViscosity*getModel().getCpOverPrandtl();
  }

protected:

  /**
   * Set the gradient variables starting from state variables
   */
  virtual void setGradientState(const RealVector& state);

}; // end of class LES3DCons

//////////////////////////////////////////////////////////////////////////////

    } // namespace LES

} // namespace COOLFluiD

//////////////////////////////////////////////////////////////////////////////

#endif // COOLFluiD_LES_LES3DCons_hh


You
people, enemies, lovers, friends, sometimes can not fit in some group, again,
different ideas. Why can not understand? Got to respect the other! I don’tknowwhatIamwritingbutIwanttocontinuetowriteaboutpeople.

We, people, are strange, we don’tknowwhattodoneither what to think sometimes but
at the end is all about respect. Respect the other human being although you may
not agree but this respect must be mutual.


Shared antigens between Mycobacterium bovis (BCG) and other bacterial species.
Antigens from Mycobacterium bovis and Listeria monocytogenes bind to serums from normal rabbits as well as from those immunized with unrelated bacteria, especially intracellular parasites. Binding is to the Fab portion of immunoglobulin G and is immunologically specific.


Borderlands 3 Announced - briefly

(hx) 10:07 PM CET - Mar,28 2019 - Post a comment / read (2)

It’s official now! Gearbox Software is making Borderlands 3, and the developer showed off first gameplay footage from its upcoming sequel at PAX East today. The first trailer for Borderlands 3 features many familiar elements from the series: a four-person team of Vault Hunters, “over one billion guns,” big mechs, series mascot Claptrap busting a move, cel-shaded graphics, and vast areas in which to shoot and loot. And there are plenty of familiar faces from throughout the Borderlands franchise; Brick, Lilith, Maya, Mordecai, Ellie, Marcus, Tiny Tina, and other returning characters all make cameos.


Q:

How to execute a simple jQuery Program?

i have created a simple jQuery program.i am new to jQuery technology..please provide me where am i wrong?
     <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd"
      >
 <html lang="en">
<head>
<title><!-- Insert your title here --></title>
<script type="text/javascript" src="jquery-1.4.2.min.js">
     $(document).ready(function() {
      alert("jQuery tutorial for beginners Example");
       });
</script>
</head>
<body>
<p> i m here hid me</p>
<!-- Insert your content here -->
</body>
</html>

A:

The script you've written isn't supposed to go inside the jquery script tag. It needs to go in its own one.
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>

<script type="text/javascript">
 $(document).ready(function() {
      alert("jQuery tutorial for beginners Example");
       });
</script>

The first one is to load jquery itself - it's like saying "instead of me writing some javascript here, load it from this file instead", the second one is for your own code since you've put code between the script tags.


Are bilirubin and plasma lipid profiles of premature infants dependent on the lipid emulsion infused?
The effect of a lipid emulsion containing long-chain triglycerides (LCT) and supplemented with L-carnitine on plasma lipids and bilirubin in premature neonates on total parenteral nutrition was compared to that of lipid emulsions containing either LCT or a mixture of LCT and medium-chain triglycerides (MCT). In a double-blind randomized study 49 premature neonates received one of the three fat emulsions, given intravenously, over 16-20 h daily for 6 days. Plasma carnitine levels increased significantly in the supplemented group only; the addition of carnitine did not seem to affect any of the parameters studied. Mean plasma triglycerides rose by 193 and 199% in the carnitine-supplemented and the LCT groups, respectively, and by 314% in the MCT/LCT group. On the sixth day of the study free fatty acids were significantly higher in the MCT/LCT group than in the other two groups. Plasma phospholipids and free cholesterol increased (p < 0.05) progressively in all groups and were correlated (r = 0.74, p < 0.001). At the end of the 6-day study all groups showed a similar decline in free and total bilirubin levels despite the significant increase in plasma lipids and free fatty acids resulting from the stepwise increase in lipid load. No correlation was found between free fatty acids and free bilirubin. Since hyperbilirubinemia and hypertriglyceridemia appear to be clinically independent factors, the infusion of lipids should not be withheld from jaundiced infants on total parenteral nutrition.


Jamie Chung Cast As Mulan For Season 2 Of Once Upon A Time

Once Upon a Time has a tough new woman coming on board Season 2. Jamie Chung has been cast in a recurring role as the legendary Chinese warrior Mulan – yes, the very same one made famous by Disney’s animated feature. I think it’s safe to say that this version won’t be anything resembling a Disney princess.

According to EWChung, who appeared in The Hangover 2 and Sucker Punch, has been cast in the role, which comes from an ancient Chinese poem. Mulan is a young woman who steps up to take her father’s place as a fighter in the Chinese army. The ballad follows her twelve years there as a warrior who earns a place among the best but remains humble.

There are no details on how the role will fit into the series, but it’s said to be recurring so it looks like Mulan will be around for a while. Jamie Chung is a busy woman these days, with several movies including Premium Rush and The Man With the Iron Fists both due out this year and a TV movie called The Asset just going into production. Chung is actually Korean, but Hollywood doesn’t tend to worry about such differences when it comes to casting.

Once Upon a Time is one of those series than could have been a total bomb given the difficulty of the concept, which could easily have gone down the path of the cheesy. Good casting was a big part of avoiding that making the show a hit; I am willing to bet we will see more interesting casting news for Season 2 coming up soon.


Q:

Identifying an 80's or 90's fantasy anime where they turn into animals

When I was a kid I would rent a VHS of Samurai Showdown – The Motion Picture all the time. The tape had some awesome trailers for other anime videos (including Neon Genesis). There was one trailer in particular that I can still remember the music too but can not recall the name what so ever.
It was a fantasy anime, and I remember an older person transforming into some type of saber-toothed cat I believe, distributed by A.D. Vision. unfortunately that's all I can remember. I think others transformed into animals as well? Any possible leads would be greatly appreciated!

A:

Legend of Crystania! Found it on VHS while looking to get Samurai Showdown.

Legend of Crystania (はじまりの冒険者たち レジェンド・オブ・クリスタニア Hajimari no Bōkenshatachi: Rejendo obu Kurisutania?, First Adventurers: Legend of Crystania) is a full-length Japanese animated motion picture. The film has been officially released on VHS and DVD in North America by ADV Films. It takes place in the same fantasy world as two other series, Record of Lodoss War and Rune Soldier, albeit on a different continent. It focuses on the land which Ashram sailed to after the Lodoss series, a world called Crystania which is under the rule of the animal gods. Ashram is king of the people of Marmo, the cursed island in Record of Lodoss War.
In order to secure a future for his people, as well as his companion Pirotess, Ashram is forced to make a pact with an evil god called Barbas. Most of the plot in Crystania centres on Pirotess's (now called Sheru) quest to free Ashram from the evil Barbas, although the main character is called Prince Redon.
Many new characters are introduced in the course of the film. Its sequel, the three-part original video animation (OVA) series Legend of Crystania: The Chaos Ring, goes into the story in further detail. These episodes were released on VHS and DVD in North America by ADV Films.


Decalcomania – a solution that joint with increasing demand of young people.

Tattoos are contemporarily thought to be a quite interesting and popular option for young people. Checking them we might rapidly find out that there is more and more people that have miscellaneous types of tattoos. Despite the fact that a variety of people pick them because they are thought to look well and be fashionable at the same time, there is also a slight percentage of people, who use them to manifest their opinion. However, one of the most common difficulties referred to tattoos is that they are done in hurry, without proper consideration and awareness of outcomes.

Autor: Robert Gaskin

Źródło: http://www.flickr.com

Hence, we should also not forget that sometimes before making a tattoo it is recommended for people, above all young, to invest in alternatives such as decalcomania. Due to it we can rapidly observe what is it like to have a tattoo on our own.Similar practice is advised to many people, as it also is not connected with any bigger costs for the clients. Decalcomania then is an alternative that is quite easily affordable to majority of people. Hence, we are recommended to also remember that if we have never had a tattoo on our own, we ought to remember that there is a lot of positive aspect that might be related to the previously presented option. Having it may offer us an opportunity what is it like to have a tattoo on our skin.

Autor: Visit El Paso

Źródło: http://www.flickr.com

What is more, in case we wouldn’t be pleased with the design or the tattooing at all, we may rapidly and with no additional costs remove it. In case of most popular versions of tattoos, we need to regularly visit a studio in order to get rid of a tattoo. Despite expenses, which are bigger, the bigger a tattoo is, we ought to also keep in mind that the whole process includes pain.Taking everything into consideration, we are recommended to remember that in order to make appropriate choices in the field of tattooing, there is a significant probability that decalcomania would help us make proper moves. Consequently, the above mentioned solution might help us a lot if we would like to save money, time and nerves that could be lost on removal of tattoo that was made without appropriate consideration.


Auditory priming: implicit and explicit memory for words and voices.
Five experiments explore priming effects on auditory identification and completion tasks as a function of semantic and nonsemantic encoding tasks and whether speaker's voice is same or different at study and test. Auditory priming was either unaffected by the study task manipulation (Experiments 2, 4, and 5) or was less affected than was explicit memory (Experiments 1 and 3). Study-to-test changes of speaker's voice had nonsignificant effects on priming when white noise masked target items on the identification test (Experiments 1 and 2) or the stem-completion test (Experiment 5). However, significant voice change effects were observed on priming of completion performance when stems were spoken clearly (Experiments 3 and 4). Results are consistent with the idea that a presemantic auditory perceptual representation system plays an important role in the observed priming. Alternative explanations of the presence or absence of voice change effects under different task conditions are considered.


Q:

Golang Slice - Java Arraylist - Recursion Backtracking - Classic Algo Powerset not working as desired in Golang

I am trying to solve powerset problem using Recursion and backtracking in Golang:
Given a set of distinct integers, nums, return all possible subsets (the power set)
Note: The solution set must not contain duplicate subsets.
Example:
Input: nums = [1,2,3]
Output:
[
  [3],
  [1],
  [2],
  [1,2,3],
  [1,3],
  [2,3],
  [1,2],
  []
]

This is a classic problem solved by Recursion and Backtracking using the Java code below :
public List<List<Integer>> subsets(int[] nums) {
       List<List<Integer>> list = new ArrayList<>();
       backtrack(list, new ArrayList<>(), nums, 0);
     return list;

}
private void backtrack(List<List<Integer>> list , List<Integer> tempList, int [] nums, int start){
    list.add(new ArrayList<>(tempList));
    for(int i = start; i < nums.length; i++){
        tempList.add(nums[i]);
        backtrack(list, tempList, nums, i + 1);
        tempList.remove(tempList.size() - 1);
     }

}
However, if I do the equivalent code in Golang it does not work. See below :
// nums :=[]int{1,2,3}
func powerSubSets(nums []int){
   result :=[][]int{}
   tmp:=[]int{}
   powerSubsetsDFS(nums,tmp, 0, result)
   fmt.Println("Final Result ",result)

}
func powerSubsetsDFS(nums []int, tmp []int, idx int, result [][]int) {
   result = append(result,tmp)
   fmt.Println("result idx ",idx,result)
   for i:=idx;i<len(nums);i++{
     tmp = append(tmp,nums[i])
     powerSubsetsDFS(nums,tmp,idx+1,result)
     fmt.Println(" subract ", idx , tmp)
     tmp = tmp[0:len(tmp)-1]
     fmt.Println(" subract after  ", idx , tmp)
}

}
If you see the output prints:
    result idx  0 [[]]
result idx  1 [[] [1]]
result idx  2 [[] [1] [1 2]]
result idx  3 [[] [1] [1 2] [1 2 3]]
 subract  2 [1 2 3]
 subract after   2 [1 2]
 subract  1 [1 2]
 subract after   1 [1]

The issue is that the tmp slice reference is being hold and when the backtracking line
 tmp = tmp[0:len(tmp)-1]

is executed, it refers the same tmp slice that it has recently added in result. Ideally the result slice should not be touched. But looks like due to slice refrencing the same tmp is acted upon and ultimately it will leave the answer to [].
I am really struggling in GoLang to achieve this.

A:

Slice internals in here

A slice is a descriptor of an array segment. It consists of a pointer
  to the array, the length of the segment, and its capacity (the maximum
  length of the segment).

You are appending tmp in result and then modify the tmp that's means last modified data of tmp from the loop will stored in result.
Store in a new variable when appending in tmp and pass it. Now you don't need to remove after appending since you are using a new variable. And use i+1 when call recursively.
func powerSubsetsDFS(nums []int, tmp []int, idx int, result [][]int) [][]int {
   result = append(result,tmp)
   for i:=idx;i<len(nums);i++{
     tmp2 := append(tmp, nums[i]) // store in a new variable
     result = powerSubsetsDFS(nums,tmp2,i+1,result)
   }
   return result;
}

func powerSubSets(nums []int){
   result :=[][]int{}
   tmp:=[]int{}
   result = powerSubsetsDFS(nums,tmp, 0, result)
   fmt.Println("Final Result ",result)
}

Full code in go playground here


Hello.  This notice is being sent to all trained fire wardens I have listed at Enron Center North.  As you may know, each year the Houston Fire Department reviews every high rise building to make sure they are in compliance with the Houston city fire code.  As part of that process, it is required by law that Enron maintain accurate records of all trained fire wardens as well as keep an ongoing list of any persons with a mobility impairment who may require special assistance during a fire drill or evacuation.  A fire drill will occur at Enron on or before December 1st.  Therefore, as trained fire wardens on your respective floors, if you know of anyone who may require special assistance during an actual fire drill or building evacuation, please forward there names to me so that I may obtain their contact information to maintain on file.  The Houston Fire Department is subject to fine Enron between $250 and $2000 for every daily violation that occurs if these records are not kept up to date.  Note, this information is strictly for use to have on file for the Houston Fire Department.  It will be kept confidential.  Thank you in advance for your assistance.

Monica Rodriguez
ph-713-853-5393


the holy writings, a term which came early into use in the Christian church to denote the third division of the Old Testament scriptures, called by the Jews Kethubim, i.e., "Writings." It consisted of five books, viz., Job, Proverbs, and Psalms, and the two books of Chronicles. The ancient Jews classified their sacred books as the Law, the Prophets, and the Kethubim, or Writings. (See BIBLE.)


Functional implications of mutations in the human renal outer medullary potassium channel (ROMK2) identified in Bartter syndrome.
Bartter syndrome is an autosomal recessive heterogeneous renal tubular disorder affecting NaCl reabsorption in the thick ascending limb of Henle's loop (TAL). The aim of this study was to elucidate the functional implications of mutations in the predominant human ROMK isoform in TAL, hROMK2, involved in Bartter syndrome type II. cRNA of flag-tagged hROMK2 and eight mutants identified in seven non-related patients was expressed in Xenopus laevis oocytes. hROMK2 activity was measured by two-electrode voltage-clamp analysis and defined as the Ba2+ -sensitive current at a holding potential of -75 mV. The subcellular localization of hROMK2 in oocytes was studied by immunocytochemistry. Injection of 25 pg hROMK2 cRNA resulted in an inwardly rectifying Ba2+ -sensitive current of 522+/-43 nA ( n=22). The mutants could be divided into three distinct groups. First, at 25 pg injection mutants W80C, V103E and T313/350X exhibited no significant currents and could only be detected intracellularly. Upon 8 ng injection, plasma membrane presence was observed as well as currents up to 60% of wild-type current. Second, mutants V53E and V296G exhibited no Ba2+ -sensitive current, but were present in the plasma membrane at 0.1 ng and 8 ng injection levels. Third, mutants P91L and A179T were detectable on the plasma membrane (0.1 ng) and yielded currents of 98% and 80% of wild-type, respectively, at 25 pg injection. S294C yielded currents that were 45% of wild-type and were detected both on and just below the plasma membrane at 0.1 ng injection. This study has unraveled three distinct mechanisms by which mutations in hROMK2 could impair channel function in Bartter syndrome. Future experiments on kidney epithelial cell lines will have to confirm this classification, after which specific pharmacological treatments could be considered for each group of mutations.


Infection and propagation of lymphocystis virus isolated from the cultured flounder Paralichthys olivaceus in grass carp cell lines.
The causative agent of lymphocystis disease that frequently occurs in cultured flounder Paralichthys olivaceus in China is lymphocystis virus (LV). In this study, 13 fish cell lines were tested for their susceptibility to LV. Of these, 2 cell lines derived from the freshwater grass carp Ctenopharyngodon idellus proved susceptible to the LV, and 1 cell line, GCO (grass carp ovary), was therefore used to replicate and propagate the virus. An obvious cytopathic effect (CPE) was first observed in cell monolayers at 1 d post-inoculation, and at 3 d this had extended to about 75% of the cell monolayer. However, no further CPE extension was observed after 4 d. Cytopathic characteristics induced by the LV were detected by Giemsa staining and fluorescence microscopic observation with Hoechst 33258 staining. The propagated virus particles were also observed by electron microscopy. Ultrastructure analysis revealed several distinct cellular changes, such as chromatin compaction and margination, vesicle formation, cell-surface convolution, nuclear fragmentation and the occurrence of characteristic 'blebs' and cell fusion. This study provides a detailed report of LV infection and propagation in a freshwater fish cell line, and presents direct electron microscopy evidence for propagation of the virus in infected cells. A possible process by which the CPEs are controlled is suggested.


Far below the surface, a duo's footsteps echo through the empty, metal corridor. One of them is a sickly-looking girl. She has pale skin, is extremely thin, and has green-yellow hair. Her most distinctive features are, however, a pair of red-black skeletal wings and a red rune on her forehead, almost completely covered by her hair. The other is a smirking boy wearing a mostly blue uniform with a high collar. He has blond, straight hair and a rapier sheathed at his side.

Of the two, the boy is clearly in charge. He is walking behind the girl but any action she takes that slows there progress, even simply pausing to catch her breath, is met with harsh words and sometimes physical violence. It is clear that he sees her as less than human.

Then something happens that causes them to both pause and turn. A third set of footsteps had echoed through the hallway. The owner was moving much faster than the two, almost gliding along the floor. Another boy, wearing a similar uniform, was coming at the two. His hair was blue-black and tied back in a pony tail. His weapon of choice seemed to be a long sword. Unlike the first boy, his blade was drawn. "Bosch, get away from Nina!"

The blond boy, Bosch, grinned "That's fine. The only reason I've kept her alive was to lure you out!" Ryu yelled out in rage and brought his blade down in a diagonal slash, an attack that was easily blocked by Bosch. "C'mon, Ryu, without the dragon's help, there's no way you will beat me!" He pushed Ryu back and his blade darted forward in a blur. Ryu was barely able to block each attack and even then Bosch managed to cut Ryu a few times.

Ryu backed up and said "Fine then, if you want it!" This can't last too long, I can't let it control me. Embers begin to drift around him, coming from nowhere, and the smell of ash fills the air. Ryu's eyes turn red and a powerful aura surrounds him. He charges Bosch, this time much faster. Too fast for Bosch to do anything but stare as his left arm is cleaved off. "It's over, Bosch."

"Right you are, partner?" Ryu turns just in time for a grotesque claw to slam through his barrier and into his face. He is thrown against a wall and shakes his head to clear his mind. When he looks up, his eyes widen in horror. Bosch's arm had been replaced by a kind of… Ryu didn't know what it was, only that is was monstrous. It was as thin as a skeleton and covered in a black, hard material with red lines going through it. The material had spread to half of Bosch's face and his right eye was now a blank orb. "Why are you so surprised, partner? You didn't think I'd fight you again without a card to play, did you?"

Ryu stood up only for Bosch to disappear. He realized Bosch was to his right just in time for the claw to slash Ryu's arm, rendering it useless. His sword clattered to the floor as the claw grabbed Ryu's face. It slammed him into the wall hard enough to dent it. "And this is where to die, partner." Bosch pinned Ryu's limp form against the wall and held his rapier with his left hand. It shot forward and stabbed into Ryu's throat before being removed. "You bastard!" A female voice cried out just as a ball of energy came at Bosch. His arm flickered and slammed the ball aside. Far down the wall, a woman with red hair, cat ears, and a tail was holding a large rifle. She was wearing a blue and white costume that fit her form perfectly. She fired again and again but each blast was lazily deflected. Bosch grinned and leapt forward. The woman, Lin, attempted to dodge but the claw grabbed her throat. "I almost forgot about you."

Meanwhile, Nina had approached Ryu's body. She touched it and shook him a little, sobbing. She couldn't speak and all she could do is hold his body. She barely managed to croak at his name. Then she jumped back as Ryu's body was covered in red lines. His body turned black and energy filled the air. Bosch turned back in time to see Ryu stand up. "That's… not possible." Ryu grabbed his head and yelled in agony. His wound healed instantly as his body changed once again.

Ryu's arm and legs became scaly and clawed. Armored places grew over them, making them larger. His chest was covered in red, glowing symbols. Spikes grew from his back and flames erupted from them, making him look like he had wings of flame. His hair turned white and horns grew around his head. Bosch dropped Lin, watching Ryu change with horror.

"So, you had something else, partner? Well, it won't help-" Bosch didn't get to finish his sentence. Ryu seemed to simply disappear and reappear in front of Bosch. A clawed hand slammed into Bosch, sending him flying. Before Bosch even hit the floor however, Ryu moved above him and landed a kick on his back, slamming him into the floor. Bosch used his arm to push himself up as Ryu placed his hands together. Bosch held up his arm to defend himself only for a beam of energy to erupt from Ryu's hands and completely overwhelm Bosch. When the beam disappeared, Bosch was nowhere to be seen. Ryu's roared in triumph, then promptly collapsed.

((Both criticisms and advice are very welcome either by PM or review.))

The author would like to thank you for your continued support. Your review has been posted.


What does it take to be a sleeper?

The basic definition is a team that no one is talking about. However, in the NFL—since everyone is talking about almost every team to some degree—it takes more than just a lack of buzz. To truly be a sleeper, people must have a general feeling against a team's potential success. It takes plenty of false narratives and a general uninformed consensus.

The term is intrinsically subjective. It's also contrary to popular opinion. If one sees a bunch of different people labeling a certain team a "sleeper," it's an awfully good bet the team ceased to actually be a sleeper some time ago.

So heading into 2013, which teams have a shot to go against the grain and truly overachieve?

Minnesota Vikings

Last season, I went out on a limb and proclaimed the Vikings a better team than people thought. They rewarded my "faith" in their abilities with a playoff appearance and an MVP season from running back Adrian Peterson.

In Las Vegas-speak, I'm going to let it ride.

Where is the evidence that this team has gotten any worse from last season to this year? Don't think they can get to the playoffs without wide receiver Percy Harvin? Why not? They did so last season.

In addition, their offense should be better and more balanced with receiver additions in Greg Jennings and Cordarrelle Patterson.

Taking Harvin out of the equation should be a boon for quarterback Christian Ponder as well.

At times, the desire to get Harvin the ball led to a departure from the Vikings' bread-and-butter plays. Fundamentally, this should be a run-heavy team with play action and plenty of moving pockets in the passing game. That fits what Ponder does well more than the screen-heavy or gadget sets that worked so well with Harvin.

At times, Ponder was terrible last season, but people forget he had bright spots as well. Weeks 14-16 of 2012 were noted steps forward from the depths of ineptitude into mediocrity, but Week 17 against Green Bay was a fantastic game that catapulted the Vikings into the playoffs.

They could not have gotten into the postseason without that tremendous effort out of Ponder.

In Year 3—after Ponder's second full offseason—they should have the ability to take another step forward with him under center.

It should be noted that popular opinion leans the other way. Rivers McCown said in the Football Outsiders 2013 Almanac:

But Minnesota’s passing-game problems were not just about the passengers, they were about the driver. It doesn’t take a lot of digging to figure out Ponder’s main issue as a quarterback: an inability to consistently connect on deep passes.

Their defense, too, should be able to feature a heavier rotation along the front with first-round draft pick Sharrif Floyd stepping in as a backup 3-technique tackle. Defensive ends Everson Griffen and Lawrence Jackson will put on even more pressure rotating in on the perimeter.

This is all on top of a starting defensive unit that is returning (mostly) intact after finishing right in the middle of the pack last season. There's little reason they shouldn't be in the top 15, if not the top 10, this season on defense.

The bottom line, of course, is running back Adrian Peterson.

Even if he doesn't duplicate last season's efforts, he should be a top back again in the NFL. With the tremendous help in front of him on the Vikings offensive line, he will have plenty of holes to burst through. With another top season from him, it should take the bite out of opposing defenses and keep the Vikings in the running to win far more games than their critics expect.

San Diego Chargers

The Chargers were a better team than former head coach Norv Turner was able to showcase last season. Finishing at 7-9, the Chargers had a top-10 defense.

It was their offense that left them hanging at the end of many games.

Remember, this was a team built around a supposedly explosive offense and a head coach who was said to be a fantastic offensive mastermind. Quarterback Philip Rivers and his offensive compatriots were hamstrung by horrid offensive line play.

Let Andy Benoit explain, via the Football Outsiders Almanac:

The Chargers were ill-prepared last season for turmoil along the left side of their offensive line. Guard Kris Dielman and tackle Marcus McNeill both retired prematurely due to health issues. Their replacements, Tyrone Green and Jared Gaither, had up-and-down seasons plagued by injuries.

Moreover, the issues were exacerbated by Turner's hardheadedness. He continued to lean heavily on a pass-heavy vertical scheme that put undue pressure on Rivers because he had neither the production nor the weapons to make it work.

This year, under new head coach Mike McCoy, there should be much more balance on the offense. McCoy, who helped build offenses for quarterbacks Kyle Orton, Tim Tebow and Peyton Manning, will understand the need to tailor his weekly game plans for the personnel he has.

New offensive tackles D.J. Fluker, King Dunlap and Max Starks are going to give Rivers better protection than last year, as well as a recommitment to the run game. This should lead to fewer sacks, fewer turnovers and potentially more scoring.

Combine all that with a defense that should be as good (if not better) than last season, and the wins should increase from last season—especially in the AFC.

It's a conference where the wild-card spots could easily go to "average" teams. While the Chargers aren't getting anywhere in the AFC West division this season, they could easily end up in the wild-card hunt late into December.

Kansas City Chiefs

Staying in the AFC West with the last sleeper on this list, and I can hear some of you now: "There's no way the Chargers and the Chiefs are both making the playoffs this season!"

Well, I'm not saying that, so let me deconstruct my hastily made straw man.

Maybe they don't both make the playoffs, but I'll bet that both are better than critics expect in 2013, and I'd bet at least one of them are in the postseason.

Why the Chiefs? Why the top of this list? What makes me tell every single radio host from Connecticut to Hawaii that the Chiefs are my "sleeper" team this season?

It isn't just quarterback Alex Smith. It isn't even just head coach Andy Reid.

Don't get me wrong, both Smith and Reid are going to have big impacts in 2013. Smith, especially, is a long-overdue boon for this team that hasn't had solid quarterback play since vintage Trent Green.

The point is not that Smith has to be a Pro Bowler (though he has that potential) and it isn't that he needs to completely turn his career around (though he may have started that very thing under Jim Harbaugh in San Francisco).

No, as long as Smith is mediocre—just average—he can lead this team to the playoffs.

Former head coach Romeo Crennel was never known as a hands-on individual in his previous stops. "Aloof" doesn't even begin to describe the man who is a perfectly nice individual and defensive mastermind, but isn't as engaged as NFL life asks a head coach to be.

Furthermore, and I don't mean to trivialize the incident, but the tragedy that the Chiefs underwent with Jovan Belcher put even more pressure on Crennel and strained team chemistry all the more. Certainly, the incident is much more than a "football matter," but it's impossible to separate the man from a situation that changed his life and made it near-impossible to do his job in 2012.

Now, Reid gets a fresh start.

It's intriguing to me that Reid went from burned out in Philadelphia to now being a breath of fresh air in Kansas City. It speaks not only to the fickle nature of the NFL fanbase, but even more to the low bar that is set for Reid in his new home. Like Smith, Reid doesn't need to be the best. He just needs to be better than what Kansas City had before.

Remember, this team sent six players to the Pro Bowl after last season. These were not "name-only" Pro Bowlers. No, these were legitimate players who deserved to be there: running back Jamaal Charles, linebackers Tamba Hali, Derrick Johnson and Justin Houston, safety Eric Berry and punter Dustin Colquitt.

Each of those players is returning in 2013.

This was already a good team. It just had a couple of giant albatrosses hanging around its collective neck. For that reason—because this is already a good team, no longer saddled with terrible quarterback play and subpar coaching—the Chiefs are a sleeper heading into 2013.

Michael Schottey is the NFL National Lead Writer for Bleacher Report and a member of the Pro Football Writers of America. Find more of his stuff at The Go Route.


Q:

Upsert Document and/or add a Sub-Document

I've been wrestling with the asynchronous nature of MongoDB, Mongoose and JavaScript and how to best make multiple updates to a collection.
I have an Excel sheet of client and contact data.  There are some clients with multiple contacts, one per line, and the client data is the same (so the client name can be used as a unique key - in fact in the schema it's defined with unique: true).
The logic I want to achieve is:

Search the Client collection for the client with clientName as the key
If a matching clientName isn't found then create a new document for that client (not an upsert, I don't want to change anything if the client document is already in the database)
Check to see if the contact is already present in the array of contacts within the client document using firstName and lastName as the keys
If the contact isn't found then $push that contact onto the array

Of course, we could easily have a situation where the client doesn't exists (and so is created) and then immediately, the very next row of the sheet, is another contact for the same client so then I'd want to find that existing (just created) client and $push that 2nd new contact into the array.
I've tried this but it's not working:
Client.findOneAndUpdate(
  {clientName: obj.client.clientname},
  {$set: obj.client, $push: {contacts: obj.contact}},
  {upsert: true, new: true},
  function(err, client){
    console.log(client)
  }
)

and I've had a good look at other questions, e.g.:

create mongodb document with subdocuments atomically?
https://stackoverflow.com/questions/28026197/upserting-complex-collections-through-mongoose-via-express

but can't get a solution... I'm coming to the conclusion that maybe I have to use some app logic to do the find, then decisions in my code, then writes, rather than use a single Mongoose/Mongo statement, but then the issues of asynchronicity rear their ugly head.
Any suggestions?

A:

The approach to handling this is not a simple one, as mixing "upserts" with adding items to "arrays" can easily lead to undesired results. It also depends on if you want logic to set other fields such as a "counter" indicating how many contacts there are within an array, which you only want to increment/decrement as items are added or removed respectively.
In the most simple case however, if the "contacts" only contained a singular value such as an ObjectId linking to another collection, then the $addToSet modifier works well, as long as there no "counters" involved:
Client.findOneAndUpdate(
    { "clientName": clientName },
    { "$addToSet": { "contacts":  contact } },
    { "upsert": true, "new": true },
    function(err,client) {
        // handle here
    }
);

And that is all fine as you are only testing to see if a doucment matches on the "clientName", if not upsert it. Whether there is a match or not, the $addToSet operator will take care of unique "singular" values, being any "object" that is truly unique.
The difficulties come in where you have something like:
{ "firstName": "John", "lastName": "Smith", "age": 37 }

Already in the contacts array, and then you want to do something like this:
{ "firstName": "John", "lastName": "Smith", "age": 38 }

Where your actual intention is that this is the "same" John Smith, and it's just that the "age" is not different. Ideally you want to just "update" that array entry end neiter create a new array or a new document.
Working this with .findOneAndUpdate() where you want the updated document to return can be difficult. So if you don't really want the modified document in response, then the Bulk Operations API of MongoDB and the core driver are of most help here.
Considering the statements:
var bulk = Client.collection.initializeOrderedBulkOP();

// First try the upsert and set the array
bulk.find({ "clientName": clientName }).upsert().updateOne({
    "$setOnInsert": {
        // other valid client info in here
        "contacts": [contact]
    }
});

// Try to set the array where it exists
bulk.find({
    "clientName": clientName,
    "contacts": {
        "$elemMatch": {
            "firstName": contact.firstName,
            "lastName": contact.lastName
         }
    }
}).updateOne({
    "$set": { "contacts.$": contact }
});

// Try to "push" the array where it does not exist
bulk.find({
    "clientName": clientName,
    "contacts": {
        "$not": { "$elemMatch": {
            "firstName": contact.firstName,
            "lastName": contact.lastName
         }}
    }
}).updateOne({
    "$push": { "contacts": contact }
});

bulk.execute(function(err,response) {
    // handle in here
});

This is nice since the Bulk Operations here mean that all statements here are sent to the server at once and there is only one response. Also note here that the logic means here that at most only two operations will actually modify anything.
In the first instance, the $setOnInsert modifier makes sure that nothing is changed when the document is just a match. As the only modifications here are within that block, this only affects a document where an "upsert" occurs.
Also note on the next two statements you do not try to "upsert" again. This considers that the first statement was possibly successful where it had to be, or otherwise did not matter.
The other reason for no "upsert" there is because the condtions needed to test the presence of the element in the array would lead to the "upsert" of a new document when they were not met. That is not desired, therefore no "upsert".
What they do in fact is respectively check whether the array element is present or not, and either update the existing element or create a new one. Therefore in total, all operations mean you either modify "once" or at most "twice" in the case where an upsert occurred. The possible "twice" creates very little overhead and no real problem.
Also in the third statement the $not operator reverses the logic of the $elemMatch to determine that no array element with the query condition exists.

Translating this with .findOneAndUpdate() becomes a bit more of an issue. Not only is it the "success" that matters now, it also determines how the eventual content is returned.
So the best idea here is to run the events in "series", and then work a little magic with the result in order to return the end "updated" form.
The help we will use here is both with async.waterfall and the lodash library:
var _ = require('lodash');   // letting you know where _ is coming from

async.waterfall(
    [
        function(callback) {
            Client.findOneAndUpdate(
               { "clientName": clientName },
               {
                  "$setOnInsert": {
                      // other valid client info in here
                      "contacts": [contact]
                  }
               },
               { "upsert": true, "new": true },
               callback
            );
        },
        function(client,callback) {
            Client.findOneAndUpdate(
                {
                    "clientName": clientName,
                    "contacts": {
                       "$elemMatch": {
                           "firstName": contact.firstName,
                           "lastName": contact.lastName
                       }
                    }
                },
                { "$set": { "contacts.$": contact } },
                { "new": true },
                function(err,newClient) {
                    client = client || {};
                    newClient = newClient || {};
                    client = _.merge(client,newClient);
                    callback(err,client);
                }
            );
        },
        function(client,callback) {
            Client.findOneAndUpdate(
                {
                    "clientName": clientName,
                    "contacts": {
                       "$not": { "$elemMatch": {
                           "firstName": contact.firstName,
                           "lastName": contact.lastName
                       }}
                    }
                },
                { "$push": { "contacts": contact } },
                { "new": true },
                function(err,newClient) {
                    newClient = newClient || {};
                    client = _.merge(client,newClient);
                    callback(err,client);
                }
            );
        }
    ],
    function(err,client) {
        if (err) throw err;
        console.log(client);
    }
);

That follows the same logic as before in that only two or one of those statements is actually going to do anything with the possibility that the "new" document returned is going to be null. The "waterfall" here passes a result from each stage onto the next, including the end where also any error will immediately branch to.
In this case the null would be swapped for an empty object {} and the _.merge() method will combine the two objects into one, at each later stage. This gives you the final result which is the modified object, no matter which preceeding operations actually did anything.
Of course, there would be a differnt manipulation required for $pull, and also your question has input data as an object form in itself. But those are actually answers in themselves.
This should at least get you started on how to approach your update pattern.


It wasn’t the supermarket sales strategy. It wasn’t the price, about $20. No, it was the messaging from California-based Elouan Wines that so infuriated Willamette Valley winemakers.

“The opulence of California. The elegance of Oregon.” “Redefining the Oregon Style.”

Yes, Oregon wine’s latest player isn’t even here. To make its 2016 Oregon pinot noir—with the “firm acidity found in the fruit of the Willamette Valley”—Elouan trucks grapes south, to blend into wine “with northern character,” in a facility north of Stockton.

Ask Lett about the greatest threat to Willamette Valley wine, and he won’t point to Elouan. (He’s more annoyed by “lifestyle vintners,” with their camera drones, helicopter tours, and vineyard soirées blasting “Uptown Funk.”) But for many of his fellow old-line Willamette farmer/winemakers—the Ponzis, the David Adelsheims, the Ken Wrights—campaigns like Elouan’s menace the integrity of both pinot noir, our signature grape, and the Willamette Valley, our winemaking heartland. Arguably, a mass-market “Oregon” pinot just underscores our success: in 2016, the state’s 725 wineries (and counting) raked in more than $1 billion. Among America’s wine-producing states, Oregon bottles fetch top dollar. Outsiders are understandably eager to cash in on Oregon’s brand for high quality, one built over decades by families like Lett’s.

“The story has always been about family makers and that tie to place,” says Thomas Houseman, winemaker at Anne Amie. “In the last three years, that’s changed drastically. You have a lot of big players coming in.”

Jackson Family Wines, so far, is the high roller—with its purchase of Willakenzie Estate in 2016 (its fourth recent acquisition since 2013), the California behemoth became Oregon’s largest single owner of vineyard acreage. Others are nibbling. In 2006, Oregon’s Erath Winery sold most of its estate to Washington’s massive Chateau Ste. Michelle; last year, the family behind Napa’s Silver Oak bought another Erath chunk. Other developments also challenge the Willamette’s downhome image; take Domaine Serene’s lavish villa-style “clubhouse,” erected last summer, followed by its plush tasting room in downtown Portland’s Sentinel Hotel.

Change is rocking the whole wine world, as soaring demand meets a disrupted environment. Some local evolutions have been embraced: take the arrival of the Burgundians. Following France’s Domaine Drouhin in 1987, more legacy winemakers from pinot noir’s homeland—Maison Louis Jadot, Domaine du Comte Liger-Belair, Domaine des Comte Lafon—have settled the valley, refugees of Continental land prices and climate change. Additional arrivals seem inevitable. In the Atlantic this past spring, writer James Conaway asserted that “a changing climate has prompted vintners to get the most out of Napa before possibly having to move on to the Pacific Northwest or the Rockies.”

The question, then, is how the Willamette Valley will preserve its soul (and premium prices). Strategies vary, even among the old guard. Some want to double down on pinot, perhaps by enacting 100 percent purity laws—no blending—for single-varietal wine. (Right now, Oregon’s bar is 90 percent; in heathen California, just 75.) Others want to shore up the land-use laws that limit valley sprawl and luxury development. Others say it’s time to diversify the valley’s grape portfolio, by getting behind chardonnay, say, or gamay, or trousseau noir, or....

For longtime valley force Ken Wright, the call to action came last year, during his first sales trip to China. It was a wild success—and that worried him.

“I went thinking, they probably won’t know where Oregon is,” says Wright. But, he notes, “These buyers knew the Willamette Valley, and how to say it right: Will-A-mette. Then they’d give me this thumbs-up and say, ‘Pinot noir!’”

“There’s a real sucking sound from the marketplace,” Wright adds. “We will see an escalation in land prices, an escalation in competition.”

Wright believes the key is to keep making great pinot noir. (“It wants to be amazing here.”) Lett, however, argues that now could finally be the time for Oregon to step out of Burgundy’s shadow.

“Nothing can touch pinot’s ability to translate nuance in the life of a plant,” says the son of the man who planted some of the Willamette Valley’s earliest such grapes. “But the grand cru of pinot noir is already firmly established in Burgundy. With other varieties, we have a chance: to push them to their highest expression, and maybe take the crown away from Europe.”


[PATCH 0/2] arm64: Support HP Envy X2

From: Alexander Graf Subject: [PATCH 0/2] arm64: Support HP Envy X2 Date: Wed, 28 Nov 2018 15:31:05 +0100

I got a new toy this week: An HP Envy X2 system. This is one of those shiny new Qualcomm Snapdragon based Windows tablet/notebook hybrid things. While running Windows on those is actually not a terribly bad experience now that WSL is out, I would like to see Linux run on those as well in the future. Unfortunately as far as I'm aware so far nobody was able to run self built binaries on the built-in UEFI version. Turns out, it's a problem with aligning the start of the header to 4k. Once we do that, binaries can be loaded just fine and run. So to maintain compatibility with that device, this patch set just bumps the header alignment to 4K always on arm64-efi. This shouldn't hurt too much for not affected targets and allows us to have a single grub binary that can then chain load Linux properly. Alex Alexander Graf (2): mkimage: Simplify header size logic mkimage: arm64-efi: Align first section to page util/mkimage.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) -- 2.19.0

reply via email to


Emergency Medicine

The NorthShore Division of Emergency Medicine is dedicated to excellent patient care, bedside clinical teaching for a variety of learners, advancing care in an acute setting through research and providing education and service to our community.


t v be (-1 - 1)*(-7)/2. Solve -d*b + v*b = 2 for b.
2
Suppose 0 = 3*l + 2*r - 120, -29 = -l - r + 4*r. Solve 40 = l*j - 150 for j.
5
Suppose 0 = -y - 53 + 50. Let b be (0 - -2)*(y - -4). Suppose -2*w + b = i, w - 5*i = -0*w + 12. Solve 0*x - w*x + 6 = 0 for x.
3
Suppose -3*d + 261 = 2*u, -296 = 3*d + 5*u - 575. Solve 2 = -17*o - d for o.
-5
Let r(d) = 43*d - 81. Let w(f) = f**2 + 1. Let b(p) = -r(p) - 2*w(p). Let l be b(-23). Solve l*z - 5*z = -10 for z.
-2
Let c(n) = -n**3 + 7*n**2 + 2*n + 25. Let p be c(7). Let u be 0/(p/104 - (-38)/(-16)). Solve -2*t + 7*t = u for t.
0
Let p = 3177 - 3167. Solve -p*n - 81 + 21 = 0 for n.
-6
Let r be 441/6 - (-3)/6. Let v = r - 80. Let o be (-52)/v - 3/(-9). Solve -3*n - o = 6 for n.
-5
Let q = 18 - 7. Let u be 4 + -6*1 - q. Let k = 18 + u. Solve k - 30 = -5*h for h.
5
Let n = 30 - 23. Suppose -n*s = -20 - 29. Suppose 11 = r + 4*t - s, -4*t = -3*r - 10. Solve 7*h = r*h for h.
0
Suppose 19 = -i - 1. Let q(y) = y**2 + 20*y + 4. Let x be q(i). Suppose -4*m + 12 = -6*f + 3*f, 0 = -5*m - 2*f + 15. Solve m = -x*b - 1 for b.
-1
Suppose 15*g = 326 - 131. Solve 20*o = 7*o - g for o.
-1
Suppose -25*h = -106 - 65 - 29. Solve h*p - 129 = -169 for p.
-5
Suppose 2*d - 2*i - 418 = 0, -338 = -2*d + 3*i + 82. Let h = 209 - d. Solve -4 = -h*a - 14 for a.
-5
Let z(v) = 521*v + 14685. Let w be z(-28). Solve -23*b + w*b = 370 for b.
5
Let r(k) = -k**3 - 10*k**2 - 11*k + 5. Let a be r(-9). Suppose -a*v - 20 = -19*v. Let z = 7 + v. Solve 0 = -z*l - 0*l + 8 for l.
4
Let v = 108 + -112. Let x(l) = 2*l**2 - 7*l - 8. Let n be x(v). Suppose -8*q + n - 12 = 0. Solve -6 + 16 = -q*i for i.
-2
Let t = -47 - -51. Suppose t*k - 12 = 4. Let z be (0 + 0)/(k + -5). Solve -5*j + z + 15 = 0 for j.
3
Suppose 19*n + 228 = 31*n. Solve j = -31*j - n*j for j.
0
Suppose 34*l - 32*l = 8. Suppose 0 = 3*r + 4*d - 18, -d + l - 11 = -5*r. Solve 2*s + 4 = r for s.
-1
Let v be (-1 - 21/2 - -1)/((-15084)/50280). Solve 43 = 78*a - v for a.
1
Let f(v) = -v**3 + 25*v**2 + 66*v - 324. Let n be f(27). Solve n = 4*w + 40*w - 308 for w.
7
Let k(w) = 11*w - 2. Let c be k(1). Let x(o) = 3*o + 4 + 0 + 14*o + o**2 - 1. Let b be x(-17). Solve b*d + 0*d = -c for d.
-3
Let w = 94 + 99. Suppose -189*b - 108 = -w*b. Solve -b = -2*k - 25 for k.
1
Suppose 24 = 5*u + 3*l, -33*u + 30*u - l = -12. Suppose u = 6*z - 3. Solve 4*c + 21 = z for c.
-5
Let h = 4 - 0. Let v be 2 - h*(-2)/(-4). Let s be ((-480)/(-135))/(-16)*-9. Solve v*r - s*r - 2 = 0 for r.
-1
Let z be (2 + 9/(-6))/((-2)/(-20)). Suppose 4*v + 28 = q, z*q + 4*v + 4 = 3*q. Solve -4 + q = -4*y for y.
-1
Let p(m) = m**2 + 12*m - 25. Suppose -827*q = -830*q + 6. Let d be p(q). Solve -o + 0 = -d for o.
3
Let z(y) = -4*y**2 - 36*y - 2. Let f be z(-4). Solve 16*t = f*t + 496 for t.
-8
Suppose -15 = 2*o - 6*y + y, -2*y + 6 = 4*o. Suppose 46*q - 60*q = o. Solve -7*s + 3*s - 4 = q for s.
-1
Suppose -5*r + 1680 = 19*r - 4*r. Solve 0 = 4*h + 17*h + r for h.
-4
Let q = -28 + 54. Let y(a) = a**2 + 26*a + 25. Let r be y(-1). Solve r = -5*t - q + 1 for t.
-5
Suppose 3 = -5*f + 13. Let r(k) = -k**2 + 4*k. Let y be r(4). Suppose y = -a - 4, -6*b = -4*b - a - 24. Solve -7*o + f*o = -b for o.
2
Suppose 2*l - 4*d - 73 + 11 = 0, 2*l + 2*d = 62. Solve -21*k - 11 - l = 0 for k.
-2
Let r(g) = 5*g - 1. Let s be r(2). Suppose -48*h + 7457 = -12895. Let i = -422 + h. Solve c = -i*c + s for c.
3
Suppose -265*y + 168657 = 20787. Solve 105*j = 12*j - y for j.
-6
Suppose 387*n + 3669 + 2865 = 409*n. Solve 15*p + 207 = n for p.
6
Suppose 0 = 3*j + 2*j + 3*g - 45, -j - 4*g + 26 = 0. Let a = j + -17. Let m be a/(-77) - (-27)/7. Solve -m*p + 7 = -5 for p.
3
Suppose 13*b = 14*b - 20 + 3. Solve -b*q = 25*q + 42 for q.
-1
Suppose 0 = 3*t + 14 - 23. Suppose 0 = 2*v + 5*v - t*v. Suppose v = h + 3*h - 20. Solve h + 0 = 5*g for g.
1
Suppose m - 3*n = 32, -67*m + 70*m - 102 = 3*n. Solve 5*y - m*y - 240 = 0 for y.
-8
Let n be 10 - (0 - -1) - 0. Let r = -582 + 497. Let c = r - -85. Solve -n = 3*z - c*z for z.
-3
Let m(j) = j**2 - 5*j - 1. Let k = -77 + 79. Let b(p) = -p**2 + 6*p. Let g(x) = k*b(x) + 3*m(x). Let v be g(5). Solve -v*f = -2*f - 15 for f.
3
Suppose 7*c = -6*c + 205 - 166. Solve -c*z + 11 = 23 for z.
-4
Let x = 125 + -20. Let w = 109 - x. Let h(k) = k. Let a be h(1). Solve -m - w = -a for m.
-3
Suppose 2*f - 274 = 4*k, 3*f - 2*f = -2*k + 109. Solve -15*d - f = -228 for d.
7
Let w be 0/(-6 + 3 - (-2)/(-4)*-2). Let h(y) = -y**2 - 7*y - 3. Let l be h(-6). Suppose -r + l + 0 = w. Solve 4 = r*j - 8 for j.
4
Let p be -200*(1 - ((-55)/10 - -7)). Solve -21*h = -h + p for h.
-5
Let f be 0*((-1)/(-2) + 0). Let m(b) = 26*b**3 + 10*b + 42*b**3 + 11*b**2 + 5 - 67*b**3. Let r be m(-10). Solve -5*s = -f - r for s.
1
Suppose 6 = 3*p - 2*r, 0*r = -4*p - r + 19. Suppose 3*y + 3 = -4*s, 5*s = -y - 2*y. Suppose 4*q - 7 = -0*a + a, 0 = -a - s*q + 21. Solve w + a = p*w for w.
3
Suppose -11*i + 832 = -4*i + i. Solve 0 = 35*q - i - 36 for q.
4
Let l(c) = c**2 + 44*c - 21. Let j be (-4)/3 - (-1572)/(-36). Let q be l(j). Solve 3*t - 33 = -q for t.
3
Suppose 46 - 74 = -4*z. Suppose -z*x = -17 - 11. Suppose -h = -x*h. Solve h = -2*t - 10 for t.
-5
Let y be 1*((6 - -9) + -1). Suppose 4*m - 2*o - 22 = -0*o, -5*m - 2*o = -y. Solve 2 = u + m for u.
-2
Let v be (-2 + -126)*((-575)/460 - 6/(-8)). Solve -63*l = -v*l + 3 for l.
3
Suppose -33 = 3*c - 0*c. Let r be (1 - c/(-5))/(27/(-90)). Suppose -a - r*t = -21, -2*a = -3*t + 8*t - 30. Solve -3*j - 2*j = -a for j.
1
Suppose 0 = -5*m - f + 20, -5*f + 8 = -4*m + 24. Let z(k) = 6435*k - 45039. Let x be z(7). Solve m*j + x = 7*j for j.
2
Let c be (3/(-1) - -3) + -2 - -4. Suppose -3*f = c*o - 242, -11 - 1 = -3*f. Let a be (-4 - -1)*o/(-69). Solve -a*k = -0 - 10 for k.
2
Let x be -8 + 206/4 + (-7)/2. Solve 0 = -42*u + x*u for u.
0
Let w be 4/(-18) - (-328)/18. Suppose -2*i = -3*l + 50, -l + 0*i + 10 = i. Suppose -w = -4*j - l. Solve -t - j = -0 for t.
-1
Let b be (72/(-30))/((-3)/(-10)). Let j = b - -17. Solve -6 = 7*h - j*h for h.
3
Suppose -70*l - 76967 - 7915 = -199*l. Solve -661*b = -l*b + 18 for b.
-6
Suppose 14 = 9*r - 13. Let k(h) = h**3 - 2*h**2 - 2*h + 6. Let w be k(r). Let d = 109 + -102. Solve w + d = -4*s for s.
-4
Let z(l) = l**3 + 26*l**2 + 86*l - 10. Let d be z(-22). Solve -d*r = -46*r for r.
0
Suppose -29*l + 7*l = -176. Suppose -l*h - 328 + 568 = 0. Solve h*s - 8 = 32*s for s.
-4
Let d be 778*(26/(-36) + (-16)/(-72)). Let r = d - -389. Solve -9 = -3*l - r for l.
3
Suppose -v + 40*j + 4 = 42*j, 2*v = -j + 8. Suppose v*i - 2*i = -2*i. Suppose -4*p + q - 2*q = -13, 0 = -3*p + q + 15. Solve i = -3*m + p*m + 5 for m.
-5
Suppose -9*d - 28 = -397. Suppose 9 = -2*a + d. Solve -14*r + a = -18*r for r.
-4
Suppose 13*x = -14*x - 28*x + 55. Let i be ((-2)/3)/(2/(-12)). Suppose u = 2*u - 5. Solve u*n + x = -i for n.
-1
Let w(k) = -26*k + 11*k + 14*k - 2. Suppose 3*q = 2 + 7, -3*j - 2*q - 6 = 0. Let n be w(j). Solve 3 = -n*r - 3 for r.
-3
Let o(j) = 166*j - 2147. Let g be o(13). Solve g*x - 2 - 31 = 0 for x.
3
Let h(p) = -p**3 + 26*p**2 + 25*p + 47. Let a be h(27). Let d be (-78)/(-273) - 47/a. Solve d*y = 11*y for y.
0
Let r be 6 + -5 + -1 + 3. Suppose 5*b - 80 - 90 = 0. Let k = -22 + b. Solve 0 = -r*m + k for m.
4
Let m(r) = r**3 + 2*r**2 + 5*r + 5. Let y be m(4). Let b = y - 116. Solve 4*t - 4 = b*t for t.
-4
Suppose -191*z = 16 - 16. Solve -2*w - w - 54*w = z for w.
0
Let c(d) = 6*d + 34. Let z be c(29). Let y be z/36 - (-4)/18. Solve -x + 3*x - y = 0 for x.
3
Let l = 2828 + -2738. Solve -62 = 28*t - l for t.
1
Let i(j) = 11*j**2 + j + 2. Let w be i(3). Suppose -52*o + 103*o + 300 = 48*o. Let v = w + o. Solve 2*s = -v - 0 for s.
-2
Suppose 24*i + 18 = 42*i. Suppose y = -2*y. Suppose -8 = -2*n + 3*l + 2, 2*n + 3*l + 2 = y. Solve -z + n = i for z.
1
Let l(q) = -7*q**3 - 21*q**2 - 29*q - 31. Let o(w) = -8*w**3 - 21*w**2 - 29*w - 32. Let m(d) = -6*l(d) + 5*o(d). Let n be m(-9). Solve 0 = n*g + 16 for g.
-2
Suppose -51*y + 127 + 383 = 0. Let u(g) = 4*g. Let q be u(-1). Let v = q - -4. Solve -5*i - y = -v*i for i.
-2
Suppose 2*g + 239*u = 242*u + 8, -20 = -5*u. Solve -10 = 19*l - g for l.
0
Suppose -22 = 3*t + 8*t - 1122. Solve 7 = 93*z - t*z for z.
-1
Let x be -21 + 1372/70 - (1 + 54/(-10)). Solve x*g - 70 + 46 = 0 for g.
8
Let x = -8132 +


Femoral fracture in children (a prospective study of two hundred and four fractures).
A PROSPECTIVE study of 204 femoral fractures in 200 children admitted continuously to a single surgical unit during a period of two years (1979-81), was carried out to determine the adverse effects on the overall outcome of treatment, due to lack of standard orthopaedic equipment to apply low friction traction. There was no case of fracture of the femoral neck, confirming its rarity in children. Left femur was fractured more than the right and middle third shaft was the commonest site. Spiral type of fracture was more common than the transverse or oblique type. Thirty percent of fractures were due to the Road Traffic Accidents while sport injuries were almost the same in number. 32 percent of total cases had other associated injuries, where skull fractures headed the list. To our satisfaction there was no death in this series. The stay in hospital for various different groups ranged from 21 days to 36 days. The average follow-up was 10 months (range 6 months to 2 years). All femoral fractures united and the only noteworthy complications was in two patients at the end of two years, who had residual shortening of upto 1.2 centimetres. The absence of longitudinal overgrowth in our series (a well known complication) may be due to our failure to maintain adequate reduction of the over-riding fragments probably due to the non-availability of the low friction traction appliances. A malposition of femoral fracture in children, to certain limits, should be left to the Nature's kindly help of remodelling the younger bones and surgical intervention should be avoided.


Q:

static não compartilha valores entre usuários web

É possível eu utilizar uma propriedade static sem compartilhar os valores entre usuários diferentes?
Mais ou menos como Session?
Ex: do cenário:
private static double valorRetorno;

public CalculaValor()
{
 valorRetorno = //recupera valor do cliente
}

public Imprimi()
{
 Imprimi(valorRetorno); //algo do tipo
}

// lógica
Cliente 01 passa pela etapa CalculaValor()
Cliente 01 = valor 25,00
Cliente 01 vai para o setor de Imprimir()
Cliente 02 - entra no Calcular Valor
Cliente 02 = valor 30,00

Cliente 01 - acaba imprimindo o valor 30,00

OBS: Se eu só remover a propriedade static o imprime terá o valorRetorno como zero.

A:

Não é possível, o static justamente indica um compartilhamento do dado por toda aplicação. Com este modificador o membro passa ser único para a classe e todas as instâncias a acessam.
Não sei se entendi o que você deseja mas a solução neste caso parece ser manter o membro como parte da instância. Talvez ele deva ser usado de outra forma, só com o que está na pergunta não dá para saber a forma correto de uso. E não sei se é importante para o problema.
Não vou comentar sobre o fato de estar usando um valor monetário como double.


[Ureteral replacement in newborn infants--case report].
This is a description of a ureteric replacement operation employing a modified Culp-de-Weerd method for the ileopelvic segment of the ureter combined with a Cohen ureteric reimplantation. This operation was carried out in a 2-month-old infant with a stenosis of the left ureter. 7 months postoperatively the left kidney is normal as far as its anatomy and function is concerned.


The 2011-12 title winners traded blows with rivals Manchester United throughout the campaign before being crowned winners with virtually the last kick of the season, but now trail Sir Alex Ferguson's side by four points.

And the Ivory Coast international thinks Roberto Mancini's men must work hard on new systems and tactics in order to keep opponents guessing, or else teams will become wise to City's weaknesses and exploit them.

"Whereas perhaps we caught a lot of teams by surprise last season, this year our opponents know how we play," he told The Sun.

"Sometimes we have to change our system to try to break teams down. The other teams and players can analyse how we play, study our systems and styles and work out ways to stop us.

"Even sides who are near the bottom of the table are more than capable of making it difficult. A team that lost 4-0 against us last season will have learned and will change their tactics.

"They won't want to get beaten heavily again so they will pack men behind the ball and make it difficult for us to find a way through.

"That's why I love football. There is always a challenge and always a puzzle to try to solve - and when you get past that it's very rewarding.

"You have to use your skill, intelligence and strength to improve and try to overcome each obstacle. In contrast, when a game is too easy, I get very bored."

Toure even suggests the shift in tactics from other teams this year means he is now in a position to dominate games further - and he feels his side has learnt how to win the hard way ahead of a festive fixture pile-up.

He added: "I see a lot more of the ball because we have to control games whereas last year teams came to attack us. I have to stay back more now because of the threat of counter attacks.

"I think the key at this time is getting the results you need rather than how you actually play. We have to win and that means digging deep into our energy reserves because we will be tired and won't get much rest."


Q:

How to set transparent for user control in wpf

I create a message box user control, radius for corner as below image, however, I cannot set transaparent for this user control. Please help me.
Thanks so much.

Update:
I've implemented as your instruction, but it isn't still transparent, I think that background's user control is white color, please help me. The below is my code:
<UserControl x:Class="Nanote.TestDialog"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             d:DesignHeight="200"
             Height="200" Width="450"
             d:DesignWidth="300"
             mc:Ignorable="d">
    <Border CornerRadius="20" BorderBrush="Black" BorderThickness="10"
        Background="Transparent">
        <Rectangle Fill="White" Margin="10" />
    </Border>
</UserControl>

A:

Consider the following XAML:
<Grid Background="Red">
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
        <RowDefinition />
    </Grid.RowDefinitions>
    <Grid Margin="20">
        <Border CornerRadius="20" BorderBrush="Black" BorderThickness="10"
            Background="Transparent">
            <Rectangle Fill="White" />
        </Border>
    </Grid>
    <Grid Grid.Row="1" Margin="20">
        <Rectangle Fill="White" />
        <Border CornerRadius="20" BorderBrush="Black" BorderThickness="10"
            Background="Transparent" />
    </Grid>
    <Border Grid.Row="2" CornerRadius="20" BorderBrush="Black" BorderThickness="10"
        Background="White" Margin="20">
        <Rectangle Fill="White" Margin="10" />
    </Border>
</Grid>

This produces the following output:

Hopefully you can now work out your own solution from this example.

A:

First set the background of your control to transparent then add border with radius(CornerRadius="10") , INSIDE that border you put the content GRID
 <Border BorderBrush="Black"  BorderThickness="1,1,1,1" Background="White" CornerRadius="10,10,10,10">
 <Grid ></Grid>
 </Border>


Social workers as care coordinators: Leaders in ensuring effective, compassionate care.
The concept of care coordination is at the forefront of national conversations in the context of health care reform. As pediatric social workers, we are interested in how care coordination benefits our patients, and which disciplines are providing coordination services. We have determined that significant overlap exists between the work social workers are already doing in inpatient and outpatient medical settings and the literature's definition of care coordination activities. This article outlines our process of literature review and creation of a working definition of care coordination, and frames the concepts we believe remain central to the process of care coordination.


Q:

ExpressionChangedAfterItHasBeenCheckedError: by iterating a map

I have a simple Angular component, that on rendering throw the following error:
MyComponent.html:10 ERROR Error: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked.
Previous value: 'ngForOf: [object Map Iterator]'.
Current value: 'ngForOf: [object Map Iterator]'.

The error is thrown twice, even when moved to a bare-minimum Angular project with no other code (just an AppComponent wrapping this component).
I minimized the code to the most minimal form that still reproduces the problem. I replaced the data service with a hardcoded observable.
Component
@Component({
  selector: 'my-component',
  templateUrl: './my.component.html',
  styleUrls: ['./my.component.scss'],
})
export class MyComponent implements OnInit, OnDestroy {

  private cobs: Map<number, string>;
  private cobSub: Subscription;

  constructor() {}

  ngOnInit() {
    // originally data comes from a service...
    this.cobSub = of(new Map<number, string>([[1, 'a'], [2, 'b']]))
      .subscribe({
        next: cobs => { this.cobs = cobs; },
      });
  }

  ngOnDestroy(): void {
    this.cobSub.unsubscribe();
  }

}

Note that asyncPipe is more common for use in this sort of scenario - but I cannot use it.
Template

      Id
      Class of Business

      {{key}}
      {{cobs.get(key)}}

Why is the problem happening?
How it can be fixed?

A:

It's problem with the way you iterating on a Map, you can try:
export class AppComponent implements OnInit {
  private cobs = new Map<number, string>();
  private cobSub: Subscription;

  constructor() {}

  ngOnInit() {
    this.cobSub = of(new Map<number, string>([[1, 'a'], [2, 'b']]))
      .subscribe( cobs => {
        this.cobs = cobs;
      });
  }

  getKeys(map){
    return Array.from(map.keys()); // add it
  }
  ngOnDestroy(): void {
    this.cobSub.unsubscribe();
  }
}

in html:

      Id
      Class of Business

      {{key}}
      {{cobs.get(key)}}

demo
and if You are using Angular 6.1+ , you can use default pipe keyvalue :

          {{key.key}}
          {{key.value}}


Make your escape.

Get more for your money with Cross-Buy – purchase this game for PlayStation 4 and receive the PlayStation Vita version at no extra cost.

Deep in the belly of fiendish mastermind Bakuki’s sinister gloop factory, Lil and Laarg await their fate – to be fed into Bakuki’s evil glooping machines…

Now it’s down to you to help Lil and Laarg with their escape plan. You’ll need all your powers of logic and quick thinking to help them avoid getting splattered, battered and squished by all the traps and pitfalls hidden around the gloop factory.


Q:

If I flip a coin 1000 times in a row and it lands on heads all 1000 times, what is the probability that it's an unfair coin?

Consider a two-sided coin. If I flip it $1000$ times and it lands heads up for each flip, what is the probability that the coin is unfair, and how do we quantify that if it is unfair?
Furthermore, would it still be considered unfair for $50$ straight heads? $20$? $7$?

A:

First of all, you must understand that there is no such thing as a perfectly fair coin, because there is nothing in the real world that conforms perfectly to some theoretical model.  So a useful definition of "fair coin" is one, that for practical purposes behaves like fair. In other words, no human flipping it for even a very long time, would be able to tell the difference.  That means, one can assume, that the probability of heads or tails on that coin, is $1/2$.
Whether your particular coin is fair (according to above definition) or not, cannot be assigned a "probability". Instead, statistical methods must be used.
Here, you make a so called "null-hypothesis": "the coin is fair".  You then proceed to calculate the probability of the event you observed (to be precise: the event, or something at least as "strange"), assuming the null-hypothesis were true.  In your case, the probability of your event, 1000 heads, or something at least as strange, is $2\times1/2^{1000}$ (that is because you also count 1000 tails).
Now, with statistics, you can never say anything for sure.  You need to define, what you consider your "confidence level".  It's like saying in court "beyond a reasonable doubt".  Let's say you are willing to assume confidence level of 0.999  .  That means, if something that had supposedly less than 0.001 chance of happening, actually happened, then you are going to say, "I am confident enough that my assumptions must be wrong".
In your case, if you assume the confidence level of 0.999, and you have 1000 heads in 1000 throws, then you can say, "the assumption of the null hypothesis must be wrong, and the coin must be unfair".
Same with 50 heads in 50 throws, or 20 heads in 20 throws.  But not with 7, not at this confidence level.  With 7 heads (or tails), the probability is $2 \times 1/2 ^ {7}$ , which is more than 0.001.
But if you assume confidence level at 95% (which is commonly done in less strict disciplines of science), then even 7 heads means "unfair".
Notice that you can never actually "prove" the null hypothesis.  You can only reject it, based on what you observe is happening, and your "standard of confidence".  This is in fact what most scientists do - they reject hypotheses based on evidence and the accepted standards of confidence.
If your events do not disprove your hypothesis, that does not necessarily mean, it must be true!  It just means, it withstood the scrutiny so far.  You can also say "the results are consistent with the hypothesis being true" (scientists frequently use this phrase).  If a hypothesis is standing for a long time without anybody being able to produce results that disprove it, it becomes generally accepted.  However, sometimes even after hundreds of years, some new results might come up which disprove it.   Such was the case of General Relativity "disproving" Newton's classical theory.

A:

If you take a coin you have modified so that it always lands in heads and you get $1000$ heads then the probability of it being unfair is $100\%$.
If you take a coin you have crafted yourself and carefully made sure that it is a fair coin and then you get $1000$ heads then the probability of it being unfair is $0\%$.
Next, you fill a box with coins of both types, then take a random coin.

$NF$ : fair coins in the box.
$NU$ : unfair coins in the box
$P(U)$ : probability of having taken an unfair coin
$$P(U) = \frac{NU}{NF + NU}$$
$P(F)$ : probability of having taken a fair coin
$$ P(F) = \frac{NF}{NF + NU} = 1 - P(U) $$
$P(H \mid{U})$ : Probability of having 1000 heads conditioned to having take
an unfair coin
$$P(H\mid{U}) = 1 $$
$P(H\mid{F})$ : Probability of having 1000 heads conditioned to having taken
a fair coin
$$P(H\mid{F}) = \left( \tfrac{1}{2} \right)^{1000}$$
$P(H)$ : Probability of having 1000 heads

\begin{align}
P(H) &= P(U \cap H) + P(F \cap H)\\
&= P(H \mid{U})P(U) + P(H \mid{F})P(F)\\
&= P(U) + P(H \mid{F})P(F)
\end{align}
By applying Bayes theorem :
$P(U \mid{H})$ : probability of the coin being unfair conditioned to getting 1000 heads
$$P(U\mid{H}) = \frac{P(H \mid{U})P(U)}{P(H)} = \frac{P(U)}{P(U) + P(H\mid{F})P(F)}$$
And that is your answer.

In example
If $P(U)=1/(6 \cdot 10^{27})$ ($1$ out of every $6 \cdot 10^{27}$ coins are unfair) and you get 1000 heads then the probability of the coin being unfair is
\begin{align}
\mathbf{99}.&999999999999999999999999999999999999999999999999999999999999999999999\\
&999999999999999999999999999999999999999999999999999999999999999999999\\
&999999999999999999999999999999999999999999999999999999999999999999999\\
&999999999999999999999999999999999999999999999999999999999999999944\%
\end{align}
Very small coins like the USA cent have a weight of $2.5g$. We can safely assume that there are no coins with a weight less than 1 gram.
Earth has a weight of less than $6 \cdot 10^{27}$ grams. Thus we know that there are less than $6 \cdot 10^{27}$ coins. We know that there is at least one unfair coin ( I have seen coins with two heads and zero tails) thus we know that $P(U) \ge 1/(6 \cdot 10^{27})$.
And thus we can conclude that if you get 1000 heads then the probability of the coin being unfair is at least
\begin{align}
\mathbf{99}.&999999999999999999999999999999999999999999999999999999999999999999999\\
&999999999999999999999999999999999999999999999999999999999999999999999\\
&999999999999999999999999999999999999999999999999999999999999999999999\\
&999999999999999999999999999999999999999999999999999999999999999944\%
\end{align}
This analysis is only valid if you take a random coin and only if coins are either $100\%$ fair or $100\%$ unfair.
It is still a good indication that yes, with $1000$ heads you can be certain  beyond any reasonable doubt that the coin is unfair.

A:

In order to assign a probability to this event you need to start with a prior probability which can then be updated based on the data.  Probabilities can't really be derived from experience alone, you need to start with some sort of "inductive bias" in order to draw conclusions from evidence.
The heuristic approach of hypothesis testing gives a framework for making decisions in these situations, but it doesn't pretend to assign probabilities to those hypotheses.


High incidence of nitrosamine-induced tumorigenesis in mice lacking DNA repair methyltransferase.
The enzyme O6-methylguanine-DNA methyltransferase repairs alkylation-induced DNA damage, O6-methylguanine and O4-methylthymine, the former being formed more frequently. Previously, by means of gene targeting, we generated mice in which alleles for methyltransferase were disrupted. We now use these mouse lines, which are totally deficient in methyltransferase activity, to examine protective effects of the enzyme against tumor formation. In gene-targeted female mice given an i.p. injection of 5 mg/kg of dimethylnitrosamine, a larger number of liver and lung tumors occurred, as compared with normal female mice treated in the same manner. In male mice given a lower dose of carcinogen, the difference between normal and gene-targeted mice was statistically insignificant although more tumors did form in the gene-targeted mice. Methyltransferase apparently afforded protection from nitrosamine-induced tumorigenesis.


This looks more like tryGetStuff() to me...
–
Bill MichellDec 23 '11 at 9:46

8

This is not a 'getter'. This term is used for the read accessor of a property, not a method you accidentally put a 'get' in the name.
–
Boris YankovDec 27 '11 at 20:00

3

I don't know if that second example is a fair example of this clean code book you mention, or someone getting the wrong end of the stick about it, but one thing that brittle mess is not, is clean code.
–
Jon HannaJan 24 '14 at 17:36

16 Answers
16

As a rule of thumb, the way I do things is as follows: if getting the stuff is computationally cheap, (or if most chances are that it will be found in the cache,) then your style of getStuff() is fine. If getting the stuff is known to be computationally expensive, so expensive that advertising its expensiveness is necessary at the interface, then I would not call it getStuff(), I would call it calculateStuff() or something like that, so as to indicate that there will be some work to do.

In either case, the way work tells you to do things is lame, because getStuff() will blow up if loadStuff() has not been called in advance, so they essentially want you to complicate your interface by introducing order-of-operations complexity to it. Order-of-operations is pretty much about the worst kind of complexity that I can think of.

+1 for mentioning the order-of-operations complexity. As a workaround, maybe work will ask me to always call loadStuff() in the constructor, but that would be bad too because it means it will always have to be loaded. In the first example, data is lazily loaded only when needed, which is as good as it can be.
–
this.lau_Dec 23 '11 at 9:49

4

I usually follow the rule of "if it's really cheap, use a property getter. If it is expensive, use a function". That usually serves me well, and naming appropriately like you indicated to emphasize it seems also good to me.
–
Denis TrollerDec 23 '11 at 15:37

3

if it can fail - it's not a getter. In this case what if the DB link is down?
–
Martin BeckettDec 23 '11 at 15:58

3

+1, I'm a bit in shock at how many wrong answers have been posted. Getters/Setters exist to hide implementation details, otherwise the variable should just be made public.
–
IzkataDec 23 '11 at 17:20

2

Don't forget that requiring the loadStuff() function be called prior to the getStuff() function also means that the class is not properly abstracting away what is going on under the hood.
–
rjziiJan 4 '12 at 15:24

But getting data from a database is a whole lot more than "logic". It involves a series of very expensive operations where lots of things can go wrong, and in a non-deterministic way. I'd hesitate do that implicitly in a getter.

On the other hand, most ORMs support lazy loading of collections, which is basically exactly what you're doing.

They tell me there should be as little logic as possible in getters and setters.

There needs to be as much logic as is necessary to fulfil the needs of the class. My personal preference is for as little as possible, but when maintaining code, you usually have to leave the original interface with the existing getters/setters, but put lots of logic in them to correct newer business logic (as an example, a "customers" getter in a post-911 environment has to meet "know your customer" and OFAC regulations, combined with a company policy prohibiting the appearance of customers from certain countries from appearing [such as Cuba or Iran]).

In your example, I prefer yours and dislike the "uncle bob" sample as the "uncle bob" version requires users/maintainers to remember to call loadStuff() before they call getStuff() - this is a recipe for disaster if any single one of your maintainers forgets (or worse, never knew). Most of the places I've worked in the past decade are still using code that is more than a decade old, so ease of maintenance is a critical factor to consider.

Forget everyone's rules of thumb about what a get method should or should not do. A class should present an abstraction of something. Your class has readable stuff. In Java it is conventional to use 'get' methods to read properties. Billions of lines of frameworks have been written expecting to read stuff by calling getStuff. If you name your function fetchStuff or anything other than getStuff, then your class will be incompatible with all those frameworks.

You might point them to Hibernate, where 'getStuff()' can do some very complicated things, and throws a RuntimeException on failure.

Which just tends to make other code much more redundant and harder to read because you have to start wading through all of the similar calls. Additionally, calling loader functions or similar breaks the whole purpose of even using OOP in that you are no longer being abstracted away from the implementation details of the object you are working with. If you have a clientRoster object, you shouldn't have to care about how getNames works, as you would if you have to call a loadNames, you should just know that getNames gives you a List<String> with the names of the clients.

Thus, is sounds like the issue is more about semantics and the best name for the function to get the data. If the company (and others) has an issue with the get and set prefix, then how about calling the function something like retrieveNames instead? It says what is going on but doesn't imply that the operation would be instantaneous as might be expected of a get method.

In terms of logic in an accessor method, keep it to a minimum as they are generally implied to be instantaneous with only nominal interaction occurring with the variable. However, that also generally only applies to simple types, complex data types (i.e. List) I find harder to properly encapsulate in a property and generally use other methods for interacting with them as opposed to a strict mutator and accessor.

I don't completely agree on this. I agree that it should have no side effects, but I think it's perfectly fine to implement it in a way that differentiates it from a field. Looking at the .Net BCL, InvalidOperationException is widely used when looking at getters. Also, see MikeNakis answer on order-of-operations.
–
MaxDec 23 '11 at 11:43

1

@TMN: In a best case scenario the class should be organized in a way such that getters don't need to run operations capable of thowing exception. Minimizing the places that can throw exceptions leads to less unexpected surprises.
–
hugomgDec 23 '11 at 14:12

5

I'm going to disagree with the second point with a specific example: foo.setAngle(361); bar = foo.getAngle(). bar could be 361, but it might also legitimately be 1 if angles are bound to a range.
–
zzzzBovDec 23 '11 at 15:00

A getter which invokes other properties and methods in order to compute its own value also implies a dependency. Eg, if your property has to be able to compute itself, and doing so requires another member to be set, then you have to worry about accidental null-references if your property is accessed in initialization code where all members are not necessarily set.

That doesn't mean 'never access another member that isn't the properties backing field within the getter' it just means pay attention to what you are implying about what the required state of the object is, and if that matches the context you expect this property to be accessed in.

However, in the two concrete examples you gave, the reason I would choose one over the other is entirely different. Your getter is initialized on first access, eg, Lazy Initialization. The second example is assumed to be initialized at some prior point, eg, Explicit Initialization.

When exactly initialization occurs may or may not be important.

For example it could be very very slow, and needs to be done during a load step where the user is expecting a delay, rather than performance unexpectedly hiccuping when the user first triggers access (ie, user right clicks, , context menu appears, user has already right clicked again).

Also, sometimes there is an obvious point in execution where everything that can affect/dirty the cached property value occurs. You may even be verifying that none of the dependencies change and throwing exceptions later on. In this situation it makes sense to also cache the value at that point, even if it isn't particularly expensive to compute, just to avoid making the code-execution more complex and harder to follow mentally.

That said, Lazy Initialization makes a lot of sense in a lot of other situations. So, as often happens in programming its hard to boil down to a rule, it comes down to the concrete code.

Be careful about this, you can wind up exposing too much of your internal state. You don't want to wind up with a lot of empty loadFoo() or preloadDummyReferences() or createDefaultValuesForUninitializedFields() methods just because the initial implementation of your class needed them.
–
TMNDec 23 '11 at 13:21

A getter is just supposed to be a getter. So less logic could be more suitable. If you think generally it is a way to access a field or sth. else. Manupulation and validation, etc. are different jobs. Mine is just an idea about keeping them simple.

Personally, I would expose the requirement of Stuff via a parameter in the constructor, and allow whichever class is instantiating stuff to do the work of figuring out where it should come from. If stuff is null, it should return null. I prefer not to attempt clever solutions like the OP's original because it's an easy way to hide bugs deep inside your implementation where it's not at all obvious what might be going wrong when something breaks.

There are more important issues then just "appropriateness" here and you should base your decision on those. Mainly, the big decision here is wether you want to alow people to bypass the cache or not.

First, think about if there is a way to reorganize your code so all necessary load calls and cache management are done in the constructor/initializer. If this is possible you can create a class whose invariant allows you do to the simple getter from part 2 with the safety of the complex getter from part 1. (A win-win scenario)

If you cannot create such a class, decide if you have a tradeoff and need to decide wether you want to allow the consumer to skip the cache-checking code or not.

If it is important that the consumer never skip the cache check and you don't mind the performance penalties, then couple the check inside the getter and make it impossible for the consumer to do the wrong thing.

If it is OK to skip the cache check or it is very important that you are guaranteed O(1) performance in the getter then use separate calls.

As you might have already noted, I am not a big fan of the "clean-code", "split everything into tiny functions" philosophy. If you have a bunch of orthogonal functions that can be called in any order splitting them will give you more expressive power at little cost. However, if your functions have order dependencies (or are only really useful in a particular order) then splitting them only increases the number of ways you can do wrong things, while adding little benefit.

In my opinion, Getters should not have a lot of logic in them. They should not have side effects and you should never get an exception from them. Unless of course, you know what you're doing. Most of my getters have no logic in them and just go to a field. But the notable exception to that was with a public API that needed to be as simple as possible to use. So I had one getter that would fail if another getter hadn't been called. The solution? A line of code like var throwaway=MyGetter; in the getter that depended upon it. I'm not proud of it, but I still do not see a cleaner way to do it

This looks like a read from cache with lazy loading. As others have noted, checking and loading may belong in other methods. Loading may need to be synchronized so you don't get twenty threads all loading at the same time.

It might be appropriate to use a name getCachedStuff() for the getter as it won't have a consistent execution time.

Depending on how the cacheInvalid() routine works, the check for null may not be necessary. I wouldn't expect the cache to be valid unless stuff had been populated from the database.

IMHO it is very simple if you use a design by contract. Decide what should your getter provide and just code accordingly (simple code or some complex logic that may be involved or delegated somewhere).

The part of clean code that is relevant here is the clarity. Getters are typically used to transform data from it's internal representation to the caller's expected representation.

For example:

Player::getScores() could be internally represented as: a list of integers, a list of decimals, or a string containing a delimited list of scores, calling this method should not log onto Steam, play 20 games of Pac-Man and then return the scores.

Programmers also expect to be able to loop through 100 players while calling getScores() for each of them. Now this causes 2000 games of Pac-Man, if you hide this information, programmers will be unsure of what a getter actually means in your code, which defeats the purpose of using getters at all.

At the very least, using a different name means that the method will not be confused for a getter.