Category: Computers

Dec 02 2017

Necessity and Sufficiency

Necessity - Sufficient Venn Diagram

Am I sufficient? Am I even necessary? If you’re plagued by these existential questions and have ended up here in your quest for an answer, then I’ve got some bad news for you. The answer to both is no. I keed. I keed. Actually, the bad news is that this post is about necessity and …

Continue reading

Nov 26 2017

NFA and DFA Equivalence Theorem Proof and Example

NFA N

Finite state automata (FSA), also known as finite state machines (FSM), are usually classified as being deterministic (DFA) or non-deterministic (NFA). A deterministic finite state automaton has exactly one transition from every state for each possible input. In other words, whatever state the FSA is in, if it encounters a symbol for which a transition …

Continue reading

Nov 21 2017

Proof of Kleene’s Theorem

In my last post, “Kleene’s Theorem,” I provided some useful background information about strings, regular languages, regular expressions, and finite automata before introducing the eponymously named theorem that has become one of the cornerstones of artificial intelligence and more specifically, natural language processing (NLP).  Kleene’s Theorem tells us that regular expressions and finite state automata …

Continue reading

Nov 17 2017

Kleene’s Theorem

Stephen Kleene

Stephen Cole Kleene was an American mathematician who’s groundbreaking work in the sub-field of logic known as recursion theory laid the groundwork for modern computing.  While most computer programmers might not know his name or the significance of his work regarding computable functions, I am willing to bet that anyone who has ever dealt with …

Continue reading

Nov 09 2017

Not String Theory – String Facts

Strings

As a computer programmer for more than a quarter of century, I don’t think I have ever thought much about strings. I knew the basics. In every language I’d worked with, strings were a data type unto themselves. Superficially they are a sequence of characters, but behind the scenes, computers store and manipulate them as …

Continue reading

Oct 12 2017

Binary Boolean Logic Functions

Boolean functions, sometimes also called switching functions, are functions that take as their input zero or more boolean values (1 or 0, true or false, etc.) and output a single boolean value. The number of inputs to the function is is called the arity of the function and is denoted as k. Every k-ary function …

Continue reading

Sep 21 2017

An Introduction to the RGB Color Model

RGB color model

If you are an artist, photographer, graphic designer, or web developer, having a firm understanding of colors is a necessity.  Key to being able to study and discuss colors is a formal framework for quantizing their properties. Abstract mathematical models called color models do just this, allowing people to discuss the qualities of a color …

Continue reading

Mar 21 2017

Simulating the Insert Key on a MacBook Pro

Apple to Ubuntu

For almost the last 20 years, an Apple laptop of one variety or another has been my main computing device. Imagine my surprise when I finally learned today that Apple keyboards don’t have an Insert key. In almost two decades I have never needed it, but that changed this morning. While working in my favorite …

Continue reading

Feb 15 2017

How to Install SWI-Prolog on Ubuntu 16.10 Yakkety Yak

SWI-Prolog Logo

I know that this post will probably be of interest to about a dozen people worldwide, and even those few may be disappointed by it. Since the official SWI-Prolog packages aren’t often kept up to date and because compiling and installing SWI-Prolog from source should be both quick and straightforward, that is the recommended way …

Continue reading

Feb 09 2017

How to Import an Adobe Color Palette in Inkscape

Inkscape palette menu

GIMP has done such a good job filling the Photoshop-shaped hole in my software arsenal left during my transition from OS X to Ubuntu, that until today I forgot that I sometimes work with vector-based images, and for that I had been using Adobe Illustrator.  The best free, as in both beer and speech, Illustrator …

Continue reading