P(A|B) = [P(A)*P(B|A)]/P(B), all the rest is commentary.
-
Astral Codex Ten tagline.
Edwin Thompson (i.e. E.T.) Jaynes was a Ph.D student of Eugene Wigner, the unreasonably effective Nobel laureate physicist. Wigner is reported to have later characterized Jaynes as "one of the two most under-appreciated people in physics." Jaynes's PhD thesis was on ferroelectricity, and apart from contributions to probability and statistical mechanics, he is perhaps most known for his work in quantum optics.
Jaynes defended his PhD at Princeton in 1950, and then moved to Stanford. He did what one is supposed to do there: invested in a Palo Alto tech startup. Since his first field of research could be called "applied classical electrodynamics", he also consulted for them, calculating behaviour of electrons in cavity resonators and working on magnetic resonance. Apparently this led to him buying a fairly large house -- though this was the 1950s, when normal people could have houses in Palo Alto. He bought an even larger house when he moved to University of Washington at St. Louis in 1960.
In 1957 Jaynes published
two
papers
on ``Information Theory and Statistical Mechanics''
concerned with formulating (Gibbs's picture of) statistical mechanics in terms of
information theory, first for classical and second for quantum systems.
At about the same time he delivered a series of lectures on
"Probability theory in science and engineering" at the Field Research Laboratory
of the Mobil oil company.
The published version
of 5 of these lectures is the first draft of the PT:TLoS. It includes
a now-extinct section on Gibbs model and one titled "why does statistical mechanics work?",
as well as (much) briefer versions of chapters 1, 2, 4, 5, 6, 11, and 18 of PT:TLoS,
for a total of about 200 typed pages overall.
It also contains a "historical introduction" explaining
"how it could happen that a person who is a rather strange
mixture of two thirds theoretical physicist and one-third
electrical engineer could grow up to be a hero and a scholar get really worried about the foundations of probability theory".
The answer, of course, is by "trying to understand what statistical mechanics
is all about and how it is related to communication theory".
I'd say that struggle that still goes on for many of us!
Jaynes says that "in the years 1957–1970 the lectures were repeated, with steadily increasing content, at many other universities and research laboratories." In 1974 some of this steadily increasing content was assembled into a 446 page "fragmentary edition" entitled "Probability theory with applications in science and engineering" with a stated goal of eventually having "approximately 30 Lectures" in the project. It now also included some of what will become chapters 10, 13, 19 and 22 of PT:TLoS, as well as a chapter on irreversible statistical mechanics. One can also find in it what is, in hindsight, a rather genteel "word of explanation and apology to mathematicians who may happen on this book not written for them", excusing absence of measure-theoretic notions. Jaynes says that he "is not opposed" to them and "will gladly use and teach them as soon as" he finds "one specific real application where they are needed". In the PT:TLoS the rejection of modern mathematical toolkit continues unabated (arguably with some detrimental effects, more on this later), but any tone of apology is gone.
The magnum opus itself was woefully unfinished at the time of Jaynes's death in 1998. The manuscript was massaged into a book shape by Jaynes's former graduate student Larry Bretthorst, resulting in the 727 page commentary on Bayes's theorem that we are now reviewing.
While no Australian fashion models seem to be available to distill the core idea of PT:TLoS into a single passage, we can get something reasonably close from Jaynes himself. Right from the start, he declares: "Our topic is the optimal processing of incomplete information", and the focus is on producing "quantitative rules for conducting inference". Note that while other frameworks might learn hypothesis consitent with data, Jaynes is after not just "good enough" processing, but an "optimal" one. Of course, the "quantitative rules" mentioned turn out to be those of "probability theory and all of its conventional mathematics, but now viewed in a wider context than that of the standard textbooks." This is the essential content of "Cox's theorems" and Jaynes spends the first chapter fleshing out more precisely what the "quantitative rules for conducting inference" are and how they should look like, and the second one reproving Cox's results (i.e. that only probabilities allow us to do inference the way we would like).
With this first (but by no means last) tussle with foundations out of the way,
Jaynes proceeds to develops some of the
math needed for basic applications in "direct" and "inverse" probability.

(Lest you find this boring, let me remind you that counting things in urns,
is not only a centuries old pastime of probability theorists, but is
essential for functioning of any democratic society.)
 That 9 of them are red and 1 is blue? Et cetera.
This is "sampling theory" and is covered in chapter 3,
with the question of what "at random" means getting some love in section 3.8.1.

How likely is it that there were 0 red balls in the urn? How about 1 red ball? How about 100?
Here of course the answer depends on what we thought about the number of red balls in the urn before doing the drawing
-- if we have looked in the urn just before and counted the balls directly,
the drawing itself is unlikely to change our opinion about this "prior" count.
This innocuous observation is the the fact that launched a thousand ships,
for this prior is the one missing ingredient after which Bayes's theorem
- yes, the P(A|B) = [P(A)*P(B|A)]/P(B) - finishes the job.
Jaynes lists 4 "principles" for obtaining this missing ingredient
(you know it's bad when there is more than one, and more than two is real trouble),
postpones further discussion to later chapters and proceeds to develop "inverse probability"
- aka hypothesis testing - assuming the prior is known somehow.
Along the way, we get introduced to measuring information (or "evidence")
provided by the data in decibels (which I believe Jaynes invented independently of the equivalent
"decibans" of Turing and Good) in chapter 4.2,
and learn how to do multiple hypothesis testing in chapter 86 4.4.
With all this hard work out of the way, we get to "queer uses of probability theory"
also known as the seeds of CFAR curriculum. While non-technical,
this chapter explains how to reason "in a Bayesean way" about telepathy,
why same evidence presented to different people may make their opinions diverge more,
how Bayesean nature of visual perception may explain optical illusions
how not to weigh evidence in court, and other useful things like that.
"It's the priors, stupid"- for the most part; yet the details are entertaining and sometimes illuminating.
By chapter 6 the break is over, and we return to our urns. Amid some rather mundane calculations, some inspiring things happen. Under the rubric of "effects of qualitative prior information" - of the type of knowing "who does what to whom" - Jaynes introduces what we now can recognise as rudimentary probabilistic graphical models. The question of the choice of a prior returns briefly, only to be postponed again. For the most part it is a continuation of what has gone on before.
Chapter 7, dedicated to Gaussian distribution, is a change of pace. While mathematically interesting, at first blush it may seem purely technical. Yet there is a key question behind it: why is Gaussian distribution so ubiquitous? Of course, mathematical reality being what it is, all good explanations are connected to each other; but the side from which one approaches the network of explanations matters both philosophically, and in terms of what further ideas it generates. Here, as in many other situations, Jaynes has a favorite side.
A "standard" answer is commonly taught: if a number we are considering is a sum of many (sufficiently) independent random "pieces" the result will be approximately Gaussian. Since many things have multiple "small causes", this is a common situation. Mathematically, this is expressed as the Central limit theorem. A mechanism that makes this work also explains why Gaussian distribution is connected to least squares fitting of linear models, and, more generally, illuminates why mean and variance are the only thing that matter in a Gaussian distribution. Thus Jaynes's favorite explanation is reached: Gaussian distribution is the one we would obtain if we agree that we know some random number's mean and variance, and nothing else. It is the distribution of maximal entropy subject to that knowledge, the one expressing total ignorance beyond those two values. Thus, out of a technical sounding-question in a technical-looking chapter a major technical theme is born: if you know something, and want to get a prior reflecting that knowledge and nothing else, look for a maximal entropy distribution compatible with this knowledge. What this means mathematically, and how to find the maximal entropy distribution (at least for "finite" situations) is explored in chapter 11. (This is also where the seams start to show: while producing Gaussian distribution as a maximal entropy one is easy, once the material in chapter 11 is absorbed, as far as I can tell Jaynes never actually gets around to doing this. Chapter 11 is in part II, where completeness of the text begins to decline.)
Maximal entropy is one of the four methods for finding priors that Jaynes mentioned back in chapter 4, the one most closely associated with Jaynes himself. Another one is "group invariance" (more properly, "equivariance"), explored in Chapter 12 of PT:TLoS. The name hides a simple idea and a surprising complication. The idea is simple indeed: if your setting is unchanged by some modification (expanding some object by a factor of 2, for example) - and this includes your state of knowledge (if I don't know anything about the length of something then I don't know anything about twice its length and I think my ignorance should be expressed the same way mathematically) - then my prior should be unchanged by this modification. It turns out that in many situations this suffices to mostly determine the prior (for a case of a length - also known as "scale"- parameter the prior probability density at length L is then proportional to 1/L). The surprising complication is that often this is not enough. For simple examples like "scale" above this complication does not arise, but for a case of determining "scale" and "location" simultaneously it does, and Jaynes gets it wrong. The analysis hinges on the difference between something called "right invariant (Haar) measure" and "left invariant (Haar) measure" (the "correct" one to use, as explained, for example, in the book of Berger (to which, by the way, Jaynes refers elsewhere in PTLTLoS) is the right one). In his generally very positive and friendly review Stanford statistician Persi Diaconis mentions that Jaynes has been accused of "not knowing his left from his right Haar measure". In fact, in PT:TLoS Jaynes seems wholly oblivious to the issue in the first place. His language is sufficiently imprecise to be confusing rather than enlightening -- which is doubly strange since the explanations in Berger's book are considerably clearer.
All of this "inference" business is about what to think, but who cares about that. We want to know what to do! Thus, we need decision theory. The shift in focus from inference to decision gives an occasion for some discoursing on British vs. American priorities in life -- which is particularly amusing given that the main credit for decision theory goes to the hungarian mathematician Abraham Wald, of the "it's the missing bullet hole locations that you need to worry about" fame. (Wald's dramatic life story is second perhaps only to that of Alexander Grothendieck in its Holywood potential.) Wald's decision theory proceeds by assigning to each possible action (say: buy, sell) some utility, dependent on the "true state of nature" (say, the price tomorrow). The recommended action is then the one that maximizes the expected utility, "expected" meaning average over your believes about the true state of nature (i.e. tomorrow's price). That is, ignoring transaction costs: buy if the expected utility of tomorrow's price is higher than utility of today's price, and sell otherwise. (Of course the economists being naturally dismal talk about minimizing loss - or cost - rather than maximizing utility.)
This may sound trivial, but that's because we are already talking in the language of "believes about the true state of nature" -- what a statistician may call "distribution of the model parameter", something which is not really allowed in "orthodox" or "frequentist" approach to statistics. Instead, a frequentist might be concerned with a "decision procedure" or "strategy" based on some data, i.e. some process that takes in data and spits out the action to take. This procedure should not be too wild, and what "not too wild" means is formalized by Wald and is given the name "admissible" (a term which Jaynes seems to interpret as "good" and proceeds to rally against, by providing some not-so good admissible strategies; I think simply interpreting "admissible" as "not obviously stupid" would've ameliorated that particular pet peeve). Then the triumph of Bayesianism is at hand: many years after starting the study of "admissible strategies", Wald proved that they are all equivalent to starting with some prior "believes about the true state of nature", updating them based on the data - via Bayes's theorem, of course - and then applying the "obvious" rule above. Moreover, in the case where the "decision" is actually "estimating a parameter", by varying your utility/loss function and applying the above strategy, one may recover such estimators as "take the poster maximum" (of which "classical" maximum likelihood is a special case), or "take the posterior mean". Jaynes rightly points out that the shape of loss function can change the decision quite drastically: in deciding between cutting your hair too short or too long, one type of error is much less costly than another; the cost of various errors in a "William Tell-type scenario" is even further from the usual models.
With this - essentially final - layer of theory, we are ready for some applications, first in distinguishing a signal from the noise -and Jaynes does mean "signal" - an electrical one, in volts (it is probably that one-third electrical engineer speaking), and then in deciding what widgets to produce in our widget factory. While the first, simpler, task is arguably more important, it is the later that is more revealing of both Jaynes's process and its flaws: the analysis is fine - great even - when taken on its own, but there are no sanity checks, no robustness analysis. If I actually had a widget factory, I would probably assign a rather low weight to the whole thing, at least before hiring someone to vary the model and see how it flexes.
Among the issues that remain is the following. Imagine I have a coin. I may say that the probability that it will land heads on the next toss is half, but this is far from capturing all my beliefs about the coin. Perhaps I have personally forged the coin to the most exacting specifications, or perhaps I have never seen it before in my life. Now, imagine I see it be tossed and come up heads 10 times in a row. What would my prediction of the next toss be now? In the first case, still pretty close to 50-50 (perhaps my manufacturing process was flawed, or perhaps I should just hedge against being overconfident). In the second case I might start to suspect that the coin is not fair, and adjust my forecast accordingly. The question before us is how to account for this difference. Jaynes takes this up in chapter 18, and essentially invents a two-level hierarchical Bayesian model. Roughly, if I record my beliefs about the coin in a probability "density" I assign to various statements A_p =(the coin is biased to flip heads with probability p), then I can update this density based on the observed results of flipping the coin. The difference in the two scenarios above is in the initial shape of the distribution for A_p - the "I forged this coin" initial distribution has a high peak near p=0.5, while the "this is just some coin" one is more spread out (incidentally, if our initial distribution of believes about A_p is in the Beta family, then this is particularly easy to do, which is what makes the section 18.5 work out). One thing to note however, is that we are now talking about something like "probabilities of probabilities", and this is not what we discussed when we were talking about the whole "extension of logic" business. In fact, I agree with the the contention "logic" in "the logic of science" is to be initially understood as "propositional calculus" (and that this is the setting of Cox's theorems), and with this hierarchical extension as "Aristotelian logic". The question of probabilistic extensions of predicate (and higher-order) logic seems to be the subject of some current research. As to whether this has bearing on the question whether Bayesianism is "a complete theory of rationality" is a question which is slightly too philosophical for my usual tastes.
All of this is no doubt very thrilling (I mean, we are "only" solving the question of how one should reason about - and act in!- the world; we call it "inference" just to keep the excitement down and keep philosopher-logicians off our back). But it is not nearly as much fun as the numerous polemical tirades against "the orthodoxy", be it of Fisher, Pearson, or Feller patriarchate.
Chapters 8, 16 and 17 give some account of - and Jaynesean commentary on - the classical statistics. These were not there in the earlier drafts, which were more focused on expounding Jaynes's theories and less on criticizing "the orthodoxy". Perhaps this was also due to the ongoing nature of the polemic at the time. In PT:TLoS the gloves are mostly off. "Orthodox" statistics is described in terms of its "pathology" and "folly". His main charge is that the methods are "ad hoc" - a phrase that appears 47 times in PT:TLoS. Coming from the work whose chief aim is to develop systematic rules of inference, this is probably not surprising.
If one were to pick out a single antagonist in the PT:TLoS it would have to be Sir Ronald Aylmer Fisher. One could say that Fisher was a geneticist and a statistician. Or, one could say that he was "the greatest of Darwin’s successors" and "the single most important figure in 20th century statistics". Bradley Efron (another Stanford statistician) writes that "one difficulty in assessing the importance of Fisherian statistics is that it’s hard to say just what it is. Fisher had an amazing number of important ideas and some of them, like randomization inference and conditionality, are contradictory. It’s a little as if in economics Marx, Adam Smith and Keynes turned out to be the same person."
Among many charges Jaynes lays at Fisher is that of establishing statistics as a collection of (ad hoc!) recipes for analyzing data. In Jaynes's view Fisher's cookbooks (primarily "Statistical Methods for Research Workers ", but also The Design of Experiments ) established the situation in which a scientist was to follow the recipes, but was not to question the reasoning behind these recipes.
Then, as per Jaynes:
"Whenever a real scientific problem arose that was not covered by the published recipes, the scientist was expected to consult a professional statistician for advice on how to analyze his data, and often on how to gather them as well. There developed a statistician–client relationship rather like the doctor–patient one, and for the same reason. If there are simple unifying principles (as there are today in the theory we are expounding), then it is easy to learn them and apply them to whatever problem one has; each scientist can become his own statistician. But in the absence of unifying principles, the collection of all the empirical, logically unrelated procedures that a data analyst might need, like the collection of all the logically unrelated medicines and treatments that a sick patient might need, was too large for anyone but a dedicated professional to learn."
Jaynes's statement that "deep change in the sociology of science – the relationship between scientist and statistician – is now underway" and that "each scientist involved in data analysis can be his own statistician" seems premature. My impression is that basic courses in "applied statistics" are routinely taught without even attempting to impart much conceptual understanding, and for many scientists doing your own statistics is still dangerously close to rolling your own crypto.
Be that as it may, hardy anyone can be against getting scientists to understand the statistics they are practicing. According to Jaynes, one of the earliest attempts to do this is the 1939 "Theory of Probability" by (future Sir) Harold Jefferys.
This book is perhaps the most direct prior influence on Jaynes and on PT:TLoS - which, after all, is "dedicated to the memory of Sir Harold Jeffreys, who saw the truth and preserved it."
In Jaynes's telling, Jeffreys "was buried under an avalanche of criticism which simply ignored his mathematical demonstrations and substantive results and attacked his ideology".
Jaynes writes:
"We need to recognize that a large part of their differences arose from the fact that Fisher and Jeffreys were occupied with very different problems. Fisher studied biological problems, where one had no prior information and no guiding theory (this was long before the days of the DNA helix), and the data taking was very much like drawing from Bernoulli’s urn. Jeffreys studied problems of geophysics, where one had a great deal of cogent prior information and a highly developed guiding theory (all of Newtonian mechanics giving the theory of elasticity and seismic wave propagation, plus the principles of physical chemistry and thermodynamics), and the data taking procedure had no resemblance to drawing from an urn. Fisher, in his cookbook defines statistics as the study of populations; Jeffreys devotes virtually all of his analysis to problems of inference where there is no population."
But just in case you had any doubt whose side he is on, Jaynes then adds:
"What Fisher was never able to see is that, from Jeffreys’ viewpoint, Fisher’s biological problems were trivial, both mathematically and conceptually."
Them are fightin words!
Incidentally, Jaynes credits Fisher with having a "deep intuitive multidimensional space intuition", which allowed him to calculate many sampling distributions for the first time, but points out "that, just before starting to produce those results, Fisher spent a year (1912–1913) as assistant to the theoretical physicist Sir James Jeans, who was then preparing the second edition of his book on kinetic theory and worked daily on calculations with high-dimensional multivariate Gaussian distributions". Yes, even these stem from a physicist whose last name starts with J!
A secondary antagonist is William Feller, the author of "the most successful treatise on probability ever written". He is also accused by Jaynes of being too clever - and thus being able to get away with not doing things systematically. According to Jaynes, "his readers get the impression that: (1) probability theory has no systematic methods; it is a collection of isolated, unrelated clever tricks, each of which works on one problem but not on the next one; (2) Feller was possessed of superhuman cleverness; (3) only a person with such cleverness can hope to find new useful results in probability theory" - with the unstated implication that we should doubt all three. As an illustration of "clever tricks" Jaynes chooses the following problem:
"Peter and Paul toss a coin alternately starting with Peter, and the one who first tosses ‘heads’ wins. What are the probabilities p, p' for Peter or Paul to win?
The direct, systematic computation would sum (1/2)^n over the odd and even integers: p =Σ (1/2)^(2n+1)=2/3, p'=Σ (1/2)^(2n)=1/3.
The clever trick notes instead that Paul will find himself in Peter’s shoes if Peter fails to win on the first toss: ergo, p' = p/2, so p = 2/3, p = 1/3."
The "ergo" is saying that Paul will win if (Peter does not win immediately) and (Paul wins, given that Peter does not win immediately). The probability of the first clause is 1/2, and that of the second is p (since after Peter tosses a tail Paul's situation is the same as that of Peter at the start of the game); ergo, p' = p/2.
Alternatively, one can solve this problem by saying instead that either Peter wins immediately, or Paul wins on the second toss, or they are back where they started. In math, this says that p=1/2+1/4*p -- here 1/2 is the probability of Peter's immediate win, 1/4 is the probability of (Peter not winning immediately, then Paul not winning right after), and p is the probability of (Peter wins from there).
Of course, Jaynes himself can do things that are clever; his dexterity with, among other things, generating functions, transform methods, and asymptotic expansions, can appear magical to those not trained as applied mathematicians or physicists.
But there is additional irony here in that this "Peter and Paul problem" is exactly the wrong example with which to complain about “isolated clever tricks and gamesmanship”! In fact, thinking about a system moving between states and analyzing how likely it is to reach certain "terminal states" - i. e. setting up and analysing a Markov chain - is a fairly general method to solve similar probability problems, well connected to other key areas of probability theory.
This serves as an illustration of a deeper point - many clever tricks when well understood become powerful methods, much more powerful indeed than straightforward but uninspiring computations.
There is less disagreement here than may at first appear. I agree with Jaynes in calling for “general mathematical techniques which will work not only on our present problem, but on hundreds of others”; it’s just that your current “general technique” may solve a given problem, but not explain what is going on in it (mathematician Paul Zeitz calls this “How vs. Why”). A clever trick may lead you to a better general theory, closer to answering the “why” question — as indeed the Peter and Paul coin tossing example illustrates. I am arguing not for gamesmanship, but for bringing the game to the next level.
There are many other things Jaynes has to say about "orthodox" statistics and statisticians. One other such volley is a defense of Jeffreys in an argument with another "orthodox" statistician, Jerzy Neuyman, in which, according to Jaynes "Jeffreys is clearly right" - the conclusion that I see as the only reason for including the episode in the book (since the actual nature of the dispute is not given explicitly). What is my reason for including it in this review? Well, having read the relevant parts of the original sources, I can report that Jeffreys was clearly wrong. I encourage you to decide whether I am wrong that Jaynes is wrong that Neyman is wrong for yourself.
In the review I have mentioned, Diaconis calls PT:TLoS "wonderfully out of date", saying that "the wonderful part is that Jaynes discusses and points to dozens of papers from the 1950s through the 1980s that have slipped off the map." A noticeable fraction of this pointing is in fact pointing fingers at people doing things wrong. It also forces the reader to either mostly ignore these sidetracks and discussions, or to follow them up. Either strategy is admissible - and I have found the second one quite rewarding when I followed it - but it does make reading the PT:TLoS much less straightforward.
Jayenes's critiques are of course not limited to statistics. He has things to say on the set theory, measure theory, the infinite, Kolmogorov's axiomatization of probability, generalized functions, Godel's incompleteness and so on. I was much reassured by Jaynes saying early on that "we shall find ourselves defending Kolmogorov against his critics on many technical points" - not because I think Kolmogorov needs defending, but, conversely, because this increased my confidence that Jaynes's math will be mostly right. Yet the contents of Appendix B, in which much of the attack against modern mathematical formalism is collected, convince me that Jaynes have not perceived the goals of finding the right language and level of generality for all things that underpin much of modern mathematical developments. To me his insistence that using these modern techniques leads to errors is akin to complaining that summing infinite series leads to errors: sure it does, if you do it "naively", or even if you do it in a complex but incorrect way. That's precisely why mathematicians have thought long and hard about how one could do it without running into problems, and developed multiple sophisticated and precise theories about this (the most common of which they now teach in the "sequences and series" part of courses on mathematical analysis).
In the same vein, I found the chapter on "paradoxes of probability theory" the second most disappointing (after the chapter on ignorance priors and transformation groups).
In math, there are paradoxes of various kinds: roughly, there are true statements that subvert naive intuition (a la Banach-Tarski paradox), there are faulty demonstrations (Achilles and the tortoise), or arguments that reveal deficiency of terminology or of definition of terms (Russell's paradox). There remains a possibility of finding a paradox of yet another kind - a true contradiction, but for the standard axioms of mathematics this has not yet happened. Thus all "paradoxes" in PT:TLoS should be of the "non-contradictory" type. Alas, some of them don't even rise to that level: "non-conglomerability" is essentially a demonstration that assuming that probabilities satisfy only "finite additivity" -- as opposed to the more restrictive "countable additivity" which is part of Kolmogorov's axioms -- would allow some "probability" assignments that behave in pathological ways. This is a good example of something that may "defend Kolmogorov against his critics on a technical point", but is hardly a paradox. The "Borel-Kolmogorov paradox" is mostly of terminological type - it poses a question of how to make sense of "conditioning on event of probability zero". It was pretty much solved by Kolmogorov - the solution being that there is no intrinsic sense in which one can talk about it, but one can sometimes do this if one has either a sequence of events of positive probability "converging" to the event in question (a resolution that Jaynes would love). One common scenario is when the "event in question" is some "random variable" (in the technical sense) - this is what arises most commonly in practice. In full generality one has the theory of "disintegration" and of "conditioning on a sub sigma algebra". All of this is part of well-developed theory, so passionately criticised by Jaynes in Appendix B. Finally, the "marginalization paradox" is concerned with pathological behaviour of Bayesean inference in some situations where improper priors are used, and is part of what Diaconis calls Jaynes's "long-running debate with Dawid-Stone-Zideck". I have delved into it to some depth during my read, looking up some of the papers of Dawid-Stone-Zidek and all that, but seems to have happily forgotten whatever insights I might have found there, other than "improper priors are a constant source of trouble (but maybe not in exactly the way Jaynes thinks)". If anyone has a better understanding, I'd be happy to be enlightened - especially if they manage to find at least "one specific real application" where these insights are needed.
What are we to make of all this, as the saying goes?
PR:TLoS is, to put it mildly, a very special book. It is neither a textbook, nor a reference test, nor a philosophical treatise, nor a history book - and it is a bit of all of those. It is singularly shaped by the person of E. T. Jaynes: by his "two thirds theoretical physicist and one-third electrical engineer" background, with its consequent interest in radards and in statistical mechanics, by his unconventional thinking, his polemic style of his long-standing disputes with statisticians of his age, and by his untimely death.
It's chapters written earlier and polished for longer are some of the strongest, while those added late are often more open to criticism or incomplete. Yet for all those flaws, it's influence is tremendous - it has 7.5 thousand citations, including in such high impact texts as Taleb's "Black Swan", Goodfellow et al.'s "Deep Learning", Koller and Friedman's "Probabilistic graphical models" and many others. Notably, some of the references simply recommend it as "an additional resource" on probability and information theory for those with "absolutely no prior experience with these subjects" or even "to the general reader" - a use for which I find it rather poorly suited, and not just because it lacks many of the more recent developments. At best, it may serve as a kind of "A Companion to Probability: A Second First and A Fist Second Course in Probability"). Overall, it may be one of these books that many wish to have read, but not as many wish to actually read.
If this review seems overly critical - and though I do feel mildly apprehensive putting out a review of the work of Nosferatu himself, how critical can I really be, given the amount of time I willingly spent with this tome? - it may be because Jaynes has by now, won many of his battles. It is difficult to appreciate an insight once it becomes the usual mode of thinking, the proverbial water. It is also, however, because the book itself is incomplete, and often frustrating.
In very first paragraph of the editor's preface, Larry Butterhurst explains:
"I could have written [the] latter chapters and filled in the missing pieces, but if I did so, the work would no longer be Jaynes’; rather, it would be a Jaynes–Bretthorst hybrid with no way to tell which material came from which author. In the end, I decided the missing chapters would have to stay missing – the work would remain Jaynes’".
This is a decision which one Amazon review calls "a bad mistake", saying "What [Jaynes] needed was an editor, but what he got instead was a hagiographer." This is certainly how I felt when I was reading the book; now I am less sure. Once you have struggled through it, the motivation to make the struggle less onerous diminishes, and you begin to think that "keeping the work Jaynes'" may actually be a valid consideration, and not just a lazy cop out you thought it to be whilst in the thick of it all.
And yet I, too, find myself mourning for what this book could have been. I admit that sometimes when faced with a choice (vanilla or chocolate? black jeans or blue?) I simply choose both. We already have the Jaynes's version. Can we not get the "completed version" as well? Could we not write the missing chapters, explain the cryptic references, solve the unsolved exercises and release the result to the world? Someone who is better than me at organizing things, and someone who knows more than me about copyright and publishing would need to think about it. On the one hand, we are in the 21st century, with the power of internet, crowdsourcing and social campaigns. On the other hand, it is my understanding that it will almost be the 22nd century before the copyright for PT:TLoS expires.
And while we wait for that, we read the version we have. The version which makes clear Jaynes's message: "progress in science goes forward on the shoulders of doubters, not believers". The version that urges you to think for yourself rather than to defer to the "orthodoxy", whatever it may be called in your time - to see the truth and preserve it.


Sorry, the page you requested was not found. Please use the following index to browse related topics.


Package: PCS Prime-Care Plus
Package Shipping Type: Free Priority Shipping
One-Time Registration Fee: $4.95
Free 30 Day Trial -$24.95


Follow these steps to apply filters to the Backtests table:
- On the right edge of the Backtests table, click Filters.
- Click the column name you want the filter to be applied to.
- If the column you selected in step 2 is numerical, click the operation dropdown and select one of the following operations to apply:
- Greater than or equals: The column values must be greater than or equal to the filter value for the backtest to be presented in the Backtests table.
- Less than or equals: The column values must be less than or equal to the filter value for the backtest to be presented in the Backtests table.
- In range: The column values must be within a range of values for the backtest to be presented in the Backtests table.
- Fill the fields below the operation dropdown you selected in the previous step.


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/import.20everything.html ---
should / do we have a test file that imports every file?
Why?
to test for conflict?
You mean declarations with the same name?
right
This is what
- lean --recursive --export=mathlib.txt src/ - leanchecker mathlib.txt
accomplishes
oh, neat
Travis does it every time and you can get git to check it when you commit or push a branch
Or, if you know how to build a VS Code feature, you can create a command to run exactly that
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


Welcome to SweetN'Salty! This is a 'game' where you get to see numbers get replaced by words! The way it works is anytime a number is evenly divisible by one of two other numbers (called divisors) then that number will be replaced by a word. Sweet or Salty depending on which divisor the number is evenly divisible by. If a number is evenly divisible by both numbers then it is replced by SweetN'Salty! To begin check out the controls on the left side of your screen. You will need to provide a range of numbers to count through, which numbers you want to be the divisors, and how many columns you want the results to show up on. Enjoy!


DateJust.js is a JavaScript component for calendars. It has powerful controls: drag to select multiple days, and scroll to change month.
It doesn't have any dependencies.
The library can be found on GitHub as can the documentation.
And some examples can be seen below.
If you are familar with Google calendar, you may recognise these interactions from its datepicker (small calendar left of the main diary).
I love the ease and speed in which multiple days can be selected. And the efficiency of using a mouse wheel / trackpad todo something other than scroll content up or down is somewhat refreshing.
Having (unsuccessfully) looked for an existing library, I decided to build my own!
Hence DateJust.js was born...
Big thanks to CommuSoft where I built version 0.1.0

exampleOne = new DateJust("#example-one", {
onDateSelected: function(date) {
console.log(date);
},
onDateRangeSelected: function(startDate, endDate) {
console.log(startDate + " – " + endDate);
}
});

exampleTwo = new DateJust("#example-two", {
minDate: new Date(2012, 11, 8),
maxDate: new Date(2014, 11, 8),
existingDate: new Date(2014, 11, 8),
onDateSelected: function(date) {
console.log(date);
},
onDateRangeSelected: function(startDate, endDate) {
console.log(startDate + " – " + endDate);
}
});

exampleThree = new DateJust("#example-three", {
existingDateRange: [new Date(2016, 11, 8), new Date(2016, 11, 25)],
onDateSelected: function(date) {
console.log(date);
},
onDateRangeSelected: function(startDate, endDate) {
console.log(startDate + " – " + endDate);
}
});
P.S. You can find the source and docs on GitHub. And did you know DateJust.js has a bigger brother DateRange.js.


HEAD(1) User Commands HEAD(1) NAME head - output the first part of files SYNOPSIS head [OPTION]... [FILE]... DESCRIPTION Print the first 10 lines of each FILE to standard output. With more than one FILE, precede each with a header giving the file name. With no FILE, or when FILE is -, read standard input. Mandatory arguments to long options are mandatory for short options too. -c, --bytes=[-]K print the first K bytes of each file; with the leading `-', print all but the last K bytes of each file -n, --lines=[-]K print the first K lines instead of the first 10; with the leading `-', print all but the last K lines of each file -q, --quiet, --silent never print headers giving file names -v, --verbose always print headers giving file names --help display this help and exit --version output version information and exit K may have a multiplier suffix: b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024, GB 1000*1000*1000, G 1024*1024*1024, and so on for T, P, E, Z, Y. AUTHOR Written by David MacKenzie and Jim Meyering. REPORTING BUGS Report head bugs to<EMAIL_ADDRESS>GNU coreutils home page: <http://www.gnu.org/software/coreutils/> General help using GNU software: <http://www.gnu.org/gethelp/> Report head translation bugs to <http://translationproject.org/team/> COPYRIGHT Copyright © 2011 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. SEE ALSO The full documentation for head is maintained as a Texinfo manual. If the info and head programs are properly installed at your site, the com‐ mand info coreutils 'head invocation' should give you access to the complete manual. GNU coreutils 8.12.197-032bb September 2011 HEAD(1)


Well hello there! You must be rearing to begin your Introduction to JavaScript adventure. Let me not keep you, then—JavaScript awaits!
Suggested Readings
- Introduction to JavaScript - IntroJS 2014
Sections 1, 2 (and slide 2), 3 (skim the details), 4.1-2, 4.3 (only first box), 4.4 (read conditionals but skim loops—you'll rarely use them) - Values, Types, and Operators - Eloquent JavaScript
Helpful if you have less of a programming background. Covers the same material as above, but gives more of the basic intuitions. - Functions - Eloquent JavaScript
Defining a Function, Parameters and Scopes
Exercise
Create an Object that represents your registration information by filling in the code boxes.
Okay, great, now you just need an account.
Create a variable named
myLogin
that points to an object with keys user
and pass
which point to strings containing your desired username and password, respectively:
Excellent work! Check to make sure that everything is correct and submit it to the server!


This field is required.
Username must be at least 4 chars.
Enter valid email in format<EMAIL_ADDRESS>Password must be at least 8 chars.
Passwords don't match.


Link Style
Basic link styles using 'text-decoration' css properites. For URL placeholders use
or
.
Link Text Decoration Options
Pack my box with five dozen liquor jugs after after.
Pack my box with five dozen liquor jugs after after.

Pack my box with five dozen liquor jugs after after.

Pack my box with five dozen liquor jugs after after.

Pack my box with five dozen liquor jugs after after.

Pack my box with five dozen liquor jugs after after.

Pack my box with five dozen liquor jugs after after.

Pack my box with five dozen liquor jugs after after.

Pack my box with five dozen liquor jugs after after.

Pack my box with five dozen liquor jugs after after.

Pack my box with five dozen liquor jugs after after.

Pack my box with five dozen liquor jugs after after.


T3A18-Sounds-and-events-Dylan.html
This is bold
and several
lines
Click it to hear a sound!
Change the following:
Other events you could use on any web page tag:
- onClick
<1i>onMouseScroll
<1i>onDb1Click
<1i>onMouseOver
- onChange
- You finish this list google it!


me04042016CV.doc
Put in your skills and rank how proficient you are at each type of skill. More skills = more opportunities.
| Job title | Company | Date |
|---|---|---|
| {{attemp.jobTitle}} | {{attemp.company}} | {{attemp.appliedDate}} |
Amount of attemps: 143
Number of jobs available {{availableJobs.length}}
Days unemployed 143


3
Eugene Wu<EMAIL_ADDRESS>TBA
MW 2:30-4P, Seeley W. Mudd 833 (First Meeting Weds 9/9)
| Homeworks | 15% |
| Project 1 | 15% |
| Project 2 | 5% |
| Midterm | 25% |
| Final | 40% |
Prof. Wu will have extra office hours Friday 9/11 at 10:30.
In general, check the office hours calendar
| Date |
Topic |
Readings |
Assignments / Notes |
|---|


Note: New endpoints using OAuth tokens as input parameters instead of path parameters are available for developers to preview in the OAuth Applications API. To access these endpoints during the preview period, you must provide a custom media type in the Accept
header:
application/vnd.github.doctor-strange-preview+json
Warning: The API may change without advance notice during the preview period. Preview features are not supported for production use. If you experience any issues, contact your GitHub Enterprise site administrator.
OAuth application owners can revoke a grant for their OAuth application and a specific user. You must use Basic Authentication when accessing this endpoint, using the OAuth application's client_id
and client_secret
as the username and password. You must also provide a valid OAuth access_token
as an input parameter and the grant for the token's owner will be deleted.
Deleting an OAuth application's grant will also delete all OAuth tokens associated with the application for the user. Once deleted, the application will have no access to the user's account and will no longer be listed on the application authorizations settings screen within GitHub.
DELETE /applications/:client_id/grant
| Name | Type | Description |
|---|---|---|
access_token |
string |
The OAuth access token used to authenticate to the GitHub API. |
{
"access_token": "e72e16c7e42f292c6912e7710c838347ae178b4a"
}
Status: 204 No Content


@*
* Copyright 2022 HM Revenue & Customs
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*@
@import java.time.LocalDate
@import controllers.routes._
@import models._
@import pages.FurloughPeriodQuestionPage
@import utils.LocalDateHelpers._
@this(
govukLayout: templates.GovukLayoutWrapper,
formHelper: FormWithCSRF,
errorSummary: components.errorSummary,
inputRadio: components.inputRadio,
button: components.button,
h1: components.h1,
p: components.p
)
@(form: Form[_], claimStart: LocalDate, furloughStart: LocalDate, furloughStatus: FurloughStatus, furloughEnd: Option[LocalDate])(implicit request: Request[_], messages: Messages)
@govukLayout(pageTitle = Some(title(form, if (claimStart.isEqualOrAfter(july1st2020)) "furloughPeriodQuestion.1stJuly.title" else "furloughPeriodQuestion.title")),
showBackButton = true, thisPage = FurloughPeriodQuestionPage) {
@formHelper(action = FurloughPeriodQuestionController.onSubmit(), 'autoComplete -> "off") {
@errorSummary(form.errors)
@h1(if (claimStart.isEqualOrAfter(july1st2020)) "furloughPeriodQuestion.1stJuly.heading" else "furloughPeriodQuestion.heading")
@p {
@messages("furloughPeriodQuestion.start")
@dateToString(furloughStart)
@if(furloughStatus == FurloughStatus.FurloughEnded) {
@messages("furloughPeriodQuestion.end")
@furloughEnd.map(dateToString).getOrElse("")
}
@if(furloughStatus == FurloughStatus.FurloughOngoing){
@messages("furloughPeriodQuestion.end")
@messages("furloughPeriodQuestion.ongoing")
}
}
@inputRadio(
form = form,
legend = messages("furloughPeriodQuestion.heading"),
legendAsHeading = false,
classes = "govuk-visually-hidden",
items = FurloughPeriodQuestion.options(form)
)
@button("site.continue")
}
}


A new region or distributed system may need to be loaded with the data of an existing system. There are two approaches to accomplish this task. The approach used depends upon the organization of both the new and the existing distributed system.
If both the number and the type of members is the same in both the new and the existing distributed system, then the simplest option is to use backup and restore on the persistent disk store contents. Make a full online backup of the persistent data in the disk store of the existing distributed system. Copy the files that comprise the backup to the new distributed system location. A restore instills the data into the new distributed system. See Creating Backups for System Recovery and Operational Management for details on how to make a backup and use the backup to restore a disk store.
Take a different approach when the number or the type of members is not the same in both the new and the existing distributed system. This approach uses export and import of region data. Export the region data of the existing distributed system to create a snapshot. Copy the snapshot to the new distributed system location. Import the snapshot into the new distributed system. See appropriate sections within Cache and Region Snapshots for details on making and using a snapshot.


Have you ever wanted to quantify something from an image? For example:
- The number of stars in a photo of the nighttime sky
- The number of cells under a microscope, and the area of each
- The distance between two points on a map
ImageJ is image-processing software specially made for scientific measurements. It is free to download at imagej.nih.gov and has a large online wiki.
ImageJ excells in *automating* image quantification. For example, counting hundreds of stars in 10+ images of the nightime sky. Someone could do this manually, but the star count can be less biased and more accurate (not to mention less tedious!) when automated.
Easy example
Let's count the stars in an image of the nighttime sky:
- Save the image below to your device (see image credit below).
File > Open
- Open the point tool menu.
Edit > Options > Point tool
Select the options to add to overlay and label points.
- From the toolbar, select the Point tool. Click on each star to be counted.
If you make a mistake, click on the unwanted point and press *delete*.
Removing bias in quantification through thresholding
In the star counting example, someone might count more than 9 stars. Or fewer. The person counting brings a certain bias as to what a star should look like. To remove bias, let's define exactly what a star looks like. That way, different people analyzing this image will arrive at the same star count. Here's how:
- Open the original image.
File > Open
- Reduce the color profile to 8-bit.
Image > Type > 8 bit
- Add a threshold.
Image > Adjust > Threshold > Apply
The best threshold for this image is "Intermodes" with options for "Red", and "Dark background".
Thresholds are mathematical algorithms that select some parts of a photo but not other parts.
Try out other thresholds to see how it works.
All photos in one dataset should be analyzed with the same threshold.
- Tell ImageJ to count the particles (ie. stars).
Analyze > Analyze particles > OK
Select the following options from the Analyze particles menu: "Show outlines," "Clear results," "Summarize," and "Exclude on edges"
Nine stars are counted.
Automated quantification with macros
With thresholding, counting 100 stars is as easy as counding 9 stars. However, threshold counting stars in dozens of images would be tedious because of the need to click through the menus. ImageJ macros can automate the click through. Let's make a macro to count the stars:
- Open the original image.
File > Open
- Open the Macro recorder. Edit the name of the macro, ex. "CountStars.ijm" (Note- .ijm is the ImageJ Macro extension).
- Click through all the steps for threshold counting (steps 2-4 in the previous section). The steps will be recorded in the "recorder" window.
Image > Type > 8 bit
Image > Adjust > Threshold > Apply
Use Threshold options: "Intermodes", "Red", and "Dark background"
Analyze > Analyze particles > OK
Use Analyze particles options: "Show outlines," "Clear results," "Summarize,"" and "Exclude on edges"
- In the recoder window, click
create
. A new .ijm window will open. Save the macro to the ImageJ > macros folder.
- Close all windows.
- Open the original image.
File > Open
- Open CountStars.ijm.
Plugins > Macros > Open
- Click on the .ijm window. New top menu options will appear. Run the macro.
Macros > Run macro
Nine stars are counted, just as if the menus were clicked through by hand.
- Test the macro on another star image:
- Open the second image (use the one below).
File > Open
- Open CountStars.ijm.
Plugins > Macros > Open
- Click on the .ijm window. Run the macro.
Macros > Run macro
Thirty two stars are counted.
Extending macros to automate quantification of all images in a folder
If you have hundreds of images to process, the clicks required to open and close each image become tedious. Adding a few lines to a macro can automate opening each image, running the macro, saving the results, and closing each image. Here's how:
- Download the third example star image, below. Save all of three example images (StarsToCount 1, 2, and 3) into one folder. Put nothing else in this folder.
- Open CountStars.ijm in ImageJ.
Plugins > Macros > Edit
- Save the macro as "CountStarsInFolder.ijm"
File > Save As
- Add the following text to the macro (or copy-paste from this PDF):
- Before the rest of the text in the macro window, add instructions to choose an input folder and an output folder (folders are called "directories" in ImageJ):
dirInput = getDirectory("Choose Directory ");
dirOutput = getDirectory("Choose Directory ");
- Add instructions to process each image, or "file," in the folder:
list = getFileList(dirInput);
setBatchMode(true);
for (i=0;i<list.length;i++) {
open(dirInput+ list[i]);
}
- At the end of the macro, add instructions to save the thresholded image and close the open windows.
saveAs("Jpeg", dirOutput + File.nameWithoutExtension + "_Threshold");
close();
}
- Save the macro.
File > Save
- Run the macro.
Macros > Run macro
- A dialogue box will open.
- A second dialogue box will open. Select a different folder in which thresholded images will be placed. Do not make a new folder inside the folder from step 7.
- The macro will run. Star counts will appear in the Summary window (9, 32, and 19 stars in images 1, 2, and 3, respectively). Thresholded images will appear in the folder selected.
Editing macros
Edit the contents of "CountStarsInFolder.ijm" to improve the accuracy of counting, or completely rework the contents to perform your own image quantification tasks.
- On the accuracy front, you may have noticed that there is a mistake made on "StarsToCount2.jpg": two stars appear so close together that they are counted as one. This type of error can be dealt with by adding a watershed step.
- On your own star images, you may notice that the stars aren't counted properly. You'll find the problem by examining the saved thresholded images: thresholding is failing. Thresholding takes the overall brightness and contrast of an image into account. Therefore, pictures taken with differet settings or at different times/locations often require different thresholds. Consider chaning the threshold to the one that works best for your images. Note that using different thresholds on images in a set can alter count results; controlling for camera settings and time/location in batches of images is the best way to avoid threshold bias.
- Test the star counting macro on images of other objects to be counted. For example, try counting cell nuclei that have been stained with DAPI. As discussed above, the threshold may need to be changed.
- Set a scale for the image and then report the area of each star. See my ImageJ protocols for an example.
The sky's the limit on macros [pun intended]. To infinity and beyond!
Starry sky image credit
Thanks to Davide De Martin for the starry sky image from the ESO/Digitized Sky Survey 2. All smaller sky images were cropped from the original.


{% extends "base.html" %} {% block content %}
This is a test of the Open-ID support within Google App Engine.
{% if user %}There are the following messages:
There are no messages.
{% endif %} {% else %}You are not currently logged in.
{% endif %}This page is 'secure' and will prompt for login.


Nice weather
wildfire is expanding
Ready for dinner
Bad weather
wildfire is fully controlled
Ready for breakfast
More
Li inside ol
Li inside ol
Li inside ol


Treebank Statistics: UD_Teko-TuDeT: POS Tags: PART
There are 15 PART
lemmas (2%), 16 PART
types (1%) and 28 PART
tokens (1%).
Out of 15 observed tags, the rank of PART
is: 6 in number of lemmas, 9 in number of types and 10 in number of tokens.
The 10 most frequent PART
lemmas: waɨ, mamen, mame, am, kupao, o, a, enam, kuwa, nam
The 10 most frequent PART
types: waɨ, kupao, mamenasinã, am, mame, a, enam, kupanam, kupaɲ, mamen
The 10 most frequent ambiguous lemmas: am (ADV 11, PART 2, PRON 1), o (VERB 4, PART 2), a (DET 2, PART 1, PROPN 1), kuwa (VERB 9, PART 1)
The 10 most frequent ambiguous types: am (ADV 10, PART 2, PRON 1), a (DET 1, PART 1)
- am
- a
Morphology
The form / lemma ratio of PART
is 1.066667 (the average of all parts of speech is 2.023659).
The 1st highest number of forms (3) was observed with the lemma “mamen”: mamen, mamenako, mamenasinã.
The 2nd highest number of forms (2) was observed with the lemma “mame”: mame, mamenasinã.
The 3rd highest number of forms (1) was observed with the lemma “a”: a.
PART
occurs with 9 features: Polarity (14; 50% instances), Number[subj] (5; 18% instances), Case (4; 14% instances), Mood (3; 11% instances), Aspect (2; 7% instances), Int (1; 4% instances), Number (1; 4% instances), Subord (1; 4% instances), Top (1; 4% instances)
PART
occurs with 11 feature-value pairs: Aspect=Cont
, Case=Ref
, Case=Tra
, Int=Yes
, Mood=Irr
, Mood=Jus
, Number=Plur
, Number[subj]=Plur
, Polarity=Neg
, Subord=Yes
, Top=Yes
PART
occurs with 13 feature combinations.
The most frequent feature combination is Polarity=Neg
(9 tokens).
Examples: waɨ, mame, mamenasinã, mamen, mamenako, waɨkuwa
Relations
PART
nodes are attached to their parents using 4 different relations: dep (14; 50% instances), obl (10; 36% instances), advmod (2; 7% instances), discourse (2; 7% instances)
Parents of PART
nodes belong to 5 different parts of speech: VERB (22; 79% instances), PRON (2; 7% instances), PROPN (2; 7% instances), ADV (1; 4% instances), NOUN (1; 4% instances)
28 (100%) PART
nodes are leaves.
The highest child degree of a PART
node is 0.


The product API can be used to save products in a database. The API is accessible via port 8080 and works via HTTP. The port can be modified in the server.py source code.
Function: Creates a new row in the database when a JSON objecttable is sent in the request body.
Requestmethod: HTTP DELETE
Dataformat required: JSON
Response: HTTP 201
Retrieve a table or row
Parameter: /retrieve-all
Function: Used to retrieve the whole database in JSON format.
Requestmethod: HTTP GET
Response: HTTP 200
Parameter: /retrieve/<rownumber>
Function: Used to retrieve a specific row of the database.
Requestmethod: HTTP GET
Response: HTTP 200
Update a row
Parameter: /update/<rownumber>
function: Updates a row when a JSON objectlist is sent in the request body
Dataformat required: JSON
Requestmethod: HTTP PUT
Response: HTTP 200
Delete or reset a table or row
Parameter: /delete/<rownumber>
Function: Removes the specified rownumber from the database.
Requestmethod: HTTP DELETE
Response: HTTP 200
Parameter: /reset
Function: Resets the whole database and will put one example product in the database.
The example product in JSON format:
('Banana', 'Fruit', 'Amsterdam', '2014-10-05', '15')
Requestmethod: HTTP DELETE
Response: HTTP 200
Parameter: /reset-all
Function: Resets the whole database to an empty state.
Requestmethod: HTTP DELETE
Response: HTTP 200
Errorhandling
Error 404
When a link does not match one of the above parameters, a 404 will be raised.
Error 415
The server expects data in (valid) JSON format in the requestbody when accepting the ‘create’ or ‘update’ requests. If no valid JSON data is detected in the body error 415 is raised.


Example-2
The sequence of DOM elements in app.component.html is different from
what is being rendered. Chech board2.component.html
I am something which hasn't been mapped to any
ng-content
I am the body of the `content` that has been inserted using `ng-content`
I am Header of Ex-2