"The study of the relations of states with each other and with international organizations and certain subnational entities (e.g., bureaucracies, political parties, and interest groups). It is related to a number of other academic disciplines, including political science, geography, history, economics, law, sociology, psychology, and philosophy."--- https://www.britannica.com/topic/international-relations
Business: studying international business and cross-cultural adaptation
Economics: understanding trade between nations, banking systems, and their effects
Military Science: analyzing the impact and use of military force
... and many, many others
"Explain the fall of Communism in 1989."
"What factors led Saddam Hussein to invade Kuwait in 1993?"
"Was the NATO intervention in Kosovo in 1999 legal by international law?"
"Why did Russia invade Ukraine in 2014 and 2022?"
"Why war?"
1989: Graduated high school, started Univ of Calif: Davis
1989: Declared an International Relations (MilSci) major
1993: Noticed something... weird... about my life
My roommates were both programmer-types
Most of my social circle were programming geeks
Most of my free time was spent reading about code
Hmmm.....
Roommate's dad was an IBM Research Fellow
His take: "Nobody cares about your degree--just prove you can code"
New plan!
Go ahead and graduate with an IR degree
But spend time writing code to prove I can code
1995: Graduated w/B.A. in International Relations
1995: First job as C++/Windows developer
1997: First book(s) published: Core OWL 5, Advanced OWL 5
2000: Server-Based Java Programming published
... and we're off
At first, it didn't
Every interview: "How does your degree factor in to writing code?"
Won't lie, this was part of the reason to write the books!
But a funny thing happened....
I found having knowledge of:
history
economics
psychology
sociology
... to be helpful in:
working w/legacy projects
understanding the startup community
talking to users
working with a team
"Soft" skills are anything but "soft", and "hard" skills, aren't
"Soft" skills are difficult, nondeterministic, and fuzzy
And none of these are characteristics taught in a traditional CS curriculum
Computer Science thinks in binary
Computer Science thinks in binary
Liberal Arts thinks in "shades of gray"
... about Woodrow Wilson?
28th President of the United States (1913-1921)
"Great reformer"
"Man of peace"
"regarded himself as the personal representative of the people"
"developed a program of progressive reform"
"asserted international leadership in building a new world order"
"By virtue... of the slogan, 'He kept us out of war', he narrowly won re-election. But after the election he decided America could not remain neutral in the World War."
(Source: http://www.whitehouse.gov/history/presidents/ww28.html)
invaded Mexico 10 times during his Presidency
sent 1,500 Marines to Haiti, killing 3,000 (1915)
occupied the Dominican Republic (1916)
dispatched the US Army to Europe to "make the world safe for democracy" (1917)
occupied Panama (1918)
dispatched troops to Nicaragua, fixed the election, then forced the president to sign a treaty beneficial to US business (1918)
put down a Haitian rebellion against US occupation (1919)
sent 11,000 troops to Russia to support the Czar against the Communist "Red" Revolutionaries (1919 - 1920)
sent US warships to blockade Russian ports (1919)
"His Republican predecessors routinely appointed blacks to important offices. … Wilson changed all that. He was an outspoken white supremacist."
"His administration submitted an extensive program intended to curtail the civil rights of blacks, but Congress would not pass it."
"Wilson used his power as chief executive to segregate the federal government. His administration used the excuse of anticommunism to surveil and undermine black newspapers."
"The one occasion on which Wilson met with African American leaders in the White House ended in a fiasco as the president virtually threw the visitors out of his office."
"'Any man who carries a hyphen about with him,' said Wilson, 'carries a dagger that he is ready to plunge into the vitals of this Republic whenever he gets ready.' "
(Source: Lies My Teacher Taught Me, pp 19-20)
EJB
EJB
EJB
"The fast-moving and demanding world of e-commerce and information technology has put a new kind of pressure on application developers. Enterprise applications have to be designed, built, and produced for less money, faster, and with fewer resources than ever before."
"To reduce costs and fast-track enterprise application design and development, the J2EE platform provides a component-based approach to the design, development, assembly, and deployment of enterprise applications. The J2EE platform gives you a multitiered distributed application model, the ability to reuse components, a unified security model, and flexible transaction control. Not only can you deliver innovative customer solutions to market faster than ever, but your platform-independent J2EE component-based solutions are not tied to the products and APIs of any one vendor. "
"Simplified architecture and development: The J2EE platform supports a simplified, component-based development model. Because it's based on the Java programming language and the Java 2 Platform, Standard Edition (J2SE platform), this model offers Write Once, Run Anywhere portability, supported by any server product that conforms to the J2EE standard."
"Scalability to meet demand variations: J2EE containers provide a mechanism that supports simplified scaling of distributed applications, without requiring any effort on the part of the application development team."
"Integration with existing information systems"
"Choices of servers, tools, components"
"Flexible security model"
It's why we reject transaction systems in favor of other technologies like Spring/Spring.NET/Unity/DI/IoC/RoR/NextJS/...
... because clearly Sun/Oracle/Microsoft couldn't code their way to "Hello, world" with this stuff
Obviously J2EE and COM+ failed!
Microservices, EJB, or Oracle Tuxedo?
"Scalability": "Code can be broken into smaller parts that can be developed, tested, deployed, and updated independently."
"Focus": "... developer focuses on solving business problems and business logic."
"Availability": "back-end data must always be available for a wide range of devices... ."
"Simplicity": "... provides simplified development of large scale enterprise level application."
"Responsiveness": "... enables distributed applications to scale in response to changing transaction loads... ."
"Reliability": "Ensures no single point of failure by providing replicated server groups that can continue when something breaks. Restores the running application to good condition after failures occur."
First two are from J2EE/EJB
Second two from Tuxedo
Last two, microservices
it's not quite enough to "just know"
learning from history is not always easy
lots of people don't know how to (ignorance)
lots of people think it won't apply (apathy)
lots of people don't want to (committed)
... but the lessons are there
for a given situation you want to analyze...
... start by listing 3 columns key elements
Known
Unclear
Presumed
... explicitly identify any past situations that appear analogous
Likenesses
Differences
... define the objective
"What's the story?" (Goldberg Rule; how did these concerns develop)
time-lines: Start the story from its origin, plot the key trends
ask "journalists' questions": "when, what, where, who, how, why"
... array the options
history has but a limited role here
options are defined by current conditions/capabilities (context)
"what can we do now?"
... complete the sentence:
"For the objective of _____, doing _____ is the best option because _____"
try this for each of the options
remember that these are all bets not answers
... TODO
Math is often cited as a complementary "hard" science
Mathematics is "pure"
2 + 2 equals 4
there is no "gray area", no room for interpretation
It underpins so many other things (Physics, Astronomy, etc)
And if CS is a branch of Mathematics, then is IR better than CS?
In a triangle ABC, where D is a point that lies inside the triangle...
Prove that AD + DB < AC + CB
A well, open at the top, has a diameter of 3 meters. We throw two straight sticks, four and five meters long, into the well. They land in the well, crossing each other. Determine the height at which they cross each other.
A farmer has a rectangular ranch with a perimeter of 110 meters and an area of 700 square meters.
What are the dimensions of the ranch?
A mathematician is challenged by a passer-by to guess the ages of his three sons.
"The product of their ages is 36."
"The sum of their ages is the number of books on that table over there."
"The oldest has blue eyes."
The first three problems came from a junior high (12-14 years') or elementary (10-12 years') school mathematics textbook.
The fourth requires math no more sophisticated than what you learned by third grade, and a bit of deductive reasoning.
Can't solve it? Feeling a bit embarrassed?
You are not alone.
"We have given the ABCD triangle problem to many people, including undergraduate and graduate students, and even full professors in mathematics, engineering, or computer science.
"Fewer than 5% of them solved it within an hour...
"... many of them required several hours...
"... and we witnessed some failures as well."
"the well problem takes less than a minute to solve...
"If you solve it within an hour (!), you'll belong to the elite one percent of the people we tested who managed to get the right answer within that time.
"What's more, everyone we tested had at least an undergraduate degree either in mathematics, engineering or computer science."
(Source: How to Solve It, 2nd Ed)
The problem is not that you don't know how to answer the question
The problem is that you don't know how to ask the questions
"We're taught to decompose problems and treat the smaller simpler problems individually. This is wonderful when it works. But complex real-world problems don't often decompose easily or meaningfully.
"What might even be worse, we are spoon fed the solutions to problems, chapter by chapter, never once being forced to think about whether or not the problems we are facing should be solved with the technique just described in our textbook.
"Of course they must! Why else would this problem be in this chapter?!"
"This is the case not just with texts for elementary mathematics but also with most textbooks for university courses.
"The problem and its solution in these books are never far apart."
(Source: How to Solve It, 2nd Ed, p 3-4)
"Real-world problems are difficult to solve, and they are difficult for several reasons:
"The number of possible solutions in the search space is so large as to forbid an exhaustive search for the best answer.
"The problem is so complicated that just to facilitate any answer at all, we have to use such simplified models of the problem that any result is essentially useless.
"The evaluation function that describes the quality of any proposed solution is noisy or varies with time, thereby requiring not just a single solution but an entire series.
"The possible solutions are so heavily constrained that constructing even one feasible answer is difficult, let alone searching for an optimum solution.
"The person solving the problem is inadequately prepared or imagines some psychological barrier that prevents them from discovering a solution."
What is philosophy?
"love of wisdom" (Ancient Greek)
the fundamental root of all thinking
the basis of all science
"science in one hand, and religion in the other"
the central question that philosophy seeks to answer
Ironically, most of us are (already) philosophers
what should we do?
what is there?
how do we know? if we don't know, how should we set about finding out?
Major branches of philosophy
Metaphysics
examining what exists, the difference between mind and matter, and so on
Epistemology
how do we know a thing? how do we acquire knowledge? what is the nature of knowledge?
Logic
Aristotelian syllogisms up through mathematical and symbolic logic
Moral philosophy and ethics
what is right? what is evil? what is virtue? what does it mean to live a good life?
Political philosophy
what are the "unassailable human rights"? what is the relationship between government and the governed?
Aesthetics
what is beauty? what is art?
Roger Scruton ("A Short History of Philosophy")
two distinguishing characteristics of philosophical thought
abstraction
concern for truth
"Problems of philosophy and the systems of design to solve them are populated in terms which tend to refer not to the realm of actuality, but to the realms of possibility and necessity: to what might be and what must be, rather than what is"
Philosophy is characterized by several things
students are encouraged not to accept the conclusions of their teachers, but to discuss, argue and disbelieve
arguments are rooted in logic and reason, not faith or belief
Most science begins as philosophy
"It has often been remarked that when an area of inquiry begins to find its feet as a discipline, with clearly agreed methods and a clearly agreed body of knowledge, fairly soon it separates off from what has up to then been known as philosophy and goes its own way."
such as....
physics
chemistry
astronomy
psychology
some continue to maintain tight relationships
"Epistemology is the branch of philosophy that considers how people come to learn what they know. Derived from the Greek word episteme, meaning knowledge or understanding, epistemology refers to the nature and origin of knowledge and truth. Epistemology proposes that there are four main bases of knowledge: divine revelation, experience, logic and reason, and intuition. These influence how teaching, learning, and understanding come about in the classroom."
"Epistemology focuses on what knowledge is as well as what types of knowledge there are. Because knowledge is a complex concept, epistemology also includes the study of the possibility of justification, the sources and nature of justification, the sources of beliefs, and the nature of truth."
"Theory of knowledge. The study of (a) the origins, (b) the presuppositions, (c) the nature, (d) the extent, and (e) the veracity (truth, reliability, validity) of knowledge. That branch of philosophy which asks questions such as: "Where does knowledge come from--how is it formulated, expressed, and communicated? What is knowledge? Is sense experience necessary for all types of knowledge? What part does reason play in knowledge? What are the differences among concepts such as: belief, knowledge, opinion, fact, reality, error, imagining, conceptualizing, idea, truth, possibility, certainty?"
-- Dictionary of Philosophy, Peter A Angeles
"What if everything we think we know is false?"
"Can we be sure of the truth of our beliefs?"
"What does it even mean for a belief to be true?"
Example: Did the Greeks see blue?
To say that a person knows something directly implies that the person is not wrong, so knowledge implies truth.
Knowledge also implies effort--that the person who has knowledge did more than just form a belief; they somehow earned it.
Ways of Knowing
a priori: knowledge that can be gained by reason alone
a posteriori: knowledge that can only be gained by experience
Types of Knowledge
Procedural: "know-how"
Propositional: knowledge of facts; "knowledge that"
by Acquaintance: gained from direct experience
x = 1.0 y = 1.0 x + y == 2 // False!
"the art of identifying and fixing a problem after it has been spotted"
Crashes & Hangs
Poor Performance/Scalability
Incorrect Results
Security Exploits
Inconsistent User Interfaces
Or, succinctly, "Bugs are unmet expectations"
How do we know it's a bug? Could it be correct?
Where did the data change from "correct" to "incorrect"?
Is the definition of that operation what we think it is?
What do we know?
What do we think we know?
How do we know it, or why do we think we know it?
2nd Lt in 1953; served in Korea for two months
graduated top of class at Fighter Weapons School ("Top Gun")
"Forty second Boyd":
"beginning from a position of disadvantage, he could defeat any opposing pilot in air combat maneuvering in less than 40 seconds" (Wikipedia)
developed the "energy-maneuverability" theory (E-M theory)
used this to save the floundering F-15 Eagle program
developed the "Aerial Attack Study", a manual of air-to-air combat
wrote "Destruction and Creation" and "Patterns of Conflict"
later cited as an "architect" in the success of US "Desert Storm"
the "OODA Loop"
a generalized study of interaction
born out of "Destruction and Creation"
but generalized to a more abstract level
decision-making occurs in a recurring cycle of:
Observe
Orient
Decide
Act
Boyd applied this at the combat operations process
identify the problem/threat
get an overall understanding of environment
key: recognize that the system is complex, and all data is a snapshot in time
reflecting on what has been found during observations
considering what to do next
requires significalnt leve of situational awareness
create mental models or narratives to shape judgment
make suggestions towards an action/response plan
take into account information obtained via orient
consciously select one
carry out the actions and related changes described
act without hesitation, without second thoughts
then move to observe the results of your action, and begin again
an entity (individual or organization) who can process this cycle quickly...
... observing and reacting to events more rapidly than an opponent...
... can get inside the opponent's decision cycle and gain the advantage
... that there is more to the world than algorithms
... that not everything falls into 1s and 0s
... that the Liberal Arts embrace the space between 1 and 0
... and that therefore the Liberal Arts are necessary to software
Who is this guy?
Architect, Engineering Manager/Leader, "force multiplier"
Principal -- Neward & Associates
http://www.newardassociates.com
Educative (http://educative.io) Author
Performance Management for Engineering Managers
Author
Professional F# 2.0 (w/Erickson, et al; Wrox, 2010)
Effective Enterprise Java (Addison-Wesley, 2004)
SSCLI Essentials (w/Stutz, et al; OReilly, 2003)
Server-Based Java Programming (Manning, 2000)