St. John Chrysostom – Spiteful or Not?

If there is one thing that St. John Chrysostom is known for, other than his eloquent homilies, it’s that he was often hateful in those very homilies. Robert Wilken calls him a “notorious Jew-hater” (Judaism and the Early Christian Mind, p. 1). This, of course, is in reference to his homilies Against the Jews, where he goes on a vicious attack against Jews, calling them, among other insults, “Christ-killers.” On another occasion, too, he preached that we should slap anyone we hear blaspheming God (Homilies on the Statutes, 1.32).

So it may come as a surprise to read this quote:

If we chance to be among heathens, let us thus stop their mouths. Without wrath, without harshness. For if we do it with wrath, it no longer seems to be the boldness (of one who is confident of his cause,) but passion: but if with gentleness, this is boldness indeed. For in one and the same thing success and failure cannot possibly go together. The boldness is a success: the anger is a failure. Therefore, if we are to have boldness, we must be clean from wrath that none may impute our words to that. No matter how just your words may be, when you speak with anger, you ruin all: no matter how boldly you speak, how fairly reprove, or what not. See this man, how free from passion as he discourses to them! For he did not abuse them: he did but remind them of the words of the Prophets. For, to show you that it was not anger, at the very moment he was suffering evil at their hands, he prayed, saying, “Lay not to their charge this sin.” So far was he from speaking these words in anger; no, he spoke in grief and sorrow for their sakes. As indeed this is why it speaks of his appearance, that “they saw his face as it had been the face of an angel,” on purpose that they might believe. Let us then be clean from wrath. The Holy Spirit dwells not where wrath is: cursed is the wrathful. (Homily on Acts 7:35).

Where does the difference come from? I think one possible factor is change in attitude. The Homilies Against the Jews and Homilies on the Statutes are from when John was a priest in Antioch, whereas the homilies on Acts were delivered when he had become Archbishop of Constantinople. Although, St. John does also have anti-Jewish statements in other homilies.

Another, probably more important thing to remember is context. The slapping called for in the Homilies on the Statutes was done in response to a specific issue plaguing Antioch. The homilies insulting the Jews were likewise done in order to prevent Christians from taking part in Jewish festivals, and it was preached at a time where tensions between religious groups (Christian, pagan, and Jewish) were extraordinarily high. As we know from St. Ambrose’s letter to Theodosius, it was common in the 4th century for Jews to burn basilicas and for Christians to burn synagogues. And St. John is engaged in a form of rhetoric common at that time, where the intent was to vilify the enemy as much as possible (called psogos – see Wilken’s book John Chrysostom and the Jews for more). (Yet in another context, he actually describes Jews as allies for helping return him to Constantinople). Presumably in the Acts homily, he is dealing with a crowd whose main problem is anger, which is why he exaggerates the sin of wrath.

Hopefully Jewish-Christian dialogue can move from Against the Jews to more of Homily on Acts 7:35.


St. Augustine, Textual Critic

Below is a passage where St. Augustine is considering the troublesome fact that the words quoted in Matthew 27:10, though attributed by St. Matthew to Jeremiah, are actually from Zechariah. First the passage from Matthew:

Then was fulfilled that which was spoken by Jeremiah the prophet, saying, “And they took the thirty pieces of silver, the price of Him that was valued, whom the children of Israel did value, and gave them for the potter’s field, as the Lord appointed me.”

St. Augustine:

Now, if any one finds a difficulty in the circumstance that this passage is not found in the writings of the prophet Jeremiah, and thinks that damage is thus done to the veracity of the evangelist, let him first take notice of the fact that this ascription of the passage to Jeremiah is not contained in all the codices of the Gospels, and that some of them state simply that it was spoken “by the prophet.” It is possible, therefore, to affirm that those codices deserve rather to be followed which do not contain the name of Jeremiah. For these words were certainly spoken by a prophet, only that prophet was Zechariah. In this way the supposition is, that those codices are faulty which contain the name of Jeremiah, because they ought either to have given the name of Zechariah or to have mentioned no name at all, as is the case with a certain copy, merely stating that it was spoken “by the prophet, saying,” which prophet would assuredly be understood to be Zechariah. However, let others adopt this method of defence, if they are so minded. For my part, I am not satisfied with it; and the reason is, that a majority of codices contain the name of Jeremiah, and that those critics who have studied the Gospel with more than usual care in the Greek copies, report that they have found it stand so in the more ancient Greek exemplars. I look also to this further consideration, namely, that there was no reason why this name should have been added [subsequently to the true text], and a corruption thus created; whereas there was certainly an intelligible reason for erasing the name from so many of the codices. For venturesome inexperience might readily have done that, when perplexed with the problem presented by the fact that this passage could not be found in Jeremiah. (On the Harmony of the Gospels, 3.29)

Very interesting how he applies the modern textual criticism rule known as lectio difficilior potior, which states that the harder reading should be favored when manuscripts differ.

St. Gregory Palamas on the Trinity

I have been reading St. Gregory’s 150 Chapters and I was especially impressed by chapter 37, which follows an explanation of how the Father and Son can be thought of as mind and knowledge, respectively, and the Spirit as the love between the two:

37. Our mind too, since it is created in the image of God, possesses the image of this highest love in the relation of the mind to the knowledge which exists perpetually from it and in it, in that this love is from it and in it and proceeds from it together with the innermost word. The insatiable desire of men for knowledge is a very clear indication of this even for those who are unable to perceive their own innermost being. But in that archetype, in that absolutely and supremely perfect goodness wherein there is no imperfection, leaving aside the being derived from it, the divine love is indistinguishably identical in every way with that goodness. Therefore, this love is the Holy Spirit and another Paraclete and is so called by us, since he accompanies the Word, in order that we may recognize him as perfect in a perfect and proper hypostasis, in no way inferior to the substance of the Father but being indistinguishably identical with both Son and the Father, though not in hypostasis – a fact which indicates to us that he is derived from the Father by way of procession in a divinely fitting manner – and in order that we may revere one true and perfect God in three true and perfect hypostases, certainly not threefold, but simple. For goodness is not something threefold nor a triad of goodness; rather, the supreme goodness is a holy, august and venerable Trinity flowing forth from itself into itself without change and abiding with itself before the ages in divinely fitting manner, being both unbounded and bounded by itself alone, while setting bounds for all things, transcending all things and allowing no beings independent of itself.

A few things to note: Firstly, it’s impressive that here, and elsewhere, St. Gregory sounds like St. Augustine! He uses the mind as an analogy for the Holy Trinity, and emphasizes divine simplicity. Secondly, the translation I used, by Robert E. Sinkewicz, inserts “<name for the>” in between the words “another” and “Paraclete,” so the whole sentence becomes “Therefore, this love is the Holy Spirit and another <name for the> Paraclete and is so called by us…” but this seems like a mistake to me. It seems “another Paraclete” is correct, and not “another name for the Paraclete,” since I think it’s an obvious reference to John 14:16. Further, if we read “another name for the Paraclete,” then St. Gregory is made to say that we are making “love” another name for the Spirit, but that seems to make nonsense of the argument that follows (namely, that calling the Spirit “another Paraclete” proves the Spirit’s equality with the Son, and thereby His divinity). Lastly, what St. Gregory says about how our insatiable desire for knowledge is an indication of the Father’s endless love for the Son, fits pretty well with what David Bentley Hart says here: “the Father knows his own essence perfectly in the mirror of the Logos and rejoices in the Spirit who is the bond of love … in which divine Being and divine Consciousness are perfectly joined. The ecstatic structure of finite consciousness, then, this inextinguishable yearning for truth that weds the mind to the being of all things is simply a manifestation of the metaphysical structure of all reality, and that because all reality reflects the ordo amoris that is the life of God.” While not making exactly the same point, it is interesting how both Palamas and Hart see the “insatiable desire of men for knowledge” (Palamas) or man’s “inextinguishable yearning for truth” (Hart) as an insight into the life of the Trinity.

St. John Chrysostom on Loving Others

Do not tell me that this or that man is a runaway slave, or a robber or thief, or laden with countless faults, or that he is a beggar and hopeless, or of low value and worthy of no account; but consider that for his sake Christ died … Consider what sort of person he must be, whom Christ valued at so high a price as not to have spared even his own blood.

– St. John Chrysostom, Homily Concerning Lowliness of Mind, 5

Finding the Shortest Path between the Parking Lots in a Park with Graph Theory

1. Introduction

This is a math project I did in high school. My aim was to use the knowledge of graph theory to find the shortest path (along the walking trails) between the two parking lots in Point Pleasant Park (a small park in Eastern Canada). Graph theory is just as fascinating now as it was when I did this, above all because of its obvious real-world applications. Probably the most insightful part of this project is when I explain why Dijkstra’s algorithm works, under “Iteration 2”.

2. Exploring Basic Graph Theory

Informally, a graph can simply be thought of as a structure of points connected to each other by lines. An example to clarify:
Figure 1. An example of a graph.
This shows a graph, with four ‘points’ (A, B, C, D) connected to one another by ‘lines’ (AB, AC, AD, CD). In graph theory terminology, these points are referred to as vertices, and the lines that connect them are called edges. Two vertices are called adjacent if they are connected directly by an edge (Caldwell, 1995); for instance, A and B in the above graph are adjacent, for they are connected by edge AB.

Due to their focus on connections, graphs are often used to represent and study connections between real-life objects. For instance, graphs are used to study the connections in transportation networks. Here, the graph’s vertices represent places of interest (e.g., towns or cities) and its edges represents links – such as roads or railways – between these places (Marr, n.d.).

A path is simply a ‘journey’ around a graph, where one travels from vertex to vertex. For example, consider a journey around the graph above, where someone starts at A, then goes to D (by traveling along edge AD), and then goes to C (along edge CD). This is path ADC. Also, in a path, no edge can be traveled along, and no vertex can be visited, more than once.

Weighted Graphs
A special kind of graph, known as weighted graphs, have numbers (called weights) associated with each edge. Weights can represent a cost to travel along an edge, or a distance. As an example of a weight, in the weighted graph shown below, edge AB has a weight of 5.
Figure 2. An example of a weighted graph.
The weight of a path on a weighted graph equals the sum of the weights of the edges travelled along in the path (Zhang, n.d.). For example, the weight of path ADC in the above graph is 6 + 2 = 8 (i.e., the sum of the weights of edges AD and CD).

3. Application: Modeling Point Pleasant Park as a Graph

Now that we know what graphs and paths are, we can now model Point Pleasant Park as a graph, to help us in finding the shortest path (distance-wise), along the walking trails, between the two parking lots. Google Maps (2014) shows Point Pleasant Park and its trails below. Two red points have been added to show the starting parking lot (A) and the destination parking lot (Z).
Figure 3. A map of Point Pleasant Park, with starting and ending positions marked.
One may notice I cut off some of the map at the bottom. I deliberately did so because the trails in the lower end of the park would obviously not be a part of the shortest path between the parking lots, which are in the upper end.

Once I finished preparing the map, I was initially confused about how to make a graph out of it. I was unsure of what the vertices should be. Ultimately I realized I could make each intersection a vertex. I started by making a vertex wherever two (or more) trails met. I then deleted any ‘insignificant’ vertices, such as a vertex where multiple trails met but only one of the trails could be a part of the shortest path. For example:
Figure 4. An example of an insignificant vertex, D.
In this case, I deleted vertex D because, although there is an intersection, only one of the trails, Cambridge Drive, could be part of the shortest path – the other leads away from the destination! This makes it easier to solve the problem, by making the graph simpler and nicer to work with.

After the vertices, I added edges. I connected the vertices using edges in the same way that the intersections (that the vertices represent on the map) were connected by segments of trails. In other words, each edge represents a segment of trail that is between two intersections. Trails leading to dead-ends, or away from the destination, were not added as edges. For instance:
Figure 5. A part of the map (left) modelled as a graph (right). As one can see, certain trails were not included.
After making the first version of the graph, I added weights. Each weight represents the length (in meters) of each stretch of trail that was represented by an edge. I obtained these values using Google Maps’ Directions feature. I then simplified further. I looked at any two vertices which had two edges connecting them, and deleted the edge with greater weight. For example, in the instance below, I deleted the edge with weight 130 because it is obvious that this could never be a part of the shortest path – you would always select the edge with weight 83 instead.
Figure 6. The edge with weight 130 is extraneous and so deleted.
Finally, I deleted all vertices whose sole purpose was to ‘connect’ exactly two edges. For example, vertex G in figure 5 can be deleted. The two edges BG and GH are consolidated into one edge BH whose weight equals the sum of the weights of BG and GH. This unfortunately makes the graph look less like the map, but reducing the number of vertices does make the problem easier to solve. Doing this gave me the final version of the graph:

Figure 7. The relevant section of Point Pleasant Park, modelled as a graph.

4. Finding the Shortest Path: Dijkstra’s Algorithm

With the basic knowledge of graph theory, and the graph of Point Pleasant Park, we can learn about Dijkstra’s algorithm and then find the shortest path between the parking lots.

The Purpose of Dijkstra’s Algorithm
Dijkstra’s algorithm lets us solve the shortest path problem. That is, it basically finds the path of minimum weight between two vertices in a weighted graph. The shortest path problem can be solved for very small graphs by finding all paths between the two vertices, but for larger graphs where there are many paths between two vertices, this method would be very inefficient. Dijkstra’s algorithm provides a more systematic way of solving the shortest path problem.

Other Algorithms
Dijkstra’s algorithm is not the only algorithm that can solve the shortest path problem. Another popular algorithm is the Bellman-Ford algorithm. Both have advantages and disadvantages. Dijkstra’s algorithm is simpler and faster, but the Bellman-Ford algorithm can work with negative-weight edges, unlike Dijkstra’s algorithm (MIT OpenCourseWare, 2013). Sometimes negative-edge weights are applicable (e.g., if weights represent monetary costs, a negative weight may represent a gain of money). However, in our park model, all weights are positive (our weights represent distances, which must be positive), so, Dijkstra’s algorithm was chosen.

The Basic Idea of Dijkstra’s Algorithm
Dijkstra’s algorithm involves labeling and boxing vertices around a graph. A vertex that is labeled has been labeled with the weight of some path (not necessarily the shortest) between it and the starting vertex. But once we have determined that this path is in fact the shortest path between the labeled vertex and the starting vertex, we draw a box around the vertex and its label. Therefore, once we box the destination vertex, the algorithm is effectively over.

The Procedure of Dijkstra’s Algorithm
Label the starting vertex with ‘0’ and box it. Then repeat the following two steps until the destination vertex has been boxed. Each repetition of the steps is called an iteration.

Step 1. Consider all the unboxed vertices adjacent to the vertex which has most recently been boxed. Some of these adjacent vertices may already have labels; some may not. Nonetheless, there is a ‘potential label’ for each. The ‘potential label’ equals the weight of the shortest path between the starting vertex and the latest boxed vertex (i.e., the boxed vertex’s label) plus the weight of the edge between the latest boxed vertex and the adjacent vertex being considered.

Step 2. After completing the first step, identify the labeled and unboxed vertex with the smallest label, and box it. Because this vertex (call it Q) has the smallest unboxed label, it means that we know the weight of the shortest path between the starting vertex and Q – this weight is Q’s label. Now repeat the first step, considering the vertices adjacent to Q.
Dijkstra’s algorithm only discovers the weight of the shortest path to each boxed vertex. But, we can easily discover the shortest path itself by ‘backtracking’. To help do this, when we add/update a vertex’s label, we mark on the label which boxed vertex the label came from.

Example Problem
A fairly simple example will consolidate our knowledge of Dijkstra’s algorithm. For the graph below, we will try to find the shortest path between vertices A and D using Dijkstra’s algorithm.
Figure 8. A weighted graph to which Dijkstra’s algorithm will be applied.
The starting vertex, A, has already been labeled with 0 and boxed. We may now begin completing iterations of the steps until we box vertex D, the destination vertex.

Iteration 1. Consider B and C, the unboxed vertices adjacent to the most recently boxed vertex, A. Because they have no labels, we will assign to both their potential label. The label of B equals label of A + weight of edge AB = 0 + 7 = 7. Using the same process, the label of C is 10. We then move onto step 2: identify the unboxed vertex with the smallest label and box it. This is vertex B. We note on each vertex’s label which boxed vertex the label came from (vertex A).
Figure 9. The result of Iteration 1.
Iteration 2. Consider C, D, and E, the unboxed vertices adjacent to B, the most recently boxed vertex. The potential label for C = 7 + 6 = 13. Likewise, the potential labels for D and E are calculated to be 19 and 11, respectively. As 13 is greater than 10, the label of C remains the same. But the other vertices are assigned their potential labels, since they do not yet have labels. For step 2, C is boxed, as it has the smallest unboxed label. Recall that Dijkstra’s algorithm claims that, for the vertex with the smallest unboxed label, its label equals the weight of the shortest path between it and the starting vertex (here, the weight/label is 10). Let us now consider why this claim is true, and, thus, why Dijkstra’s algorithm works. We know that path AC is the shortest path between A and C which consists only of boxed vertices, because in step 1 we consider the paths which only consist of boxed vertices (in this case, AC and ABC), and choose the shortest one (when we let C’s label remain the same, we were choosing AC as the shortest path). But how do we know that there is not a shorter path, which goes through an unboxed vertex, such as E? We know because their labels are larger than C’s (we boxed C because it has the smallest label), i.e., the paths from A to the unboxed vertices are longer than path AC. And since there are no negative-weight edges (Dijkstra’s algorithm stipulates this), there is no way for these paths to decrease their weight before reaching C. Therefore, we have shown there is no path between A and C shorter than AC, and we have explained why the claim is true.
Figure 10. The result of Iteration 2.
Iteration 3. Continuing the steps, D and E (the unboxed vertices adjacent to C) have potential labels calculated: 15 for D, and 14 for E. Because 15 is less than 19 (the current label of D), D has its current label replaced by its potential label. However, because 14 is greater than 11, the label of E remains the same. Vertex E has the smallest unboxed label and is thus boxed.
Figure 11. The result of Iteration 3.
Iteration 4. Continuing the steps, D has its label changed to 13 (its potential label from E). It is the smallest unboxed label, so it is boxed.
Figure 12. The result of Iteration 4.
The destination vertex has been boxed, so the algorithm is complete. We are not technically finished, as we have not actually determined the shortest path. This can be done by backtracking. We already know the last vertex in the shortest path (it is the destination vertex, D). To find the second-last vertex in the path, look at the vertex which is on the label of D – this is E. To find the third-last vertex, look at the vertex which is on the label of the second-last vertex, E. This is B. Then look at the vertex on B’s label; this is A. A is the starting vertex, so we are done. The shortest path between A and D in the example is determined to be ABED.

5. Application: Solving the Shortest Path Problem with Dijkstra’s Algorithm

We are now in a position to apply Dijkstra’s algorithm to our graph of Point Pleasant Park (see figure 7) in order to solve our shortest path problem. Remember, the goal is to find the shortest path between the two parking lots (vertices A and Z).
Because it would be impractical to show a diagram for each iteration of Dijkstra’s algorithm, I will simply represent the results of the algorithm as a table.
Figure 13. Results of Dijkstra’s algorithm applied to the Point Pleasant Park graph.
Once the destination vertex (Z) is boxed, the algorithm is over. We have determined that the shortest path from A to Z has weight 963, meaning that the shortest path between the two parking lots is 963m long. But we want to find the shortest path itself. Applying the process of backtracking described above, the shortest path is found to be ABCDIKLMWZ. In terms of the actual park trails, the path is:

Figure 14. The shortest path between the two parking lots.


Caldwell, C. (1995). Graph theory glossary. Retrieved from…

Google Maps. (2014). [Point Pleasant Park, Halifax, Nova Scotia] [Street map]. Retrieved from…

Marr, P. (n.d.). Transportation systems as networks [PDF document]. Retrieved from…

MIT OpenCourseWare. (2013, January 14). Single-source shortest paths problem [Video file]. Retrieved from…

Zhang, H. (n.d.). Weighted graph algorithms [PDF document]. Retrieved from…

The Time Machine, by H.G. Wells

I remember reading The Time Machine back in junior high, but I recently found it while looking for a copy of another book, and I decided to re-read it.


The novel begins with our protagonist, called simply the Time Traveller, in his parlor “expounding a recondite matter” (p. 3) to some of his friends. He explains, “‘There are really four dimensions, three which we call the three planes of Space, and a fourth, Time'” (p. 4). He is immediately met with the objection of why, if time is no different a dimension from space, we cannot move in time the way we can in space. He replies that we in fact can, and shows them a miniature time machine he has constructed. He sets it off, which disappears and he claims it has moved through time. Of course, this is met with skepticism.

The next Thursday, his guests are again at his home, awaiting the Time Traveller’s arrival for dinner. He is late, and when he finally arrives he is in a horrible condition: “His coat was dusty and dirty, and smeared with green down the sleeves; his hair disordered, and as it seemed to me greyer – either with dust and dirt or because its colour had actually faded. His face was ghastly pale; his chin had a brown cut on it – a cut half healed; his expression was haggard and drawn, as by intense suffering” (p. 13). After eating, he sits down and tells his guests about his journey into the future. Up to this point, the novel was narrated by the guest, but now it essentially becomes a first-person narrative from the Time Traveller’s perspective.

The Time Traveller reaches the year A.D. 802701, and is surprised when it appears that the only creatures are a small, gentle, child-like race known as the Eloi that spend most of the day in robes and playing with each other. However, his next day in the future, he discovers that his time machine is no longer where he left it. In the next few days, he realizes that there is an underground race, which look more like monkeys than men, which produce the products for the Eloi. However, he also realized that the underground race, known as the Morlocks, hunt the Eloi in the night for food. In an adventurous final two nights in the year 802701, he finally manages to access his Time Machine (which was taken and stored by the Morlocks) and eventually manages to travel home.


A major theme running through The Time Machine is that things are never so simple as they first appear. This begins with the Time Traveller’s remarks in the beginning of the book that, although time seems totally different from height, width, and depth, it is in fact just as much a dimension as they are. It also apparent when he travels in the future. He at first thinks that the Eloi are the only race, and that they are the product of humanity reaching a perfect state of security: without danger, their minds devolved: “‘Very simple was my explanation, and plausible enough – as most wrong theories are!'” (p. 33). When he then thinks up another theory to explain the Morlocks, he remarks “‘It was an obvious conclusion, but it was absolutely wrong'” (p. 40). This comes out especially right after the climax:

‘About eight or nine in the morning I came to the same seat of yellow metal from which I had viewed the world upon the evening of my arrival. I thought of my hasty conclusions upon that evening and could not refrain from laughing bitterly at my confidence. Here was the same beautiful scene, the same abundant foliage, the same splendid palaces and magnificent ruins, the same silver river running between its fertile banks. The gay robes of the beautiful people moved hither and thither among the trees … I understood now what all the beauty of the Upperworld people covered.’ (p.78).

Another related point seen throughout the novel is the astonishing power of time to transform. Not only is time like the other dimensions, in some ways it’s more powerful than they are. The Time Traveller frequently speaks of the year 802701 as if it were a totally different planet than Earth. Wells is excellent at describing environments and making the reader feel like they are experiencing them. This comes out in the end of the book, where the Time Traveller travels millions of years into the future before finally returning back home:

‘The darkness grew apace; a cold wind began to blow in freshening gusts from the east, and the showering white flakes in the air increased in number. From the edge of the sea came a ripple and whisper. Beyond these lifeless sounds the world was silent. Silent? It would be hard to convey the stillness of it. All the sounds of man, the bleating of sheep, the cries of birds, the hum of insects, the stir that makes the background of our lives – all that was over. As the darkness thickened, the eddying flakes grew more abundant, dancing before my eyes; and the cold of the air more intense. At last, one by one, swiftly, one after the other, the white peaks of the distant hills vanished into blackness. The breeze rose to a moaning wind. I saw the black central shadow of the eclipse sweeping towards me. In another moment the pale stars alone were visible. All else was rayless obscurity. The sky was absolutely black.’ (p. 85).

This helps what I think was Wells’s desire in writing the book: for it to act as a prophecy about what changes now would mean for the future fate of mankind. Though it is not obvious at first, what seem like small changes now carried out over vast lengths of time have grave consequences. Specifically, the Time Traveller remarks that the division between the Eloi and Morlocks first began when the upper-class began exploiting and moving further and further away from the lower-class, which eventually led to their total separation – one above ground, the other below – and evolution then took its course.

In conclusion, Wells was a pioneer of science fiction, and here he uses it very well for what would later become a common use of the genre: prophecy. Although his application of the theory of evolution to this end is a bit much, the fact remains that The Time Machine is an extremely engaging and well-written novel.

Novel quotes are taken from the 2007 Penguin Red Classic edition of The Time Machine.

“Without a Word from Us”

I’ve noticed a type of rhetorical device where the speaker claims to be simply drawing a conclusion from premises that other people have given. The first example is from Cicero’s book Academica, which takes the form of a dialogue between a skeptic and a Stoic. In the section quoted, a skeptic is speaking. The second example is from St. Augustine’s book the City of God, where he summarizes his criticism of Roman and Greek shows about the gods, which portrayed the gods doing evil things. Romans allowed the shows and worshipped the gods they portrayed, but treated the actors of the shows poorly. Greeks also allowed the shows, but treated the actors honorably.

In this way, without a word from us, but with one principle from Epicurus and one principle from you [Lucullus, a Stoic], perception with the senses and certainty are eliminated. What is Epicurus’ principle? If any presentation to the senses is false, nothing can be known. And yours? There are false presentation to the senses. What follows? Even if I should keep silent the argument itself declares that nothing can be known.” – Cicero, Academica, 2.101 [I changed some of the terminology to make it easier to understand]

And the whole of this discussion may be summed up in the following syllogism. The Greeks give us the major premise: If such gods are to be worshipped, then certainly such men may be honored. The Romans add the minor: But such men must by no means be honoured. The Christians draw the conclusion: Therefore such gods must by no means be worshipped.” – St. Augustine, City of God, 2.13

St. Augustine definitely knew about Cicero: he was actually put on his life journey to seek wisdom after reading one of Cicero’s books, the Hortensius. And we know that he also read the Academica because he cites it later on in the City of God. So I wonder if he learned this clever piece of rhetoric from it. I would also like to find other examples of this!