Was the Manhattan Project a Fluke?

Was the Manhattan Project a Fluke?

This video argues that the Manhattan Project which developed the first atomic bombs and nuclear reactors during World War II was a fluke, not representative of what can be accomplished with Big Science programs. There have been many failed New Manhattan Projects since World War II.

Minor Correction: Trinity, the first atomic bomb test, took place on July 16, 1945 — not in May of 1945 as stated in the audio.

(C) 2019 by John F. McGowan, Ph.D.

About Me

John F. McGowan, Ph.D. solves problems using mathematics and mathematical software, including developing gesture recognition for touch devices, video compression and speech recognition technologies. He has extensive experience developing software in C, C++, MATLAB, Python, Visual Basic and many other programming languages. He has been a Visiting Scholar at HP Labs developing computer vision algorithms and software for mobile devices. He has worked as a contractor at NASA Ames Research Center involved in the research and development of image and video processing algorithms and technology. He has published articles on the origin and evolution of life, the exploration of Mars (anticipating the discovery of methane on Mars), and cheap access to space. He has a Ph.D. in physics from the University of Illinois at Urbana-Champaign and a B.S. in physics from the California Institute of Technology (Caltech).

Methane on Mars

NASA recently reported that the Curiosity rover on Mars detected unusually high levels of methane in the atmosphere, the latest in an intriguing series of detections of possible methane in the Martian atmosphere.

One of my (small) claims to fame is an article I published in 2000 while working at NASA Ames Research Center on “Oil and natural gas on Mars” (methane is natural gas).

https://www.researchgate.net/publication/228417575_Oil_and_natural_gas_on_Mars

The full text is available here: http://jmcgowan.com/oil_spie.pdf

(C) 2019 by John F. McGowan, Ph.D.

About Me

John F. McGowan, Ph.D. solves problems using mathematics and mathematical software, including developing gesture recognition for touch devices, video compression and speech recognition technologies. He has extensive experience developing software in C, C++, MATLAB, Python, Visual Basic and many other programming languages. He has been a Visiting Scholar at HP Labs developing computer vision algorithms and software for mobile devices. He has worked as a contractor at NASA Ames Research Center involved in the research and development of image and video processing algorithms and technology. He has published articles on the origin and evolution of life, the exploration of Mars (anticipating the discovery of methane on Mars), and cheap access to space. He has a Ph.D. in physics from the University of Illinois at Urbana-Champaign and a B.S. in physics from the California Institute of Technology (Caltech).

The Python enumerate() Function and Dictionaries


The enumerate() function in Python loops over a tuple, list, or other container object returning a counter/index and value for each element of the object. For example:

pets = ('dog', 'cat', 'parrot', 'hamster', 'mongoose')
for index, pet in enumerate(pets):
print(index, pet)

produces:

0 dog
1 cat
2 parrot
3 hamster
4 mongoose

The enumerate() function defaults to starting the index or counter at zero. There is an optional start argument to start the index or counter at another value. For example:

for index, pet in enumerate(pets, 100):
print(index, pet)

produces:

100 dog
101 cat
102 parrot
103 hamster
104 mongoose

The enumerate() function is a built-in replacement for using a manual index or counter, the common practice in C-style languages such as C, C++, and Java. For example:

index = 0  # manual index
for pet in pets:
print(index, pet)
index += 1

which also produces:

0 dog
1 cat
2 parrot
3 hamster
4 mongoose

A manual index or counter is error-prone, often resulting in off-by-one or other errors. Using the enumerate() function instead of a manual index is generally considered the “Pythonic” way to generate a counter or index during a loop over a tuple, list or other container.

The Python programming language community uses “Pythonic” in a non-standard English way that may mean:

“cool” as in James Dean was cool

“Exploiting the features of the Python language to produce code that is clear, concise, and maintainable.” https://stackoverflow.com/questions/25011078/what-does-pythonic-mean

Many other definitions of Pythonic exist.

Pythonic is also a rarely used adjective in standard English meaning:

(1) of or relating to pythons (the snake)

(2) similar to a python; pythonlike

(3) gigantic or monstrous

enumerate() and Dictionaries

Like most modern programming languages, Python has a built-in dictionary type, also known as an associative array or hash table in other languages. Technically, a hash table is a method to implement a dictionary/associative array, but is often used as a synonym for a dictionary or associative array.

In Python, dictionaries take a key, an object, and return an associated value object. Very often the key and value are strings, but they need not be. For example, this dictionary enables one to look up the type of pet from the pet’s name:

pets_dict = { "Toby" : "dog", "Serena" : "cat", "Ted" : "hamster", "Wilma" : "parrot", "Riki-tiki-tavi" : "mongoose" }

By default, the for loop in Python loops over the keys in the dictionary. For example:

for key in pets_dict:
print(key)

produces:

Toby
Serena
Ted
Wilma
Riki-tiki-tavi

on my computer. The order of the keys is not guaranteed.

for key in pets_dict:
print(key, "is a", pets_dict[key])

produces:

Toby is a dog
Serena is a cat
Ted is a hamster
Wilma is a parrot
Riki-tiki-tavi is a mongoose

pets_dict.keys() returns a dict_keys container with the list of keys in the dictionary.

pets_dict.values() returns a dict_values container with the list of values in the dictionary.

pets_dict.items() returns a dict_items container with the list of (key, value) tuples in the dictionary.

What does enumerate() do when applied to a dictionary?

By default, Python enumerate() is applied to the keys in the dictionary. Remember the for loop in Python defaults to looping over the keys of a dictionary. For example:

for index, value in enumerate(pets_dict):
print(index, value)

produces:

0 Toby
1 Serena
2 Ted
3 Wilma
4 Riki-tiki-tavi

Toby, Serena, and so on are the keys of the dictionary, the names of the pets in the example.

In some cases, you may need an index into the list of tuples of items in the dictionary:

for index, item in enumerate(pets_dict.items()):
print(index, item)

produces:

0 ('Toby', 'dog')
1 ('Serena', 'cat')
2 ('Ted', 'hamster')
3 ('Wilma', 'parrot')
4 ('Riki-tiki-tavi', 'mongoose')

(C) 2019 by John F. McGowan, Ph.D.

About Me

John F. McGowan, Ph.D. solves problems using mathematics and mathematical software, including developing gesture recognition for touch devices, video compression and speech recognition technologies. He has extensive experience developing software in C, C++, MATLAB, Python, Visual Basic and many other programming languages. He has been a Visiting Scholar at HP Labs developing computer vision algorithms and software for mobile devices. He has worked as a contractor at NASA Ames Research Center involved in the research and development of image and video processing algorithms and technology. He has published articles on the origin and evolution of life, the exploration of Mars (anticipating the discovery of methane on Mars), and cheap access to space. He has a Ph.D. in physics from the University of Illinois at Urbana-Champaign and a B.S. in physics from the California Institute of Technology (Caltech).

How to Evaluate a Counting Statistic

A counting statistic is simply a numerical count of the number of some item such as “one million missing children”, “three million homeless”, and “3.5 million STEM jobs by 2025.” Counting statistics are frequently deployed in public policy debates, the marketing of goods and services, and other contexts. Particularly when paired with an emotionally engaging story, counting statistics can be powerful and persuasive. Counting statistics can be highly misleading or even completely false. This article discusses how to evaluate counting statistics and includes a detailed list of steps to follow to evaluate a counting statistic.

Checklist for Counting Statistics

  1. Find the original primary source of the statistic. Ideally you should determine the organization or individual who produced the statistic. If the source is an organization you should find out who specifically produced the statistic within the organization. If possible find out the name and role of each member involved in the production of the statistic. Ideally you should have a full citation to the original source that could be used in a high quality scholarly peer-reviewed publication.
  2. What is the background, agenda, and possible biases of the individual or organization that produced the statistic? What are their sources of funding? What is their track record, both in general and in the specific field of the statistic? Many statistics are produced by “think tanks” with various ideological and financial biases and commitments.
  3. How is the item being counted defined. This is very important. Many questionable statistics use a broad, often vague definition of the item paired with personal stories of an extreme or shocking nature to persuade. For example, the widely quoted “one million missing children” in the United States used in the 1980’s — and even today — rounded up from an official FBI number of about seven hundred thousand missing children, the vast majority of whom returned home safely within a short time, paired with rare cases of horrific stranger abductions and murders such as the 1981 murder of six year old Adam Walsh.
  4. If the statistic is paired with specific examples or personal stories, how representative are these examples and stories of the aggregate data used in the statistic? As with the missing children statistics in the 1980’s it is common for broad definitions giving large numbers to be paired with rare, extreme examples.
  5. How was the statistic measured and/or computed? At one extreme, some statistics are wild guesses by interested parties. In the early stages of the recognition of a social problem, there may be no solid reliable measurements; activists are prone to providing an educated guess. The statistic may be the product of an opinion survey. Some statistics are based on detailed, high quality measurements.
  6. What is the appropriate scale to evaluate the counting statistic? For example, the United States Census estimates the total population of the United States as of July 1, 2018 at 328 million. The US Bureau of Labor Statistics estimates about 156 million people are employed full time in May 2019. Thus “3.5 million STEM jobs” represents slightly more than one percent of the United States population and slightly more than two percent of full time employees.
  7. Are there independent estimates of the same or a reasonably similar statistic? If yes, what are they? Are the independent estimates consistent? If not, why not? If there are no independent estimates, why not? Why is there only one source? For example, estimates of unemployment based on the Bureau of Labor Statistics Current Population Survey (the source of the headline unemployment number reported in the news) and the Bureau’s payroll survey have a history of inconsistency.
  8. Is the statistic consistent with other data and statistics that are expected to be related? If not, why doesn’t the expected relationship hold? For example, we expect low unemployment to be associated with rising wages. This is not always the case, raising questions about the reliability of the official unemployment rate from the Current Population Survey.
  9. Is the statistic consistent with your personal experience or that of your social circle? If not, why not? For example, I have seen high unemployment rates among my social circle at times when the official unemployment rate was quite low.
  10. Does the statistic feel right? Sometimes, even though the statistic survives detailed scrutiny — following the above steps — it still doesn’t seem right. There is considerable controversy over the reliability of intuition and “feelings.” Nonetheless, many people believe a strong intuition often proves more accurate than a contradictory “rational analysis.” Often if you meditate on an intuition or feeling, more concrete reasons for the intuition will surface.

(C) 2019 by John F. McGowan, Ph.D.

About Me

John F. McGowan, Ph.D. solves problems using mathematics and mathematical software, including developing gesture recognition for touch devices, video compression and speech recognition technologies. He has extensive experience developing software in C, C++, MATLAB, Python, Visual Basic and many other programming languages. He has been a Visiting Scholar at HP Labs developing computer vision algorithms and software for mobile devices. He has worked as a contractor at NASA Ames Research Center involved in the research and development of image and video processing algorithms and technology. He has published articles on the origin and evolution of life, the exploration of Mars (anticipating the discovery of methane on Mars), and cheap access to space. He has a Ph.D. in physics from the University of Illinois at Urbana-Champaign and a B.S. in physics from the California Institute of Technology (Caltech).

Video: Contradictory Numbers in Google’s Top Search Result for “stem shortage”

(C) 2019 by John F. McGowan, Ph.D.

About Me

John F. McGowan, Ph.D. solves problems using mathematics and mathematical software, including developing gesture recognition for touch devices, video compression and speech recognition technologies. He has extensive experience developing software in C, C++, MATLAB, Python, Visual Basic and many other programming languages. He has been a Visiting Scholar at HP Labs developing computer vision algorithms and software for mobile devices. He has worked as a contractor at NASA Ames Research Center involved in the research and development of image and video processing algorithms and technology. He has published articles on the origin and evolution of life, the exploration of Mars (anticipating the discovery of methane on Mars), and cheap access to space. He has a Ph.D. in physics from the University of Illinois at Urbana-Champaign and a B.S. in physics from the California Institute of Technology (Caltech).