
The idea of a body so massive that even light could not escape was put forward by geologist John Michell in a letter written to Henry Cavendish in 1783 to the Royal Society:
If the semi-diameter of a sphere of the same density as the Sun were to exceed that of the Sun in the proportion of 500 to 1, a body falling from an infinite height towards it would have acquired at its surface greater velocity than that of light, and consequently supposing light to be attracted by the same force in proportion to its vis inertiae, with other bodies, all light emitted from such a body would be made to return towards it by its own proper gravity.
—John Michell[3]


Simulation of Gravitational lensing by a black hole which distorts a galaxy in the background.
In 1796, mathematician Pierre-Simon Laplace promoted the same idea in the first and second editions of his book Exposition du système du Monde (it was removed from later editions).[4][5] Such “dark stars” were largely ignored in the nineteenth century, since light was then thought to be a massless wave and therefore not influenced by gravity. Unlike the modern black hole concept, the object behind the horizon is assumed to be stable against collapse.
In 1915, Albert Einstein developed his general theory of relativity, having earlier shown that gravity does in fact influence light’s motion. A few months later, Karl Schwarzschild gave the solution for the gravitational field of a point mass and a spherical mass,[6] showing that a black hole could theoretically exist. The Schwarzschild radius is now known to be the radius of the event horizon of a non-rotating black hole, but this was not well understood at that time, for example Schwarzschild himself thought it was not physical. Johannes Droste, a student of Hendrik Lorentz, independently gave the same solution for the point mass a few months after Schwarzschild and wrote more extensively about its properties.
In 1930, astrophysicist Subrahmanyan Chandrasekhar calculated using general relativity that a non-rotating body above 1.44 solar masses (the Chandrasekhar limit) would collapse. His arguments were opposed by Arthur Eddington, who believed that something would inevitably stop the collapse. Eddington was partly correct: a white dwarf slightly more massive than the Chandrasekhar limit will collapse into a neutron star. But in 1939, Robert Oppenheimer and others predicted that stars above approximately three solar masses (the Tolman-Oppenheimer-Volkoff limit) would collapse into black holes for the reasons presented by Chandrasekhar.[7]
Oppenheimer and his co-authors used Schwarzschild’s system of coordinates (the only coordinates available in 1939), which produced mathematical singularities at the Schwarzschild radius, in other words some of the terms in the equations became infinite at the Schwartschild radius. This was interpreted as indicating that the Schwarzschild radius was the boundary of a bubble in which time stopped. This is a valid point of view for external observers, but not for infalling observers.
Because of this property, the collapsed stars were briefly known as “frozen stars”,[citation needed] because an outside observer would see the surface of the star frozen in time at the instant where its collapse takes it inside the Schwarzschild radius. This is a known property of modern black holes, but it must be emphasized that the light from the surface of the frozen star becomes redshifted very fast, turning the black hole black very quickly. Many physicists could not accept the idea of time standing still at the Schwarzschild radius, and there was little interest in the subject for over 20 years.
In 1958, David Finkelstein introduced the concept of the event horizon by presenting Eddington-Finkelstein coordinates, which enabled him to show that “The Schwarzschild surface r = 2 m is not a singularity, but that it acts as a perfect unidirectional membrane: causal influences can cross it in only one direction”.[8] This did not strictly contradict Oppenheimer’s results, but extended them to include the point of view of infalling observers. All theories up to this point, including Finkelstein’s, covered only non-rotating black holes.
In 1963, Roy Kerr found the exact solution for a rotating black hole. The rotating singularity of this solution was a ring, and not a point. A short while later, Roger Penrose was able to prove that singularities occur inside any black hole.
In 1967, astronomers discovered pulsars,[9] [10] and within a few years could show that the known pulsars were rapidly rotating neutron stars. Until that time, neutron stars were also regarded as just theoretical curiosities. So the discovery of pulsars awakened interest in all types of ultra-dense objects that might be formed by gravitational collapse.
Physicist John Wheeler is widely credited with coining the term black hole in his 1967 public lecture Our Universe: the Known and Unknown, as an alternative to the more cumbersome “gravitationally completely collapsed star”. However, Wheeler insisted that someone else at the conference had coined the term and he had merely adopted it as useful shorthand. The term was also cited in a 1964 letter by Anne Ewing to the AAAS:
According to Einstein’s general theory of relativity, as mass is added to a degenerate star a sudden collapse will take place and the intense gravitational field of the star will close in on itself. Such a star then forms a “black hole” in the universe.
—Ann Ewing, letter to AAAS[11]

Security Restrictions
One of the main goals of the Java environment is to make browser users feel secure running any applet. To achieve this goal, we’ve started out conservatively, restricting capabilities perhaps more than necessary. As time passes, applets will probably get more and more abilities.This page tells you about the current applet security restrictions, from the point of view of how they affect applet design. For more information on applet security, you should refer to Marianne Mueller’s excellent document:


Frequently Asked Questions - Applet Security
Each applet viewer has a SecurityManager object that checks for applet security violations. When a SecurityManager detects a violation, it creates and throws a SecurityException object. Generally, the SecurityException constructor prints a warning message to the standard output. An applet can catch SecurityExceptions and react appropriately, such as by reassuring the user and by resorting to a “safer” (but less ideal) way of accomplishing the task.
Some applet viewers swallow some SecurityExceptions, so that the applet never gets the SecurityException. For example, the JDK Applet Viewer’s implementation of the AppletContext getApplet and getApplets methods simply catches and ignores any SecurityExceptions. The user can see an error message in the standard output, but at least the applet gets a valid result from the methods. This makes some sense, since getApplets should be able to return any valid applets it finds, even if it encounters invalid ones. (The Applet Viewer considers an applet valid if it’s loaded from the same host as the applet that’s calling getApplets.)
To learn about security managers and the kinds of security violations they can check for, see Introducing the Security Manager
.
As the applet overview lesson mentioned, existing applet viewers (including Web browsers) impose the following restrictions:


- Applets cannot load libraries or define native methods.
- Applets can use only their own Java code and the Java API the applet viewer provides. At a minimum, each applet viewer must provide access to the API defined in the
java.* packages.
- An applet cannot ordinarily read or write files on the host that is executing it.
- The JDK Applet Viewer actually permits some user-specified exceptions to this rule, but Netscape Navigator 2.0, for example, does not. Applets in any applet viewer can read files specified with full URLs, instead of by a filename. A workaround for not being to write files is to have the applet forward data to an application on the host the applet came from. This application can write the data files on its own host. See Working with a Server-Side Application for more examples.
- An applet cannot make network connections except to the host that it came from.
- The workaround for this restriction is to have the applet work with an application on the host it came from. The application can make its own connections anywhere on the network. See Using a Server to Work Around Security Restrictions for an example.
- An applet cannot start any program on the host that is executing it.
- Again, an applet can work with a server-side application instead.
- An applet cannot read certain system properties.
- See Reading System Properties for more information.
- Windows that an applet brings up look different than windows that an application brings up.
- Applet windows have some warning text and either a colored bar or an image. This helps the user distinguish applet windows from those of trusted applications.The following figures show a window brought up by a program that can run either as an applet or as an application. The first figure shows what the window looks like when the program is run as an application on the Solaris platform. The second figure shows the window when the program runs as an applet within the Solaris Netscape Navigator 2.0 browser.


As you can see, the applet window has a warning.


Dear EarthTalk: I’ve noticed a lot of beach erosion along the eastern U.S. coast. Beaches are virtually nonexistent in places. Is this a usual cycle that will self-correct, or are these beaches permanently gone from sea level rise or other environmental causes?
– Jan Jesse, Morristown, TN
Unfortunately for beach lovers and owners of high-priced beach-front homes, coastal erosion in any form is usually a one-way trip. Man-made techniques such as beach nourishment—whereby sand is dredged from off-shore sources and deposited along otherwise vanishing beaches—may slow the process, but nothing short of global cooling or some other major geomorphic change will stop it altogether.
According to Stephen Leatherman (“Dr. Beach”) of the National Healthy Beaches Campaign, beach erosion is defined by the actual removal of sand from a beach to deeper water offshore or alongshore into inlets, tidal shoals and bays. Such erosion can result from any number of factors, including the simple inundation of the land by rising sea levels resulting from the melting of the polar ice caps.
Leatherman cites U.S. Environmental Protection Agency estimates that between 80 and 90 percent of the sandy beaches along America’s coastlines have been eroding for decades. In many of these cases, individual beaches may be losing only a few inches per year, but in some cases the problem is much worse. The outer coast of Louisiana, which Leatherman refers to as “the erosion ‘hot spot’ of the U.S.,” is losing some 50 feet of beach every year.
Of particular concern is the effect climate change, which not only causes sea levels to rise but also increases the severity and possibly the frequency of harsh storms, has on beach erosion. “While sea level rise sets the conditions for landward displacement of the shore, coastal storms supply the energy to do the ‘geologic work’ by moving the sand off and along the beach,” writes Leatherman on his DrBeach.org website. “Therefore, beaches are greatly influenced by the frequency and magnitude of storms along a particular shoreline.”
Besides collectively lowering our greenhouse gas emissions substantially, there is little that individuals—let alone coastal landowners—can do to stop beach erosion. Building a bulkhead or seawall along one or a few coastal properties may protect homes from damaging storm waves for a few years, but could end up doing more harm than good. “Bulkheads and seawalls may accelerate beach erosion by reflecting wave energy off the facing wall, impacting adjacent property owners as well,” writes Leatherman, adding that such structures along retreating shorelines eventually cause diminished beach width and even loss.
Other larger scale techniques like beach nourishment may have better track records, at least in terms of slowing or delaying beach erosion, but are expensive enough as to warrant massive taxpayer expenditures. In the early 1980s, the city of Miami spent some $65 million adding sand to a 10-mile stretch of fast-eroding shoreline. Not only did the effort stave off erosion, it helped revitalize the tony South Beach neighborhood and rescue hotels, restaurants and shops there that cater to the rich and famous.

Believe me, the CPU players do not cheat. There is no code that weights the dice towards the CPU, there is no unfair dice rolling, everything is totally random for all players. Everybody gets the same random dice rolls, humans and CPU players alike.
I’ve said it before, and I’ll say it again. I very much dislike playing against CPU players that aren’t better, just luckier. A classic example of this can be found in nearly every backgammon game for mobile phones. The hard CPU players just roll better dice all the time. I found this out by noting down the dice rolled on paper over 20 games, the CPU rolled way better dice. It’s a short cut to making the game more difficult. Making better CPU players is a hard problem to solve, it’s much easier just to give them better dice.
This drives me mad, so I made a specific decision to code a more intelligent CPU player, one that would make informed decisions like a human but would still be at the mercy of the dice. That is how I have coded all three CPU players. Cautious and Reckless basically follow the same rules:
- Always go with the highest scoring option every time
- If it’s the final round then keep on rolling until you either zilch or have more points than the opponent
- If using all the score options results in a free roll, take it
- If any scoring option is a free roll, take it
- If you have more than X points on the board, bank them
- If there are more than Y dice left unused, roll again