Wednesday, January 4, 2012

Comments on Tractatus: 3 The logical picture of the facts is the thought

3 The logical picture of the facts is the thought.
Introduction of the 'think' concept. So now what does 'think', thought' etc mean. Is it the mini-activity of the mind/brain?
3.001 “An atomic fact is thinkable”—means: we can imagine it.
presumably a picture is imaginable too. Who knows...picture, fact, thought,

3.01 The totality of true thoughts is a picture of the world.
Are there other pictures? other pictures of the world?

3.02 The thought contains the possibility of the state of affairs which it thinks.What is thinkable is also possible.
First sentence: empty philosophical blather.Second, untrue.

3.03 We cannot think anything unlogical, for otherwise we should have to think unlogically.
This is patently untrue. Whether by deliberate Lewis Carrollisms, or the veryday drudgery of making mistakes or working with limited knowledge (bounded rationality), or the mixed up conflatino of ideas that is so easy to do, there's all sort s of illogical things we think. viz Whitman (Leaves of Grass 14)
Do I contradict myself? 
Very well, then, I contradict myself; 
(I am large—I contain multitudes.)

3.031 It used to be said that God could create everything, except what was contrary to the laws of logic. The truth is, we could not say of an “unlogical” world how it would look.
A non sequitur.

3.032 To present in language anything which “contradicts logic” is as impossible as in geometry to present by its co-ordinates a figure which contradicts the laws of space; or to give the co-ordinates of a point which does not exist.
Another non sequitur. One can say all sorts of illogical things. And then (what does not follow) one can describe all sorts of points which have no possibility of existing physically; the laws of physics son't limit what you can say. W seems to have, despite all his interest in philosophizing about mathematics, little understand of how mathematics works.

3.0321 We could present spatially an atomic fact which contradicted the laws of physics, but not one which contradicted the laws of geometry.
Here finally is some real philosophical content: the difference between ... physics and math: experience and thought? no one can think of contradictory things. induction and deduction? This is the closest so far.

3.04 An a priori true thought would be one whose possibility guaranteed its truth.
W is now playing with modal logic. A 'fact' whose possibility implies its truth? That seems a type mismatch. The logic will (or won't) have that as a rule of inference not the fact itself.

3.05 We could only know a priori that a thought is true if its truth was to be recognized from the thought itself (without an object of comparison).
A truth justifies itself? That seems crazy.

3.1 In the proposition the thought is expressed perceptibly through the senses.
What follows is an attempt to explain what propositions and facts and signs and names are. I think inarticulately and unsuccessfully. He is trying to be explicit and articulate about the operation of propositional logic. An elementary text does not go into similar excruciatingly meaningless detail. W should spend time explaining 'variable' (but I'm glad he didn't)

...
3.262 What does not get expressed in the sign is shown by its application.What the signs conceal, their application declares.
Finally something metaphorical that holds water: if the form of a proposition doesn't help ecxplain its meaning, the use or manipulation of it does.

More emptiness follows though...
3.313 An expression is thus presented by a variable, whose values are the propositions which contain the expression. (In the limiting case the variables become constants, the expressiona proposition.) I call such a variable a “propositional variable”.
Ah...now a description of 'variable', which sadly is incoherent (at least with a mathematical understanding of 'variable').

...
3.318 I conceive the proposition—like Frege and Russell—as a function of the expressions contained in it.
Hm..an actual reference for priority. It sounds like a reference to the idea of 'boolean function'.

...
3.321 Two different symbols can therefore have the sign (the written sign or the sound sign) in common—they then signify in different ways.3.322 It can never indicate the common characteristic of two objects  that we symbolize them with the same signs but by different methods of symbolizing. For the sign is arbitrary. We could
therefore equally well choose two different signs and where then would be what was common in the symbolization.
3.323 In the language of everyday life it very often happens that the same word signifies in two different ways—and therefore belongs to two different symbols—or that two words, which signify in different ways, are apparently applied in the same way in the proposition. Thus the word “is” appears as the copula, as the sign of equality, and as the expression of existence; “to exist” as an intransitive verb like “to go”; “identical” as an adjective; we speak
of something but also of the fact of something happening. (In the proposition “Green is green”—where the first word is a proper name and the last an adjective—these words have not
merely different meanings but they are different symbols.)
3.324 Thus there easily arise the most fundamental confusions (of which the whole of philosophy is full).
So W is saying that confusion sometimes comes from polysemy/amphiboly. Genius. Is sarcasm a propositional variable?

 ...
3.325 In order to avoid these errors, we must employ a symbolism which excludes them, by not applying the same sign in different symbols and by not applying signs in the same way which signify in different ways. A symbolism, that is to say, which obeys the rules of logical grammar—of logical syntax. (The logical symbolism of Frege and Russell is such a language, which, however, does still not exclude all errors.)
So symbolism should attempt to be unambiguous. Is W trying to describe math?
 ...
3.33 In logical syntax the meaning of a sign ought never to play a rĂ´le; it must admit of being established without mention being thereby made of the meaning of a sign; it ought to presupposeonly the description of the expressions.
A tenet of formal mathematical thinking.
3.331 From this observation we get a further view—into Russell’s Theory of Types. Russell’s error is shown by the fact that in drawing up his symbolic rules he has to speak of the meaning of the signs.
3.332 No proposition can say anything about itself, because the propositional sign cannot be contained in itself (that is the “whole theory of types”).
Goedel changed all this. I can't blame W for not realizing it; hardly anybody did (except for maybe Tarski and von Neumann).
3.333 A function cannot be its own argument, because the functional sign already contains the prototype of its own argument and it cannot contain itself. If, for example, we suppose that the function F(fx) could be its own argument, then there would be a proposition “F(F(fx))”, and in this the outer function F and the inner function F must have different meanings; for the inner has
the form (fx), the outer the form  ( (fx)). Common to both functions is only the letter “F”, which by itself signifies nothing.
This is at once clear, if instead of “F(F(u))” we write “(9 ) :
F( u) : u = Fu”.
Herewith Russell’s paradox vanishes.
Again, I can't blame W for understanding future logical developments that contradict this.

...
3.343 Definitions are rules for the translation of one language into another. Every correct symbolism must be translatable into every other according to such rules. It is this which all have incommon.
This starts to sound like not nonsense.
3.344 What signifies in the symbol is what is common to all those symbols by which it can be replaced according to the rules of logical syntax.
3.3441 We can, for example, express what is common to all notations for the truth-functions as follows: It is common to them that they all, for example, can be replaced by the notations of “sp”
(“not p”) and “p _ q” (“p or q”). (Herewith is indicated the way in which a special possible notation can give us general information.)
This sounds like it should mean something logical, but I can't map it to anything in my (logical) experience.
...

Comments on Tractatus: 7 Whereof one cannot speak, thereof one must be silent.

7 Whereof one cannot speak, thereof one must be silent.
A classic aphorism. Essentially 'Faire et se taire', 'say what you mean and mean what you say, then say nothing else. This I take to be a meaningful aphorism, a truth hidden in it's tautology, that is nothing more than tautologous. I take this as the corollary of Schopenhauer's:

You may also puzzle and bewilder your opponent by mere bombast; and the trick is possible, because a man generally supposes that there must be some meaning in words

So it's not an empty tautology, but a tautology that can be explored. It has real connotations. It can be acted upon. Stop talking about things of which there is nothing to say (there -is- something to say, but nothing worthwhile is the implication).

As to language, I think this works in English as in the original German, that 'to be silent = schweigen' is the logical opposite of 'to not speak = nicht sprechen', making an aphoristic tautology as profundity worthy of Nietzsche.

A large part of the Tractatus could have been treated this way, a lot of blather that doesn't add anything, neither by its direct statement or by the fact that it is said at all. But W is both sincere and humorless. So he must have thought that what I think is empty BS is in fact really useful, but then, you really need to say that out loud: the aphorism denies itself, but a lot of the TLP text really didn't need to be said either implicitly or explicitly. So we don't disagree in principle, just in a large number of the details.

Maimonides: Seven causes of contradiction

Maimonides/Rambam in the lintroduction to his "Guide for the Perplexed' gives a big disclaimer for the possible confusions that might follow in from his text, a list of seven possible causes of contradiction. What I particularly about the list, even the existence of the list, is the attempt at implicit self-judgment; that is, here are the possible problems that you the reader may find (I, the author, have found them in other people's writings) and here is the explanation of why you may misunderstand in my own. Sort of like a prepared feint and parry.


Here is my interlinear commenting/lesson to be learned based on the translation by Friedlander. Maimonides describes a condition of where an inconsistency may arise, and an explanation of why it is actually not an inconsistency, just a misunderstanding. I follow with the moral I take to be drawn in order to avoid the inconsistency, even though that doesn't seem to be the intention of Maimonides (it seems he is just trying to say "it's your fault for thinking there's a contradiction, and here's why). Is he talknig about his own Talmudic commentaries, or those of others? I don't know.


THERE are seven causes of inconsistencies and contradictions to be met with in a literary work. The first cause arises from the fact that the author collects the opinions of various men, each differing from the other, but neglects to mention the name of the author of any particular opinion. In such a work contradictions or inconsistencies must occur, since any two statements may belong to two different authors.
Make your references obvious.

Second cause: The author holds at first one opinion which he subsequently rejects: in his work., however, both his original and altered views are retained.
Make your pattern obvious, that is, if you plan on using a reductio ad absurdam, say so, so that it is obvious what your exposition strategy is (this one is possible 'set up something to fall'

Third cause: The passages in question are not all to be taken literally: some only are to be understood in their literal sense, while in others figurative language is employed, which includes another meaning besides the literal one: or, in the apparently inconsistent passages, figurative language is employed which, if taken literally, would seem to be contradictories or contraries.
Make your metaphors explicit (or watch out for amphiboly) .

Fourth cause: The premises are not identical in both statements, but for certain reasons they are not fully stated in these passages: or two propositions with different subjects which are expressed by the same term without having the difference in meaning pointed out, occur in two passages. The contradiction is therefore only apparent, but there is no contradiction in reality.
Make your assumptions explicit.

The fifth cause is traceable to the use of a certain method adopted in teaching and expounding profound problems. Namely, a difficult and obscure theorem must sometimes be mentioned and assumed as known, for the illustration of some elementary and intelligible subject which must be taught beforehand the commencement being always made with the easier thing. The teacher must therefore facilitate, in any manner which he can devise, the explanation of those theorems, which have to be assumed as known, and he must content himself with giving a general though somewhat inaccurate notion on the subject. It is, for the present, explained according to the capacity of the students, that they may comprehend it as far as they are required to understand the subject. Later on, the same subject is thoroughly treated and fully developed in its right place.
 Explain things sufficiently.

Sixth cause: The contradiction is not apparent, and only becomes evident through a series of premises. The larger the number of premises necessary to prove the contradiction between the two conclusions, the greater is the chance that it will escape detection, and that the author will not perceive his own inconsistency. Only when from each conclusion, by means of suitable premises, an inference is made, and from the enunciation thus inferred, by means of proper arguments, other conclusions are formed, and after that process has been repeated many times, then it becomes clear that the original conclusions are contradictories or contraries. Even able writers are liable to overlook such inconsistencies. If, however, the contradiction between the original statements can at once be discovered, and the author, while writing the second, does not think of the first, he evinces a greater deficiency, and his words deserve no notice whatever.
Some contradictions are actual and not apparent (all the others are about apparent contradictions that really aren't). This sounds awfully like the 5th case. A long sequence of inferences is problematic: is the moral to shorten it (that seems to be the cause of a true contradiction not appearing) or to fully explicate all the premises and inferences?

Seventh cause: Itis sometimes necessary to introduce such metaphysical matter as may partly be disclosed, but must partly be concealed: while, therefore, on one occasion the object which the author has in view may demand that the metaphysical problem be treated as solved in one way, it may be convenient on another occasion to treat it as solved in the opposite way. The author must endeavour, by concealing the fact as much as possible, to prevent the uneducated reader from perceiving the contradiction.

Things are complex. The moral here is...well sometime to make things understood you have to choose where to stop, at the simple version or after explaining a lot of complexity. This is a justification for obscurantism.

Wednesday, November 2, 2011

No one likes to read

If given the choice between getting the same information by reading text or by looking at a picture, you will choose the picture.

Face it, you don't like to read.

Sunday, August 28, 2011

Math error in news: divorce rates

I heard an egregious math error the other day on NPR (from the morning of Friday, August 26. The story was about divorce statistics in the United States, regional differences, and changes over time.

The statement in questions was worded something like this:
The South has one of the highest rates of divorce in the country. One reason is that it has more marriages than elsewhere.
Sounds plausible right? Only if you redifine the concepts of what you are hearing. This is an egregious type mismatch of a rate to a number. a rate is the ratio of the subset to the whole (whatever the whole is), and a number is..well... it's just the count with no division going on. The rate is presumably the number of divorces per capita (entire population of the region).

The statement, as is, is inferring a number (more marriages) from a rate (higher divorce rate).



So maybe you have a large number of divorces and that can be because here is a large number of marriages (which may or may not be because of a large number of people). That is a reasonable inference to make.  

Or you might have a large marriage rate leading to a large marriage number in the region and (assuming people tend to get married within a region) this could lead to a large number of divorces in the region, and so immediately a large divorce rate.

But note this is all relative. A region could have a large divorce rate but small number of marriages or divorces. (or contrapositively, a lower -number- of marriages and high divorce -rate-). Much too unspoken is the relevant contexts for ratios and number comparison.

I don't think this is shoddy math exactly just shoddy use of language (which arguably -is- shoddy mathematics).

First, disclaimers: this is a paraphrase from memory, and I cannot find a transcript to corroborate my hearing.

Comments on Tractatus: 1 The world is everything that is the case

1 The world is everything that is the case.
Right off the bat he starts off with an empty tautology. Is 'empty tautology' an empty tautology? No, a tautology is a statement that is true under all interpretations. Something is empty when there is nothing instructive to be gained. This is collegiate late-night study-avoiding intellectual bullshit (I remember it well!). In my high school yearbook, we had to give a quote next to our picture (something pithy and meaningful, "If you love something, set it free,...") One guy just said 'Everything is'. That's it. Genius. A you-can-all-go-to-hell slap in the face, Anyway, W is being serious here. Wanker.

1.1 The world is the totality of facts, not of things.
OK...Come on. Really?

I'll bite. So he's in some sense redefining what you want people to think of as 'the world', 'facts, and 'things'. He's trying to pull the shades down (oops, I mean 'up' :) ) and show you that you're wrong to think of the world as sense objects (what I understand he means by 'things') and it is correct to think of it as statements. Almost Platonic. He's being kind of arrogant, and by 'kind of' I mean 'totally'. Anyway, why couldn't he just say 'let's talk about items of knowledge as opposed to sense objects'?

1.11 The world is determined by the facts, and by these being all the facts.
More stipulation then. He's defining 'world' to be a set of knowledge rather than, well, we've already forgot about all those other things.


1.12 For the totality of facts determines both what is the case, and also all that is not the case.
'Determine' is just a fancy way of saying 'let's think of them as'. Considering the negation, as being specified at all, is clever and Taoist, but is just encouraging us to being perceptive of form and ground, that's all.

If one can take this as substantive, W is presenting in a sideways manner the ideas of correctness and completeness, that what we are talking about is propositions ('facts') and that 'the world' )a domain of discourse) is a set of propositions, and that set is complete (everything about the world is said in those facts -and- anything -not- in that set is -not- true of that world), something that would be said nowadays as sort of a closed world assumption: for a given world, there is no more and no less what is stated in a set of 'facts'.


1.13 The facts in logical space are the world.

Kind of empty repetition of the previous.

1.2 The world divides into facts.
Kind of empty repetition of the previous. Or could be taken to be a deep deep principle of mathematics that 'is' is not a symmetric in English, that one must state (if not show) both directions the world is made up facts and (the other direction) nothing else. Or it could be bullshit.

1.21 Any one can either be the case or not be the case, and everything else remain the same.

I have little to say here (!!) other than this is pretty empty, that is, he is saying things that we already know. Is a statement of obvious simplicity ('the king has no clothes!') interesting or useful? Sometimes yes. Here it is hard to see.

Or is this just an expression of there's no middle between true and false?

This set of propositions (is that what these are, or are they recursively self-defining 'facts'?) is pretty sparse, but intended to introduce. Was this outline produced linearly or refined as needed? Of course both, but section this looks like a quick start to get the rest.


Now a comment on commenting. Obviously, I have something against Wittgenstein here. It could easily turn out to be the kind of sophomoric disdain one has for elementary knowledge that wasn't once so elementary. Fine. Revolutionary in his time (he made possible/motivated/kick started/inspired the school of logical positivism/the Vienna circle?), but boring now?

Wednesday, August 10, 2011

Comments on Mythical Man-Month: Chapter 7


Chapter 7. Why Did the Tower of Babel Fail?
(cursory comments here, there is hardly any discussion to be made  because it is too easily true; needs to be said, but I can't really add anything).
7.1 The Tower of Babel project failed because of lack of communication and of its consequent, organization.
This is the same as noting the benefits of standards. There's having a standards, and making sure everyone uses the standard, 
Communication
7.2 ''Schedule disaster, functional misfit, and system bugs all arise because the left hand doesn't know what the right hand is doing." Teams drift apart in assumptions.
Pretty obvious.
7.3 Teams should communicate with one another in as many ways as possible: informally, by regular project meetings with technical briefings, and via a shared formal project workbook. (And by electronic mail.)
By documentation? yes, it is all needed but has the same difficulty as any documentation in that it is hard to make it follow reality once written down.
Project Workbook
This is an entirely new concept to me, but is very easily implemented using a wiki nowadays.
7.4 A project workbook is ''not so much a separate document as it is a structure imposed on the documents that the project will be producing anyway."
-
7.5 ''All the documents of the project need to be part of this (workbook) structure."
-
7.6 The workbook structure needs to be designed carefully and early.
designed how?
7.7 Properly structuring the on-going documentation from the beginning ''molds later writing into segments that fit into that structure'' and will improve the product manuals.
Document early? I guess really one should document continuously and this is just a reminder not to put it off until afterwards.
7.8 ''Each team member should see all the (workbook) mate- rial's (I would now say, each team member should be able to see all of it. That is, World-Wide Web pages would suffice.)
This device (workbook) still needs behavioral 'technoloy', people should be encouraged to use a wiki in this manner.

7.9 Timely updating is of critical importance.
duh?
7.10 The user needs to have attention especially drawn to changes since his last reading, with remarks on their significance.
Current wiki technology (MediaWiki) enable comparing, but it is of questionable facility (ain't so easy to use).
7.11 The OS/360 Project workbook started with paper and switched to microfiche.
Good for them. I remember when we had to use the chits thrown away by card readers. And no pen, just a stick and excess oil from the sides of the printer housing.

7.12 Today (even in 1975), the shared electronic notebook is a much better, cheaper, and simpler mechanism for achieving all these goals.
yes.
7.13 One still has to mark the text with (the functional equivalent of) change bars and revision dates. One still needs a LIFO electronic change summary.
The current implementation of good behavior, a version control system, takes care of this.

7.14 Parnas argues strongly that the goal of everyone seeing everything is totally wrong; parts should be encapsulated so that no one needs to or is allowed to see the internals of any parts other than his own, but should see only the interfaces.
Without reference to the next item, I find this total encapsulation questionable. Yes, data hiding is good at every level, reducing the unnecessary expense of mental energy. But seeing what is available and how other things look is a good way to learn design too.
7.15 Parnas's proposal is a recipe for disaster. (I have been quite convinced otherwise by Parnas, and totally changed my mind.)
Parnas's view has been totally vindicated by the open source movement. But Brooks brings up an interesting contradiction, that of data-hiding as a laudable goal. I'm not sure how to reconcile the two. Maybe it is that for unit construction purposes, making large knowledge necessary is undesirable, but for finding the tools you need (without knowing exact details), seeing the larger catalog is better.

Organization
7.16 The purpose of organization is to reduce the amount of communication and coordination necessary.
Just like in -programs!-
7.17 Organization embodies division of labor and specialization of function in order to obviate communication.
Just like in -programs!- 
7.18 The conventional tree organization reflects the authority structure principle that no person can serve two masters.
Reduces communication and trust complexity (trust complexity is how many varieties of similar but conflicting messages one gets. Yes, I just made that up.
7.19 The communication structure in an organization is a network, not a tree, so all kinds of special organization mechanisms ("dotted lines") have to be devised to overcome the communication deficiencies of the tree-structured organization.
Right. A single tree is too simplified for humans. More than one tree, or a network is better. But not haphazard.

7.20 Every subproject has two leadership roles to be filled, that of the producer and that of the technical director, or architect. The functions of the two roles are quite distinct and require different talents.
The difference needs to be explained better. A producer is... and an architect is...

Really, I thought he was going to say a technical architect and a human resource type manager.
7.21 Any of three relationships among the two roles can be quite effective:
. The producer and director can be the same.
. The producer may be boss, and the director the producer's right-hand person.
. The director may be boss, and the producer the director's right-hand person.
I think this is too localized to his situation. Interpersonal conflicts and connections may make this a good fit or a bad one. This is too losely judgable by scoial engineering experiments.

Comments on Tractatus: 2 What is the case, the fact, is the existence of atomic facts.


(As things get longer, I won't comment on everything, I'll just quote those things I comment on)

2 What is the case, the fact, is the existence of atomic facts.
Twelve words to say "let's dance around defining 'atomic'". -Atomic- facts? Are these facts that are unanalyzable/unsplittable? Prime facts?...Isn'tthat just axiomatics? Did Euclid (and Eudoxus etc) figure do that taxonomy already?

2.01 An atomic fact is a combination of objects (entities, things).
I guess the answer would be 'no' to previous. That is, 'atomic' means um...not atomic.A combination is not atomic right, because you can split it into constituents.

2.011 It is essential to a thing that it can be a constituent part of an atomic fact.
Wow. Not my particular definition of 'atomic'. I'd hope that something called 'atomic' would not have parts at all.

...hm...mea culpa. Sadly, in reading a classic text about philosophy of language, and in philosophy where defining terms and playing with their vagueness and amphiboly is most of the activity, I failed to consult the original text and alternate translations. The original term is
Sachverhalten
which is translated by Ogden as 'atomic facts'. Not having facility with German, I can only consult dictionaries and see that this is usually translated by just plain 'facts'. Pears' translation uses 'states of affairs'. So any failings of the text ascribed to the use of the term 'atomic' where it is irrelevant, misleading, and/or wrong, I blame these on Ogden. I don't have any idea what the connotations of 'Sachverhalten' are in distinction to the other 'fact' word, namely 'Tatsachen'.

What this says to me is that depending on translations, is like depending on ones native understanding of connotations of particular words, and can therefore be terribly misleading. If you are taking the course of the narrative based on unspoken definitions of the language being used then it will be terribly misleading. And unfortunately this is exactly what most philosophers do, extrapolate on unspecified connotations, which are inherently language and culture specific.

So, two meta comments...in the rest of this commenting, I will try to translate in my head 'atomic facts' to 'states of affairs' with some sort of internal meaning attached to 'Sachverhalten'. Also, I withdraw my above comments I stand on 2.01 and 2.011, but 2 stands. These points are self-explorations mutually defining statements about 'Fall' (a 'case'),  'a fact') and 'Sachverhalten' ('states of affairs'). Hilbert famously remarked that

"One must be able to say at all times--instead of points, straight lines, and planes--tables, chairs, and beer mugs".

and this is exactly the Wittgensteinian 'use implies meaning' thesis. But where does W give that thesis? Here in TLP somewhere? Later in PI? Created out of thin air by commentators? Something in between?

2.012 In logic nothing is accidental: if a thing can occur in an atomic fact the possibility of that atomic fact must already be prejudged in the thing.
So before this statement, W and the translations were unwittingly -showing- what is the case, but now he is telling us...but badly.

This statement is pure philosophy, in that it is an analysis of how analysis happens.

The rest is a bit of 'meaning' play trying to tease out what exactly a 'fact' should be.  Given the above difficulty with the pivotal term 'atomic fact', consider it to be uninterpretable, unanalyzable (but not indivisible, that is something else) and that its use is telling you how it..well, how it is to be used.

2.0121 It would, so to speak, appear as an accident, when to a thing that could exist alone on its own account, subsequently a state of affairs could be made to fit. If things can occur in atomic facts, this possibility must already lie in them.
(A logical entity cannot be merely possible. Logic treats of every possibility, and all possibilities are its facts.) Just as we cannot think of spatial objects at all apart from space, or temporal objects apart from time, so we cannot think of any object apart from the possibility of its connexion with other things.

... (lots of stuff (that I don't care to comment on) omitted)...
2.0232 Roughly speaking: objects are colourless.
This just comes out of nowhere. Totally irrelevant to everything else and doesn't 'do' anything. Nonsense in the Edward Lear/Lewis Carrol sense.  

...
2.063 The total reality is the world.
Summary: let's talk about 'facts'.
2.1 We make to ourselves pictures of facts.
The rest of this section is an enforced slippage in meaning of 'picture' from whatever you think it is to 'metaphor'. As to the original German, I can't really say.

2.21 The picture agrees with reality or not; it is right or wrong, true or false. 
2.22 The picture represents what it represents, independently of its truth or falsehood, through the form of representation.
'Everything is'
2.221 What the picture represents is its sense.
This actually comes close to saying something. And then falls away into nothingness.
2.223 In order to discover whether the picture is true or false we must compare it with reality.
This says something. A 'picture' (whatever it really is supposed to mean) is not reality, but representing reality. I'd go further with what I think he should be getting at ("a picture is an attempt to represent reality, a theory, whose correctness depends on comparison with data..." but that has the latter-day benefit of 100 years of further exploration). But he dosen't go in that direction. He just adds further emptiness.
2.224 It cannot be discovered from the picture alone whether it is true or false.
Maybe he is going that way. Anyway, it stops here.
2.225 There is no picture which is a priori true.
I barely understand what 'a priori' means outside of this, so I certainly don't know what he means here. So i he saying that a 'picture' is a -representation- of a statement that can be either true or false and that a picture isn't necessarily one or the other, but must be checked? (against what? 'reality'? but then a 'picture' is an experimental hypothesis? I find it hard to believe this is where he's going with this.)

Monday, August 8, 2011

Comments on the Tractatus: Intro and Preface and quick general observations

I'll begin here with comments on the motto and Russell's introduction.

Motto: . . . und alles, was man weiss, nich bloss rauschen und brausen gehört hat, lässt sich in drei Worten sagen. 

To translate loosely, "pretty much everything can be explained in three words". A justification of aphorisms and the style of the book, which is certainly written aphoristically. As long as the words are chosen well, I think this is a good thing in general...too many words, too much explanation, is often just too much. But also sometimes philosophers tend to use words...extrapolatively. Yes, there is a dictionary definition, and common unspoken connotations, but these are then metaphorized beyond comon limits. As long as they stay on this side of line of incoherence, it works (take any work with 'Being' in the title, they're getting pretty close) with a lot of leeway.


I won't do interlinear on Russell's intro, just selections:
What is meant is somewhat less complicated than it sounds.

This is purely in reference to W's mathematical symbolism.
... a good notation has a subtlety and suggestiveness which at times make it seem almost like a live teacher
A classic statement by Russell, of which I had never thought that this is where it would have appeared.As prefacing TLP, It is preceded by "Wittgenstein’s fundamental thesis that it is impossible to say anything about the world as a whole." and that this may have been suggested by notation. This leap seems pretty far to me so I can only guess that what Russel means is that a notation is a purposeful limitation, instead of trying to say things about the world, just say them about something very small and particular (maybe that's just me saying that about notation). I think this is the major benefit of mathematical language (and further this 'notation'). It is what makes mathematical language the goal for philosophical language, precise and limited.

There are some respects, in which, as it seems to me, Mr Wittgenstein’s theory stands in need of greater technical development
I think Russell is being polite here, -very- polite, a back-handed compliment, damning with faint...no, it's not even praise. I read it as, from the perspective someone who had completed a three volume master opus of an attempt to develop all mathematics from a few logical principles, that he doesn't want to be the giant squashing a bug. So in a sense, he's holding back quite a bit.

What causes hesitation is the fact that, after all, Mr Wittgenstein manages to say a good deal about what cannot be said...
Exactly. W's manner here is 'sober', serious, sometimes metaphorical, but never cynical, and not mercurial. So when W says in his own preface, you will understand his book when you consider it nonsense, he really -means- that rather than trying to be clever. W may mean it, but it is not necessarily the case (I find that TLP is -full- of extrinsic meaning and that W is giving a contrary message from outside the work).

...to have constructed a theory of logic which is not at any point obviously wrong is to have achieved a work of extraordinary difficulty and importance. This merit, in my opinion, belongs to Mr Wittgenstein’s book, and makes it one which no serious philosopher can afford to neglect.
"not at any point obviously wrong"...this is another 'read-between-the-lines'...Russell is trying very hard not to say anything negative. It's almost of the level of 'fills a well-needed gap in the literature', or 'the text was well-formatted with undeniable taste in choice of font'.


Now for W's preface.
How far my efforts agree with those of other philosophers I will not
decide. Indeed what I have here written makes no claim to novelty in
points of detail; and therefore I give no sources, because it is indifferent
to me whether what I have thought has already been thought before me
by another.
What this says to me is that he doesn't bother with distinguishing original thought and repeating what he's heard elsewhere. To me this is consistent with the knowledge that most of his sections 5 and 6 were well established mathematical logic at the time of his writing...

I will only mention that to the great works of Frege and the writings
of my friend Bertrand Russell I owe in large measure the stimulation of
my thoughts.
 ...and what good he got out of mathematical logic he got from Frege and Russell (the machinery of truth-functions) and anything else is a poor, mangled presentation by W of what others laid out before him.

Other statements in the intro are bizarrely immodest ("This book will perhaps only be understood by those who have themselves already thought the thoughts which are expressed in it—or similar thoughts.", "I am, therefore, of the opinion that the problems have in essentials been finally solved")


As to the general form of the book though, I am particularly fond, the ever expanding outline, the analytic tree, the commentary, elucidation, step by step as opposed the weaving self overlapping narrratives common in most humanities. Though it is an attempt at having the form of systematicity (like the obvious example of Spinoza), whether it is even close to success there, the attempt is what matters. I say systematization because, in disagreement with most commenters, it is not an attempt to be Euclidean, like Spinoza, in a statement-proof-statement-proof manner, but rather it is simply an outline, where shorter numbered items are explained further by numbers with suffixes. To be topical however, I suppose I should mention that this has affinities with bullet point mania in Powerpoint slide decks. I think it works well here; a narrative would be as boring as...ahem...Kant.


Comments on Tractatus-Philosophicus

You read things and you want to vent about it. Wittgenstein has been on my bedside table forever (which means for me that I totally ignore it). But every so often I'll pick up something or read online. So I'm going to do another interlinear comment stream on a classic, Wittgenstein's Tractatus. I am not a scholar of philosophy, but I am interested, have read naively a fair amount, and have lot's of comments that have built up over the years.

My main online source is:

   http://www.kfs.org/~jonathan/witt/tlph.html

a hypertext version with original German, and the Ogden English translation, and Russell's introduction.

Other sources are:

   the PDF of side-by-side German and two English translations

So coming soon are my interlinear comments plus some thematic comments.

Wednesday, August 3, 2011

Metaphors in Software Engineering

Deploying web applications

- like doing open heart surgery on someone in the swimming stage of a triathlon

Fixing bugs

- like trying to open a locked door, with no keyhole or handle, the sign says 'push' but



Friday, July 1, 2011

Philosophy of Mathematics: the missing section, Aesthetics

In the compartmentalization of philosophy, there are major some visible and populated conceptual sub faculties all of which touch and are touched by mathematics. There's: mathematical philosophy, philosophy from a mathematical perspective, mathematics from a  philosophical point of view: metaphysics, epistemology (especially philosophy of mind and philosophy of language and logic), philosophy of science, sociology of science. Mathematics is one branch of learning that touches many of the branches of philosophy and has been studied long and deeply. Except...

Except for aesthetics. Beauty, value, and sentiment, have all been mentioned and discussed informally with respect to mathematics. Among the many things G.H. Hardy is famous for is his 'Mathematician's Apology' which seems to be the first historical appearance of a matter of fact of close similarities between  a mathematician and a poet. I call this a 'matter of fact' because to most non-mathematicians, math is unquestionably all rigid formality. Since Hardy, there has been much talk about how the practice of creating new mathematics is an art, engenders feelings of beauty. Lots of  academic mathematicians have written about mathematical aesthetics; every other article in the Mathematical Intelligencer tends to have an aesthetic character. But there has been little (or no) academic, philosophical study of aesthetics by aestheticians if that's not a word, it's a word now) or mathematicians themselves.

I'm not about to presume to fill that gap in any depth. How about I'll presume to outline what kinds of topics might be pursued academically, rather than to stop at what has been done only informally.

  • in what way is mathematics like poetry, painting? (artifice)
  • beauty and ugliness in mathematics
    • what do people find beautiful in a proof? Surprise, symmetry, simplicity
    • correspondence between a picture (which might be beautiful) 
    • account for universals and differences in appreciation of mathematical concepts
    • examples
      • theorems
      • proofs
      • objects
      • theories (collections of theorems and definitions and objects)
  • deep vs. beautiful vs. useful (many applications)
  • mathematical measures of aesthetic judgments (a calculus of beauty; math in the service of non-mathematical aesthetics) 
It's just a start. I have only superficial things to say about any of these things, but I suppose there are people with more...ahem... sublime things to say.

Friday, January 28, 2011

Comments on Mythical Man-Month: Chapter 6



Chapter 6. Passing the Word

6.1 Even when a design team is large, the results must be reduced to writing by one or two, in order that the mini- decisions be consistent.
I think this is all hopelessly unjudgeable because 'large' is not defined (or it is self-defining). But the concept is important; the concept of a larger number of mini-decisions is salient, thousands of small decisions in design are made either through implicit experience or by following the path of least resistance.

6.2 It is important to explicitly define the parts of an architecture that are not prescribed as carefully as those that are.
Yes, sounds good, is good, but is an afterthought. This item is intended to get you to acknowledge vagueness, acknowledge the -lack- of specification/design. In some sense this applies to the subsystem/black box already (the subsystem, to be implemented needs its own internal design hidden), but this bullet point is also about the main design, that there are parts not devolved to the subsystem that are still just not yet specified. But it's hard to know what you don't know.

6.3 One needs both a formal definition of a design, for precision, and a prose definition for comprehensibility.
 Yes, sounds good, but a problem with DRY, and ensuring correspondence between formal and informal (the usual problem with flowcharts).

6.4 One of the formal and prose definitions must be standard, and the other derivative. Either definition can serve in either role.
Or, just to convert this into total blandness, they could be done together. It is not clear that it must be one or the other. But relevant to the previous point, whichever one is thae standard and the other the derivative, one is being modified officially, and the other has to change in kind, there has to be an explicit process to remember to modify the other.

6.5 An implementation, including a simulation, can serve as an architectural definition; such use has formidable disadvantages.
What? Is a simulation a prototype? Oh...maybe he saying this is a bad thing. In 'real-world' engineering, the prototype is a proof of concept; it isn't polished but the main effect is shown to work. No one would consider actually using the unpolished version. A 'productized' version is what will actually be used

Currently, in software engineering, there is the bad habit that prototypes, initial implementations, are somehow set in stone and become a de facto standard. Now that we've seen this, we should just realize 'don't use the prototype'.


6.6 Direct incorporation is a very clean technique for enforcing an architectural standard in software. (In hardware, too--consider the Mac WIMP interface built into ROM.)
What? (I don't get the particular reference, really, the MAC was the exemplar of that practice?). Is this the same as compiling to silicon?

6.7 An architectural ''definition will be cleaner and the (architectural) discipline tighter if at least two implementations are built initially.''
 If you have an excess of resources to do something like that, sure. Maybe competing teams? That's another luxury of big companies.

6.8 It is important to allow telephone interpretations by an architect in response to implementers' queries; it is imperative to log these and publish them. (Electronic mail is now the medium of choice.)
I feel like bug reporting software is of much higher quality now than when he was writing so this point should be 'Use modern bug reporting software'.


6.9 ''The project manager's best friend is his daily adversary, the independent product-testing organization."

Adversarial evolutionary progress sounds good but might be contrary to human nature. How can this be made less antagonistic and more...ok not so negative but more constructive. Negativity is easy (and easy to be correct), but constructive criticism is hard...at that point the commenter doesn't have the resources to  make the design take the criticism into consideration.

But this could just be the start of a better testing apparatus: formal specs, test driven development, unit-testing frameworks, testing scripts.

Monday, January 17, 2011

Comments on Mythical Man-Month: Chapter 5



Chapter 5. The Second-system Effect

5.1 Early and continuous communication can give the architect good cost readings and the builder confidence in the design, without blurring the clear division of responsibilities.
This is somewhat bland. Was it a problem in his time that communication was restricted so much?

5.2 How an architect can successfully influence implementation:
  • Remember that the builder has the creative responsibility for implementation; the architect only suggests.
  • Always be ready to suggest a way of implementing anything one specifies; be prepared to accept any other equally good way.
  • Deal quietly and privately in such suggestions.
  • Be ready to forgo credit for suggested improvements.
  • Listen to the builder's suggestions for architecture improvements.
This is all about handling competing concerns: separation of concerns and managing personalities. To summarize, separate the responsibilities between design and implementation, but allow communication between the two parties.


5.3 The second is the most dangerous system a person ever designs; the general tendency is to over-design it.
Sophomoric? Most of the software engineering discipline is about managing peoples' psychology, either individuals or groups. The 'second system' problem is about what didn't get done or got done badly in the first one, and the problem is that one over compensates. or rather -can- compensate. A first system may have made compromises or limitations in an attempt to get out in time; the second system might try to correct this by adding all the features planned but missing from the first one. Or if design was haphazard in the first system, actual design used for the second, maybe just the less informal process of the second system allows more realistic performance metrics.


So this may happen, or it may not. Which is the number two system? Is it the one after the prototype? Or the one advertised second? 



5.4 OS/360 is a good example of the second-system effect.
(Windows NT seems to be a 1990s example.)
This is soooooo old. In fact nostalgic, I am not so old to...actually...I -am- barely old enough. (my only comment here is nostalgic). I remember back when I first got the computer bug (~7th grade, in the late eighties right before the first prolifereation of PCs, meaning there were none). An older friend of the family happened to be a programmer, and just happened to have a little souvenir for me: a reference card for System 360 JCL and assembly language. It was just the right amount of inscrutability to get my interest. It was an opaque totem..well I did learn about tangential things from it like the existence of EBCDIC and hexadecimal and that there were opcodes and registers and such. I didn't have a 360 to try to code on, but I did have a ...well eventually I had a 6502 to do real assembly on. And by college when I had an architecture class, and our first materials included a System -370- refcard (woo hoo...progress...looked almost the same and I already understood what was going on), I was almost jaded. But really, you just accept what things are in a class.

Which is all to say, I can't really judge his pronouncement about OS/360.

5.5 Assigning a priori values in bytes and microseconds to functions is a worthwhile discipline.
What I think he's trying to say here is 'just do it'. If you're going to try to estimate something, treat it as a Fermi problem, approximate right now without a whole lot of thought and engineering, you can fix up the details later.

Peoples' names in fiction and reality

Fiction writers create a world through their narrative seqeunces you follow a path through their speech and it little by little fills out a landscape. But when we read we're not necessarily so rational and certain ancillary, inconsequential, non-essential details unnaturally blow up into -making- the feel of the entire narrative.

For example, physical descriptions of roles in the narrative, like their manner of dress, or even things like facial expressions. These descriptions come across (in lazier fiction) as proxies for personality, counter to the advice of "show, don't tell", the author is trying to show their face, as a movie might, but they end up just telling you what the particular expression means.

And I find this annoying. Because when reading a narrative, I do try to make a mental picture of it all, but it's a but ream like and vague, not a crisp big screen photographic image.

Another distractor of the same kind is character names. "Dagny Taggert', 'Mr. Darcy', I have a hard time articulating what they mean to me (the author would say 'exactly, you read the book to find out') but that impression came from the pseudo morpho-phonological connotations of the name, before the book.

Then what about reality?. You meet someone and exchange names, 'Oh what a nice name', 'Hm you don't look like a "Frank"', 'I used to know a "Cecil" and you're just like him'. Surely there are cultural issues, exoticism, associations. But the point is, you judge the person based on their name. They didn't choose their name (well, for the most part; some choose to alter, augment, or change it entirely).

So, for the most part, if you think the name fits or doesn't, blame the parents.


Monday, January 10, 2011

Comments on Mythical Man-Month: Chapter 4

Chapter 4. Aristocracy, Democracy, and System Design
4.1 ''Conceptual integrity is the most important consideration in system design."
What is conceptual integrity? is it consistency? is it simplicity? Is it understandability by others? The locution is pretty empty, meaning anything you want that is something like 'really good stuff', or some other self-supporting, empty phrase.The more I try to pin down its meaning, the more fluid it gets. I think I have a vague idea of what it should mean with respect to software, but any rational definition of it just never seems fully right.

4.2 ''The ratio of function to conceptual complexity is the ultimate test of system design," not just the richness of function. (This ratio is a measure of ease of use, valid over both simple and difficult uses.)
I'll just continue to harp on the undefined nature...how can one have a ratio when the dividend and divisor aren't well defined. What does 'function' mean? Number of features? Define 'feature'? This is all too vague.

4.3 To achieve conceptual integrity, a design must proceed from one mind or a small group of agreeing minds.
Totally consistent with chapter 3. Simply a repetition (given that we accept 'conceptual integrity' to be general 'software goodness')

4.4 ''Separation of architectural effort from implementation is a very powerful way of getting conceptual integration on very large projects." (Small ones, too.)
Now -this- is an important strategy for design and is actually substantive (where many less vague concepts than 'conceptual integrity' can be assessed, like 'time' to implement', or run-time efficiency of code (this latter idea is probably made worse, but that's for another comment, which will come soon enough)). And it is entirely abstract. Works for anything. It essentially says design is recursive. you can design a single entity by splitting it into parts (however you split) and each of those parts can be also designed. the 'separation' is essentially the structured programming/OOP concept of encapsulation/modularity/black box/hidden data, all of which are aids to memory and knowledge. That design the whole so that you need to know and remember as little as possible about the insides of the parts.

4.5 ''If a system is to have conceptual integrity, someone must control the concepts. That is an aristocracy that needs no apology."
Authoritarian certainly. This doesn't particularly show well with open-source projects, where (naively?) there -is- no designer or master control. But this has

4.6 Discipline is good for art. The external provision of an architecture enhances not cramps, the creative style of an implementing group.
This sounds like Russell's admonition that a good notation helps with the math (that is some structure as opposed to total freedom, helps)...OK I looked for it. The quote is very relevant:
...a good notation has a subtlety and suggestiveness
which at times make it seem almost like a live teacher.
(from Russell's introduction to Wittgenstein's Tractatus)

4.7 A conceptually integrated system is faster to build and to test.
A -modular- (let's take that as the intended meaning; not a straw man, and not really what one one thinks of immediately system certainly is -easier- and then, I guess, faster to test, but not necessarily more efficient. For comparison's sake let's say the alternative to modularity is ...I'm searching for the word...something to do with 'monolithic'...how about 'monolithicity'? 'monolithicness'? 'unity'? Anyway, a monolithic system has large communication/use degree between internal implicit concepts and features, and therefore, much shorter dependency paths than a modular system,and so is more likely to have greater executional efficiencies. BUt to support Brooks's statement, if one is being modular, then each module has a much smaller and cohoerent test range and so test can be tested more easily The monolithic system -has- to be developed/designed as one entity with all element in a designers mind at once, much more likely to overload that human's ability to manipulate the design mentally.

4.8 Much of software architecture, implementation, and realization can proceed in parallel. (Hardware and software design can likewise proceed in parallel.)

If modularity in  followed and specifications of interaction between the pieces is done well, then yes.

Thursday, January 6, 2011

Comments on Mythical Man-Month: Chapter 3



Chapter 3. The Surgical Team
3.1 Very good professional programmers are ten times as productive as poor ones, at same training and two-year experience level. (Sackman, Grant, and Erickson)
Intuitively, I grant that, and so am very willing to accept the data.
3.2 Jackman, Grant, and Erickson's data showed no correlation whatsoever between experience and performance. I doubt the universality of that result.
Yes, I'm sure it 'depends'. For example on specific skills like, numerical analysis or parsing or functional programming I'm sure experience helps a lot.
3.3 A small sharp team is best-as few minds as possible.
This is too vague and too unsupported by any data. Why wouldn't a larger team of very sharp minds work (working on different parts)? How about a team with sharp designers and plodding implementers? How about...well...how about just stick with 'small' (forget 'sharp' assuming that's a constant). How small?...

3.4 A team of two, with one leader, is often the best use of minds. (Note God's plan for marriage.)
- Re: marriage - WJW. I'll cut him some slack because he wrote this in the seventies. Um..actually this summary was written in 2001.
- let's just accept it for what it is. I don't doubt this is a report of his experience but could be too swayed by anecdotal evidence (one example stands out too well in his mind).
3.5 A small sharp team is too slow for really big systems.
Contradicts 3.3. So this must just be saying 'small sharp team for ...anything but a really big system (and then you need more?)'. I don't get it. I need a definition of 'small' and 'large'.

3.6 Most experiences with really large systems show the brute-force approach to scaling up to be costly, slow, in- efficient, and to produce systems that are not conceptually integrated.
 maybe. I don't have much experience with 'really' large systems or scaling up for that mattter.

3.7 A chief-programmer, surgical-team organization offers a way to get the product integrity of few minds and the total productivity of many helpers, with radically reduced communication.
Sure...I'll accept as stated.

Comments on Mythical Man-Month: Chapter 2

Chapter 2. The Mythical Man-Month
2.1 More programming projects have gone awry for lack of calendar time than for all other causes combined.
I agree. The cause is lack of connect between desire and implementation. Because of other reasons (non-repeatability inherent as a design consideration, mentioned in chapter 1). Also, it is easier to think of a thing than it is to create a thing. This is not particular to software. But maybe it is worse for software. Drawing a diagram of a building is hard thoughtful design work, but everybody can compare that directly to lifting a beam with a crane to implement the drawn line, and how much harder the latter is compared to the former. But thinking about some one else's thoughts seems makes the others thoughts seem so easy.
2.2 Good cooking takes time; some tasks cannot be hurried without spoiling the result.
This isn't special to programming. Neither really is the first one but for that I could think of programming specific reasons.
2.3 All programmers are optimists: ''All will go well.”
Again, this isn't special to programming, or even engineering, but any kind of planning.
2.4 Because the programmer builds with pure thought-stuff, we expect few difficulties in implementation.
2.5 But our ideas themselves are faulty, so we have bugs.
faulty = inconsistent, incomplete at the best of times, but usually just underspecified, vague, and inchoate
2.6 Our estimating techniques, built around cost-accounting, confuse effort and progress. The man-month is a fallacious and dangerous myth, for it implies that men and months are interchangeable.
On an assembly line, labor/time -is- a commodity, adding more people -does- make things better. Again, define what it is being added to. Adding more people to a project certainly may make things go faster, when those pieces are small, identifiable, seperate parts.
2.7 Partitioning a task among multiple people occasions extra communication effort-training and intercommunication.
No doubt. Communication costs increase with size. Software is hardly ever assembly line. Every product is new. One way to think about it is that software -is- design, you're designing an assembly line to automatically take care of many multiples of objects. Yes, you can assign more people to more sandbags, to add items to widgets. But the things that a programmer is working on...every item is a new, different thing that can't be treated in exactly the same way as the previous one.
2.8 My rule of thumb is 1/3 of the schedule for design, 1/6 for coding, 1/4 for component testing, and 1/4 for system testing.
This is just SWAG (or more charitably, what he happens to do). Even if timing experiments are done, too much is not measurable in a controlled fashion. Each of these events is 'as long as a piece of string' (i.e. however as long as it will take). Is this normative or descriptive? As percentages then meaningless.
2.9 As a discipline, we lack estimating data.
Yes. Because things are not repeatable.
2.10 Because we are uncertain about our scheduling estimates, we often lack the courage to defend them stubbornly against management and customer pressure.
I'd also add that the occupational hazard of the engineering discipline is concern for details and technical aptitude, and so a lack of practice in human psychological concerns. That's general, but also the specific acceptance of authority's wishes too easily because wishes aren't facts and so cannot be argued.
2.11 Brooks's Law: Adding manpower to a late software project makes it later.
Famous, supported by data. Depends on definitions (what -kinds- of projects).
2.12 Adding people to a software project increases the total effort necessary in three ways: the work and disruption of repartitioning itself, training the new people, and added intercommunication.
Yes, those are the major subparts of Brooks' law (when it applies)

Comments on Mythical Man-Month: Who the hell am I to say anything

Anybody can say anything about anything. a cat can look at a king. But you got a point, how does one trust, put weight, care about things said?


So what possible way can I justify that what I say anecdotally or with the scent of authority has any potential to be extrapolated successfully? We all have many layers of what we do: the accountant has to manage people in addition to being a whiz at adding/using excel, the plumber a whiz at knowing the hidden possibilities of where pipes go and dealing with suppliers not just how to connect PVC to iron, etc. A major part of my immediate purposeful salaried work is doing and managing software engineering: I program, and I manage other programmers. Not many programmers, and not a huge project (actually conveniently scaled), but I have to interact with a number of other IT organizations (company internal; few working contacts outside). I have worked in 'industry' just out of college but only on smallish things (one self-contained) and one that involved groups but self-contained within around 20 software types, did absolutely nothing of any use or nontrivial size in grad school.

So without a complete month-to-month CIA file biography, there it is. Not a lot of experience with large projects. But I have some experience, enough to be able to comment intelligently.

Comments on Mythical Man-Month: Chapter 1

Analysis of Brooks' bullet points from Mythical Man-Month chapter 1. (note: these will all be interlinear)
Chapter 1. The Tar Pit
1.1 A programming systems product takes about nine times as much effort as the component programs written separately for private use. I estimate that productivity imposes a factor of three; and that designing, integrating, and testing components into a coherent system imposes a factor of three; and that these cost components are essentially independent of each other.
The numbers Brooks chose (3 and 3) are wildly divergent depending on the kind of software system being developed. Is it a big system with large modular parts? Is it a small highly optimized system? Is it a -new- system? I think realistic numbers could be made with a lot of differentiation of what system means and a lot of experimentation. The primary point is that design/integration/testing are a big part of any project. I actually don't know what he means by 'productivity', but I'll grant 'independence'.
1.2 The craft of programming ''gratifies creative longings built deep within us and delights sensibilities we have in common with all men," providing five kinds of joys:
  • The joy of making things.
  • The joy of making things that are useful to other people.
  • The fascination of fashioning puzzle-like objects of interlocking moving parts.
  • The joy of always learning, of a nonrepeating task.
  • The delight of working in a medium so tractable- pure thought-stuff-which nevertheless exists, moves, and works in a way that word-objects do not.
These five points are not particularly independent (1 and 2 are paradoxically not independent, and I consider 1 and 3 identical in this context of programming/systems engineering, because that is what we are making. As to 'non-repeating', the unwritten implication is the avoidance of boredom. We (programmers) will spend -hours- working on a for-all-time general solution with a one-button-press initiation to avoid having to do a repetitive keyboard operation over and over (that could easily have taken less time than the general solution). In fact, there is (read: 'I have') a visceral reaction to when others do something many times, when it is so obvious that one could do it once.
These points are really just an expression of the general motivating psychology for programmers. It is a good explanation for all the work put into 'open-source' and 'free-ware' ('see what I can do').
1.3 Likewise the craft has special woes inherent in it.
  • Adjusting to the requirement of perfection is the hardest part of learning to program.
This is a bit like saying 'math takes getting used to'. Which is not to say that I disagree, it's just speaking to an audience of programming outsiders, which I'd expect is not the primary readership of this book.
  • Others set one's objectives and one must depend upon things (especially programs) one cannot control; the authority is not equal to the responsibility.
I think this is simply a statement of the manager/worker/tool situation (managers ask workers to get things done, the worker/programmer attempts to do that using tools, and some of those tools may be created by others outside of one's control. I'm not totally sure about the independence of authority and responsibility set forth here. Again, it's philosophy, other views of the same situations are equally valid.
This sounds worse than it is: actual authority comes from momentum of accomplishment.
This qualification is still unclear.
  • With any creativity come dreary hours of painstaking labor; programming is no exception.
True of any skill: painting, storytelling, baseball. I think he's trying to emphasize that programming, which many people are plain unfamiliar with, -is- a skill.
  • The programming project converges more slowly the nearer one gets to the end, whereas one expects it to converge faster as one approaches the end.
Could be cynical, fatigue at the end making things harder than expected. But also, many design situations create a tree of resolutions needed: to resolve problem X, a number of subproblems need to be resolved, and each one of those subproblems their own. So the number of problems grows exponentially, but labor only achieves at a linear rate.
  • One's product is always threatened with obsolescence before completion. The real tiger is never a match for the paper one, unless real use is wanted.
This sounds like 'whatever you make will be out of date before you get to market'. I'm sure that is a worry of any designer, and comes true all the time but it is still a philosophical statement. For example the opposite is similarly supportable; there are many products, badly designed, poorly implemented, and late (from the initial idea) that have grown and taken over market share despite those failings (Windows is the most obvious example). 


This chapter is really general motivation and psychology rather than anything much experimentally testable. It mostly rings true for me, and I highly suspect for most programmer types. 
 
Note: by 'philosophical' I think I mean 'a cogent thing, but it's opposite, and orthogonal versions are equally supportable'.

What Brook's expects for Mythical Man-Month

What Brook's expects for Mythical Man-Month's last chapter...the last chapter of his book (a recent edition/some 25th anniversary republication) is a linear bullet list of all the claims made in the original, chapter by chapter. I think his intent was to encourage what I am about to do which is take each of those points and comment: were they right or wrong, do they still hold, is it relevant at all, etc. So the first installment will be on the intro to that chapter:
Much more is known today about software engineering than was known in Which of the assertions in the original 1975 edition have been supported by data and experience? Which have been disproved? Which have been obsoleted by the changing world? To help you judge, here in outline form is the essence of the 1975 book-assertions l believed to be true: facts and rule-of-thumb-type generalizations from experience-extracted without change of meaning. (You might ask, ''If this is all the original book said, why did it take 177 pages to say it?'') Comments in brackets are new.
Most of these propositions are operationally testable. My hope in putting them forth in stark form is to focus readers' thoughts, measurements, and comments.
Ah...that's exactly what I just said I was going to do. So really, I only have one comment. Re: "Why did it take 177 pages to say it?" ...I take that as a rhetorical humor; of course it takes a book to explain a bunch of bullet points. My further comments come with the expectation is you have read the book (or if you have a question about his point, to go check the full original text...or just assume).

Monday, October 11, 2010

Impending doom

Somehow, links to a 4 year-old paper by the logician Edward Nelson, "Warning Signs of a Possible Collapse of Contemporary Mathematics" has been passed around on the web, as I have just done.

The title is provocative. In so many ways, it is at the same time interesting and no big deal. The sky is not falling. And neither are bridges.

To summarize, the short polemical but still technical paper says:

  • something about mathematics has a component that is close to spiritual
  • actual infinity is misguided
  • the consistency of ZFC is overwhelmingly believed (since there is no proof (yet?)) but there are some doubters.
  • there is a straightforward and simple exposition as to why one might doubt consistency
I think the first three are pretty undeniable in that 1) I agree with them (and I consider myself sufficiently knowledgeable in the field (yes, this is self-reported self-knowledge (those are independent))) 2) they are simply unsupportable opinion (you can't deny something like that) and/or 3) I find it a pretty accurate state of affairs of what I think other people think, true or not.

The last however...

Technically this short essay is an extended less technical explanation of one chapter "Is exponentiation total?" of his book "Predicative Arithmetic" Princeton U. Press, 1986. Some background is necessary here. First, philosophically, logic is in a bizarre sense he playground of the wildly perverse skeptic. When doing logic, important questions are things like "How do you know 'A and B'? ", "If you didn't have the rule for eliminating double negation, what sort of things can you prove?". And technically, this can lead to an ordering of more and more powerful (but also therefore more questionable) logics. One philosophical problem is that of 'predicativity'; a set is impredicative if it has to be defined by, in a technical sense, already being defined. Another is totality of the exponential function; certain theorems are provable only if you -assume- that the exponential function is total (defined for every natural number).

Now impredicativity might seem a little questionable (we're all use to recursive definitions, but that 'necessarily self defining' is kinda strange). But how can one -possibly- doubt that exponentiation is total? It just -is- total of course...right? Well, that's the point of the chapter and this longer article, that for purely technical reasons, successor ('plus one') is total by an axiom (you really have to start somewhere), but the recursive definition of addition is total (using Peano arithmetic), also multiplication is total (again by PA) and ...well...no...you can't similarly prove in this way that exponentiation is total (the technical block being that exponentiation is not so conveniently associative like addition and multiplication).

Frankly I'm not sure if Nelson shows that it is -impossible- to prove that it is total, but I'll take his word for it (not a particularly good mathematical attitude (see...not particularly skeptical..therefore my statement that logic or even mathematics is the most skeptical science of all. What I haven't made this statement before? OK...but that's for another place and time )).

From this kind of provability statement (of both 'it is possible to prove...' and 'it is impossible to prove...' (and many other technical arguments) one gets an ordering of logical systems that are equivalent to mathematical statements (this is the product of work on reverse mathematics). First there's PA (Peano Arithmetic), EFA, PRA, RCA_0, WKL_0, ACA_0, ATR_0, Pi_1^1-CA_0, Z_2. This ordering of logics (and equivlanet mathematical systems, grows in strength (can prove more and more).

Anyway, that's it though. That is the entire warning sign that Nelson is giving: that the totality of exponentiation must be assumed as an axiom because it can't be proven from PA, this fact is a sign of the impending doom, of the total collapse of contemporary mathematics. Why? because it calls into question the consistency of mathematics.

How could mathematics not be consistent, you wonder. Well, that's mathematical skepticism for you. How do you know that a+b = b+a? It's obvious right. The whole point of proof (the modern mathematical/Greek defined idea) is that you can look and intelligently guess but in some instances be wrong. And since being wrong is Bad, you always want to be right, and you want to make sure that you are never ever wrong. And the way to do that (circularly of course!) is proof. Someone makes a statement...how do you know they're telling the truth? You doubt them? You are skeptical? They must -prove- it, and that proof goes for math. And the power of math (= symbolic reasoning) is that at some level it is terribly obvious (of course addition is commutative!) but sometimes not (the sum of reciprocals of squares = pi^2/6), so if you can doubt the harder one, you really should doubt the easy one too because you may have missed some extremely small detail. And note that most of these math 'things' are learned, i.e. remembered, even if derived at one point. That's what skepticism does for you.

But back to consistency. Is math...sorry let's pick a specific 'system'...is arithmetic consistent? That is, given the rules of construction numbers, the operation of addition,.,multiplication, an induction scheme, and some minimal logic, how do we know if, using that logic, we aren't able to prove a statement A and also it's negation -A (that's what consistency is, the inability to claim both A and its negation at the same time). And why is that important, other than being terribly confusing (so which is true, A or -A?) ? With a minimal logic (I mean that not in a technical sense but informally) and the two separate statements A, and -A, it is normal expected practice that one can then deduce -anything- (that's just an obtuse way of saying ex falsum quodlibet, from falsity one can infer anything (and 'A and -A' is pretty much no matter what considered always to be false (again a weird way to say something pretty obvious)).

So there's arithmetic (Peano Arithmetic is the mathematical system I described), and since a little bit of logic goes with it, some things can be proven (e.g. a+b=b+a). But consistency (by Goedel's theorem) cannot be proven within that proof system. So assuming only PA (Peano Arithmetic) we don't know if it is consistent or not. We have lots of human data to corroborate that it is (no one has yet found a mistake in arithmetic) but no one has yet proven, no one has yet -proven- that arithmetic is consistent. (everything has to be qualified, not only is skepticism -the- skeptical science, it is also the defining science...you better say exactly what you mean and mean exactly what you say...so there are proofs of -relative- consistency (one system is as consistent as another).

OK, but what is the point to this concept, consistency? It's all about skepticism and strength of provability. Since (by Nelson) the question 'Is exponential function total?' is not provable in PA, if you ever need to use the exponential on arbitrary naturals, you have to -assume- that it is total. Pretty obvious right, but still by following the rules, you need to assume it. And really, anything you assume is questionable, not just as to proof (that is established already that we cannot prove it (can't prove the negation either)) but questionable as to proof (they're different proof and truth). and something that is so obviously true (Nelson doesn't say it this way but he's leading us this way) as exponential being true, but it is not provable in a restricted system, well, that might mean for the much stronger, richer system of all math (which includes this PA as a small but integral part) where there are going to be -lots- of extra assumptions, much less 'obvious' than 'exponential is total', then with more and more axioms, there''s going to be more and more doubt if they are consistent. The higher up in that list the more questionable things become (in one very formal sense, but not in another where all these facts and constructions in the stronger mathematical systems are human proven (i.e. Brouwer's Fixed Point Theorem is equi-...pollent(?) to WKL_0, but that's a -theorem, right? ).

So I think what Nelson is getting at is that if you can doubt 'exponential is total', then there's a possibility that arithmetic might have some weird bizarro situation which is inconsistent. And if one can derive an inconsistency both A and -A, then you can derive anything, and then any statement you make could be provable.

The point is, that that hasn't happened yet. And would be pretty messed up if it had. And really, in the finite world of PA that we've explored no inconsistencies have been found, then, even if we go beyond a horizon and find some inconsistencies, it hasn't affected our current playpen of mathematical toys. Outside of that warm dependable cocoon maybe things fall apart, but inside, everything is all right. Nelson may be saying things are scary outside, and bad things may happen there (we don't know and every time we shine a flashlight there, nothing bad is found), so far, no contradictions.

Which is to say, whatever collapse Nelson is thinking of, it won't have an affect on anybody except i.e. real mathematicians and those who use mathematics won't be affected in the least. It will certainly have an effect (if it happens) on science writers trying to make a cool story for all the non-technical people, and for the vast majority of technical people who will need years of non-useful irrelevant study to grasp the subtlety presented here.

So, if you're concerned that mathematics might imlode because of some internal inconsistency, the only evidence so far for it, from a person (Nelson) who is actively seeking such inconsistency, is because exponentiation is not associative, well, I don't think that's very concerning.

Oh yeah, and even if something else shows up that truly shows that arithmetic is inconsistent, it won't afffect any mathematician's day to day work. A number of popularizations will come out of it. Some NYT headlines. But that's the extent of it.