Why logic?

Why can I not help but like logic?

Because in it, I found something unbreakable. Something in which I could rest easy knowing that my knowledge of it would never fall away. In it, I caught the first glimpse of the eternal Truth. This is not surprising, because logic follows from His nature.

As the nature of the Trinity undergirds, unbreakably, all that is, the study of the science of logic, where it is identified as having some intimate and immediate relation to the trinitary nature of God, can be considered a divine science. Even in those instances where no such supposition is consciously made by the student, logical knowledge retains its divine character. You will be hard-pressed to find a sincere student of logic who is not sometimes brought out of himself in a kind of ecstasy, by obtaining a glimpse of something Beautiful and Eternal in whatever discovery he has just made.

We must be careful though, not to confuse the image with the object, or the sound with its source. In doing so, we fall prey to the suspicions of the positivists. Logic becomes divorced from the real. We only manipulate artificial symbols. They mean nothing, and their relations mean nothing.

Let us then behold logic for what it is, and from Whence it comes.

Ruminating as a style of learning

I learn things like a goat eats grass.

The goat vigorously pulls on the grass, chews it for all of a few seconds, eats it, and throws it back up.

It then eats it again, let’s it ferment for a while in its gut, and, assuming everything is working properly, it comes out the other end.

This is the ruminant style of learning.

This style of learning can be contrasted with the more common monogastric style of learning.

A good example would be a mouse eating grain.

The mouse methodically enters the larder, consumes grain, and deposits its fruits on the way out, and again on the way back in.

Slowly, methodically, the mouse consumes the mountain of grain.

It is contrary to the natural law to disallow the use of general purpose computers

I think that people, in general, ought to be able to use general purpose computers. In fact, I think it would be a grave moral evil to disallow people to use them, in most circumstances.

Why should one believe something like this?

First, assume that God exists and Aristotelian-Thomist metaphysics is true. It follows from this that the natural law exists. I’m not going to justify these assumptions. That isn’t the purpose of this post.

Second, assume that people are morally obligated to know things, and to further their knowledge of things. Why should you believe this? There are various ways of motivating this belief. One way would be to say that ignorance is a privation, privations are bad, and so, the less ignorant we are, the less bad we are, i.e., the more we know, the more perfect we become. So, knowing things is good, and knowing more things is better.

Third, assume that a general purpose computer is functionally equivalent to a man following a set of rules that allows him to further his knowledge by use of the rules, i.e. a general purpose computer isn’t doing anything above or beyond what a man is doing when he’s writing a proof.

Finally, assume that it’s not the case that it would be contrary to the natural law to disallow people the use of general purpose computers. But if this was the case, then it wouldn’t be contrary to the natural law to disallow people to follow rules that allow them to further their knowledge by use of the rules, but then it wouldn’t be contrary to the natural law to disallow people to write proofs, but then it wouldn’t be contrary to the natural law to keep people from eliminating their ignorance, but then it wouldn’t be contrary to the natural law to inhibit people’s moral perfection, but God wills people to be morally perfected, and so, it’s contrary to the natural law to disallow people the use of general purpose computers.

One direct consequence of this, in conjunction with the assumption that it is pleasing to God for some things to be kept in confidence, is that we are morally obligated to use, and allow the ability to use, encrypted means of communication, in those circumstances that justify it.

Stuff that wasn’t completely obvious to me while I learned Haskell pt 0.01

  1. There are no nullary functions in Haskell. There are nullary functions in the untyped lambda calculus, but Haskell is based off a (the?) typed lambda calculus, and so, not everything is a function.
  2. The way you read types is, the thing after the last ” -> ” is the output, and everything preceding it is (are) input(s). “[String] -> [String]” is read as “a function that takes as inputs lists of strings and outputs lists of strings”. “[String] -> Int -> [String]” is read as “a function that takes as inputs a list of strings, and an Int, and outputs a list of strings “. “[String] -> ([String] -> Int) -> String” is read as “a function that takes as inputs, a list of strings, and, a function from a list of strings to Ints, and outputs a string”.
  3. With filter, it takes as inputs functions and lists, and outputs lists. But the functions must be functions from concrete types, to bools. They’re predicates, like “is red” or “is greater than 50 million” or “has as a factor the number 5”. There aren’t many of these around in the standard prelude. But you don’t want to have to define an entire function for what’s likely to be the one thing you’re trying to filter for, so you use a lambda abstraction, filter (\x -> x > 2) xs, or an operator section, filter (>100) xs.
  4. Currying combined with Polymorphic Types can be surprising. Don’t get caught off guard when learning a function, which has type ” [a] -> [a] “, and the resource you’re using only uses examples where the ” a ” in ” [a] ” is something like ‘Int’ or ‘String’…it can be anything, including functions themselves…i.e. it could operate on a list of functions, and return a list of functions. Currying makes for even more surprises when, in defining a new function using that old one, someone curries the first argument…then you’re left with a list of functions. I \*think\* that lazy evaluation makes this possible, but I can’t be sure.

Full-Proof Guide to Managing Your Passwords

This guide is meant to show you how to keep people who aren’t you out of places they shouldn’t be. We do this using three things: a cloud storage service, keepassx, and your brain.

Why would you want this? Well, to be as secure as you can be, you need to have pretty random usernames and passwords, that are distinct, across all of your devices and accounts. Memorizing all of this is nigh impossible. This take the trouble out. You’ll only need to memorize one thing, a method, that you come up with. That’s all!

  1. First, sign up for a cloud storage service. I use dropbox. But google drive would be ok too. The critical factor is that the service offer an easy way of updating the files across all your devices as they change.
  2. Second, download keepassx.
  3. Keepassx is fairly easy to figure out how to use. You may want to wait until step 4 before proceeding.
  4. Method. The method is pretty simple. You have 4 or 5 passwords that you memorize. They’re going to consist of sentences consisting of uncommon words. The sentences will be long. In addition, you’re going to have a method for updating them that is easy to remember. Here’s an example.

First password to decrypt your hard disk: platters spinning will not stop thieves in the month of mary in the age of two by ten and one and five Second password for sudo/root: elephants stomping will not stop thieves in the month of mary in the age of two by ten and one and five etc.

When the new month approaches and you update, you just change the end…the trick is coming up with unique identifiers for the month, and an easy to remember, but not totally trivial way of expressing the date. The most important thing is never to tell anyone your method!

So, you have one password for your cloud service, one password to decrypt the keepass file, another for sudo/root password, and another to decrypt your disk. The rest of your passwords can be generated using keepassx!

Make sure that dropbox or google drive or wherever you keep your keepass file starts at startup, or discipline yourself to always start it up before accessing your keepass file. The reason this is so is…keepassx generates a read only lock on the file while its being used, so when you update it, there’s only ever one thing being updated. If you didn’t do this, and you updated your file with a new account, none of your other devices would know about it. If you then went on another device and updated the file again, then you’d have two irreconcilable files you’d have to merge by hand. No fun!

How to change default text editor from Geany to emacs-nox on Crunchbang (Debian) Jessie (Testing)


You do not use geany. You use emacs, in the terminal. But you also use crunchbang. You are also strange, and even though you don’t often use the file manager that ships with crunchbang, Thunar, when you do, it always opens stuff in Geany, and you want it to open in emacs. In addition, when you want to edit the config files for Openbox or Conky, they all open in Geany. In addition, when you type Super+e, you get geany, instead of emacs. We shall fix all of these things.


Be sure to have emacs-nox installed. This will only install the CLI version of emacs. The windowed version and all it’s dependencies won’t be downloaded. If you have the normal version of emacs installed instead of emacs-nox, whenever you see ’emacs’ you will have to use ’emacs -nw’. I will alert you the first few times.

sudo apt-get install emacs24-nox

Reassigning keyboard shortcut for Super+e from geany to emacs

1. Open up terminal and type:

emacs ~/.config/openbox/rc.xml

2. Search for the evil geany:

C+s geany Enter

3. Replace that with the following and save:

terminator -x emacs

C+x C+s

4. Reload the config files for openbox’s rc.xml:

M+! killall -USR2 openbox Enter

5. Go wild pressing Super+e spawning terminator’s running emacs.

Updating the Crunchbang Menu Entries to open .config files in emacs-nox instead of geany

1.  If you’re still in emacs do:

C+x C+f ~/.config/openbox/menu.xml Enter

2. Now that we’ve got the menu config file open, we need to find and replace all instances of

<item label=”Edit menu.xml”>
<action name=”Execute”>
geany ~/blahblahblah


terminator –command=”emacs ~/.config/openbox/menu.xml”

So whenever you see menu.xml wanting to edit a config file, and it’s doing the geany crap, replace it with the preceding. Make sure to get the file paths correct for each of the entries.

3. Now that all the config files will be opening with emacs, we need to replace the Text Editor entry in the default menu.

Go to the top of the file:


Search for the offending string:

C+s Text Editor Return




<command>terminator –command=”emacs”</command>

5. Finally, let’s update the Accessories -> Geany Text Editor with something more appropriate.

5.1 Go back to the top of the file.
5.2 Search for “Geany Text Editor”
5.3 Replace that with “Emacs Text Editor”
5.4 Immediately below that, replace:



terminator –command=”emacs”

5.5 Reconfigure the openbox .config files again.
5.6 Rejoice

Make thunar open emacs instead of geany

1. If you’re still in emacs, open (create) the file at the following location:


2. Put the following in it and save it:

[Desktop Entry]
Comment=Edit text files
Exec=terminator -x emacs %F

3. Open ~/.local/share/applications/defaults.list

4. Replace every offending instance of geany.desktop with emacs.desktop and save the file.

5. Logout and log back in for good measure.

6. Text files should default to emacs. If they don’t automatically, right click the file, and click Open With Other Application. Search for emacs-nox in your seemingly randomly assorted list of Other Applications. Click it, and make sure Use as default for this kind of file is checked, and Open the file.

7. Rejoice.

Should we complain? If so, when?


I had originally wanted to complain about something, but then, in the midst of thinking about why whatever it was that I thought stank stank, the thought came to me that maybe I shouldn’t spend my time complaining. Why?

The idea was that complaining, in-and-of-itself, doesn’t do anything. The complaints don’t fix the issue at hand. And further, (I acknowledge that this is anecdotal), none (almost none) of the complaints that I’d been exposed to in the past had motivated me to act to resolve whatever it was the complainer was complaining about.

After thinking about it for a little longer, I realized that I had been acting on a few presuppositions about complaints and their ends, and tried to work out where they led. I think I got somewhere. That somewhere is the purpose of this post. But first, let’s give a definition for complaints.

  • A complaint is an utterance made public that expresses disapproval or dislike with some state of affairs.

I think that this is a good definition. Let’s proceed.

1. Should we complain?

The short answer to that is, sometimes. Not always, but not never. There are conditions that can, and should, be met for a complaint to live among the rest of us.

1.1 Not never complain.

First, let’s show why it’s false that we shouldn’t ever complain. Doing so is fairly trivial. Imagine someone does something terrible (yes, I’m presupposing that there are legitimate norms for behavior). Let’s avoid the gray cases and think of something really bad. Rape. Or murder. I’m going to assume that rape and murder are wrong. They’re bad. People should not rape or murder others. I’m taking the moral wrongness of rape and murder for granted. Further, I’m taking for granted that people have obligations to act one way or the other. I’m not going to argue for why these assumptions are reasonable because that would take too long (and I think that if you have serious qualms with taking these sorts of things for granted you’ve got bigger ontological/ethical fish to fry first).

Suppose that you are made aware that person A has raped person B. You see the act. Further, person A gets away with it. They go about their day. For whatever reason, person B can’t, or won’t, disclose the rape to those with a monopoly on force, for whatever reason. In this case, I think that one ought to make a complaint. They ought to say, publicly, something of the sort “Someone was raped, and that is wrong, and I don’t like it.”

You agree? Yes? Good. So, there’s at least one case in which someone ought to complain, and so, it then follows that it’s false that we shouldn’t ever complain. (As an aside, I was trying to figure out what this was equivalent to, and it led to another blog post. Edit incoming.)

1.2 Not always complain.

But, I don’t think that we always ought to complain. Two cases.

First case:

Let’s go back to the rape. Suppose that person A has threatened to kill person B if the rape of person B is ever made public, and that further, person A has the means to follow through with their threat. Further, you’re aware of all of this. You’re aware of the rape, and you’re also aware of the threat to murder person B if any complaints about it are made. Should you complain? On the face of it, the rape is evil, and it warrants a complaint, but any good that might come from the complaint would be erased by the murder of person B.

At this point in time, you shouldn’t complain, because you don’t want person B to die. But if it ever becomes the case that the complaint can be made and person B can be reasonably sure of not facing death at the hands of person A, then you’re obligated to complain again.

So, you shouldn’t always complain. But in case you’re not convinced, here’s the second case:

Person A has murdered person B, a complaint is made, and they are imprisoned. Assume that the terms of their imprisonment aren’t unreasonable. They are given a clean cell, the ability to socialize with other people, read, eat, and be well. They aren’t the object of undue harm while imprisoned. But person A makes public that “I don’t like being imprisoned and I want you to know about it.”

Should they complain about the terms of their imprisonment? Are they obligated to complain? I don’t think so. In the context of a system of laws and government where people are given “rights” to speak and think what they want to speak and think, they very well may have the right to say or think whatever it is they want to think or say. But that’s not really relevant.

The concern is whether they ought to complain, or whether they oughtn’t. They can certainly complain about morally neutral things like the quality of their food, or that they prefer vanilla over chocolate, or other things of that sort, but when justice is meted out, rightly, no obligation to complain about it exists. In fact, I’m tempted to say that they are obligated not to complain. If justice and the penal system aren’t meant to be a farce (though they very well may be, in practice), then whatever punishment the person is given is meant to be given as a source of betterment for the person. The punishment is meant to correct them (because they really do need to be corrected), and so, complaining about this good thing, i.e. justice, would be to act contrary to their best interests (i.e. not being a person that rapes and murders people).

2. Sometimes complain, but when?

So, people shouldn’t always complain. But they also shouldn’t never complain. So, when, exactly should they complain?

2.1 Only complain if a), b), and c)

What we’ve gotten thus far is that people should complain when a) something unjust has occurred, and b) their complaining won’t bring about some greater injustice. This isn’t enough though. If it were, considering how much bad crap there is going on, and how most complaints don’t bring about some greater injustice, people would be compelled to complain a lot of the time. They’d probably be obligated to complain for most of their waking lives. How do we fix this?

  • c) the person has a reasonable belief that their complaint has will make things better, somehow.

This is a good condition, I think. Complaints to oneself are out of the question, because the person at hand is already convinced that what’s wrong really is wrong, so, they’re aware and they’re already convinced. Further, when their among other people, they have to make a decision that takes into account a) how good they are at persuading people in general, b) how likely it is that the ears of those around aren’t totally deaf or hard-hearted to the concern at hand, and c) whether they think it’s reasonable to think that their complaint might make things worse.



1. Assume justice, goodness, norms, and obligations exist.

2. There are cases in which people should complain.

3. There are cases in which people shouldn’t complain.

4. Conclusion: You can complain! And should! Sometimes!

Litmus test for whether you ought to complain:

1. Is the situation at hand unjust?

2. Do you have a reasonable belief that the hearts and ears of those around you will be receptive to your complaint?

3. Do you have a reasonable belief that you in particular are capable of moving them (however little) to act?

4. Do you have a reasonable belief that your complaint won’t make things worse?

If the answer was yes to the preceding, then complain away. If not, shut’cher mouth, whiner.

Mario J. Hesles