255 karma · joined November 5, 2014
- [0]: https://en.m.wikipedia.org/wiki/Trophy_(countermeasure)
- [1]: https://youtu.be/uRJzcM5ETY4
The American W82 155mm nuclear artillery shell[0] weighed 43kg (95lb), was 860 mm (34 in) long, and had a yield of 2 kilotons -- equivalent to 500 full WW2 heavy bomber loads.
These shells (as well as bombs and warheads with similar yields, carried by planes and missiles, respectively) are called tactical nuclear weapons -- meant for use on the battlefield, to break up enemy formations. Their blast radius is relatively small. It was theorized that if the Cold War went hot and a conventional WW3 broke out, if the Soviet Union was pushing NATO forces back, then the Americans would authorize the use of tactical nuclear warheads. This would likely cause a spiral of escalation, up to a strategic nuclear exchange.
That, in and of itself, is worth a lot -- potentially even more than having a large military.
In Tom Clancy's book Red Storm Rising, about a hypothetical Third World War in Europe, he conceives of it as something like the F-35 ended up becoming -- a stealthy multirole aircraft (fighter-bomber). They called it the "F-19 Frisbee". The 19 comes from the fact that the previous fighter designation was for the F-18 Hornet.
The problem with using the ORM as you describe is that when you hit any sort of scale, you need to be doing bulk operations, otherwise your latency goes through the roof, to the point that the number of inefficient queries you are doing can tank the database. I speak from the experience of having seen a database collapse under the load of a backend written in this fashion having request load grow past a certain point — not pretty! The interim solution is to bulkify existing queries and functions in place to the greatest extent possible, while preparing for:
Converting a codebase from having endpoints doing individual ORM operations as described to having proper separation of concerns with a business logic layer between the endpoints and the database is a _massive_ cost. The earlier you implement that, the happier you will be in the longer term. It doesn’t have to be with raw SQL, but many bulk operations are much easier to express with SQL than with the ORM.
Finally, no current potential enemy state has the kind of aircraft carrier fleet needed to perform that the of attack. The U.K. and China both have two active carriers, but the Chinese are still training up. The Japanese launched about 300 planes from six carriers.
Nowadays, any surprise attack on the United States would be a counterforce launch of hundreds of ICBMs and SLBMs with at most twenty minutes of warning to launch a response, and hours to launch a second strike, assuming command and control networks remained active.
If you have `person` and `address`:
create table person (
id serial primary key,
first_name text not null,
last_name text not null,
date_of_birth date not null
);
create table address (
id serial primary key,
person_id integer not null references person (id),
street_number text not null,
apartment_number text,
city text not null,
state text,
postal_code text not null
);
Then you'd join using `person.id` to `address.person_id`. An inner join hides rows from the joining table if there is no corresponding row in the joined-to table, while an outer join includes rows from the joining table if there are no corresponding rows in the joined-to table.If we've got:
insert into person (first_name, last_name, date_of_birth)
values ('Brian', 'Kernighan', '1950-01-01'), -- gets id 1
('Dennis', 'Ritchie', '1948-01-01'); -- gets id 2
insert into address (person_id, street_number, city, postal_code)
values (1, '123 Main St.', 'Berkeley', '94701');
Then these two queries will return one and two rows, respectively: -- an inner join, only returns `person` rows with a corresponding
-- row in the `address` table
select person.first_name,
person.last_name,
address.street_number,
address.city,
address.postal_code
from person
inner join address on person.id = address.person_id
-- output:
-- first_name | last_name | street_number | city | postal_code
-- Brian | Kernighan | 123 Main St. | Berkeley | 94701
-- a left outer join, returns all `person` rows, regardless of
-- the existence of a corresponding row in the `address` table
select person.first_name,
person.last_name,
address.street_number,
address.city,
address.postal_code
from person
left outer join address on person.id = address.person_id
-- output:
-- first_name | last_name | street_number | city | postal_code
-- Brian | Kernighan | 123 Main St. | Berkeley | 94701
-- Dennis | Ritchie | | |
One important thing to know is if you are joining to multiple tables, and there are multiple corresponding rows (i.e., a `favorite_food` table with three rows per person, and a `favorite_color` table with three rows per person), you will get _multiplicative_ data -- `n_favorite_foods * n_favorite_colors` rows will be returned per person! This is where things like `group by` and `distinct` come into play.There are other types of joins, but these two are the usual suspects in most queries.
One bit of feedback on your website -- it's agonizingly slow to have to wait for the list of cities to scroll -- a bar or an arrow would be lovely.
Additionally, ships are usually not alone. The other vessels in the battlegroup will also provide their anti-air capabilities. If they are with an aircraft carrier, then there are also planes to provide air defense.
The YouTube channel Smarter Every Day recently had a video series on a nuclear submarine under the arctic ice.
Marco Rubio, for instance, has called Biden's policy agenda Marxist -- this coming from a man who has spent his political career agitating against normalizing diplomatic relations with Cuba. Conflating the two makes Cuba's government look more benign than it is, and makes the American government look more extreme than it is.
There was no way that either side was going to budge when that was the status quo. When the Hundred Days offensive kicked off, and Germany was being pushed back on the Western Front, and with their home front on the brink of collapse due to blockade-induced starvation, they did indeed initiate peace talks.
1. getting knocked out at the commencement of hostilities by an anti-satellite weapon
2. the Defense Intelligence Agency/National Reconnaissance Office noticing and telling the carrier to change course
3. getting blown up by an anti-satellite missile fired by an aircraft, or a member of the carrier’s strike group
Rods from god are a much more potent weapon when used against static targets!