7 McCarthy Papers in 7ish Weeks #5 & #6 - SDFW Tic-Tac-Toe

This holiday edition blog post covers two McCarthy papers instead of just one. We will be talking about Free Will - Even for Robots and the companion paper Simple Deterministic Free Will. In which we deftly sidestep the philosophers We know that computers and programs are completely deterministic. A philosophical question is whether we, as humans are ruled by determinism, (although complex it may be), or not. If we take the decision that humans are deterministic, then we can argue that either there is no free will - or that free will is “compatible” with determinism. Philosophers, of course, could discuss such questions interminably, trying to get a theory to fit for all people and all occasions. Thankfully, McCarthy takes a very admirable and practical view on free will. Let’s try out something simple for a computer program and see how it works. He explores a philosophy “Compatibilist’s” view, which regards a person to have free will if his actions are decided by an internal process, even if this process itself is deterministic. But by exploring this view with computer programs, he makes clear: ...

November 25, 2012 · 5 min · Carin Meier

7 McCarthy Papers in 7ish Weeks - #4

Reading Artificial Intelligence, Logic, and Formalizing Common Sense, led me surprisingly to reflect on, not only logic and philosophy, but also the history and present state of AI. Fist let’s look at the kind of AI that McCarthy is describing in paper. He talks of a program that can use common sense knowledge about the world around it and have this knowledge structured well enough that it can be reasoned about mathematically. In fact, he describes four levels of logic: ...

November 6, 2012 · 4 min · Carin Meier

7 John McCarthy Papers in 7 Weeks #3

In which I realize that John McCarthy is the father of the Semantic Web I have realized that it generally takes me more than a week to read a paper, reflect on it, experiment, and finally blog about it. But, since I made up the rules of the project in the first place, I am not going to dwell on the time frame and just move forward with the next paper. ...

October 15, 2012 · 4 min · Carin Meier

7 John McCarthy Papers in 7 Weeks - #2

Well, life threw me for a bit of a loop and delayed my post on my second paper. So I am going to consider this a “weekish” period of time and just continue on. I read Towards a Mathematical Science of Computation. It is quite a meaty paper and was certainly a lot to digest. Here are some highlights that I gleaned from it. How can a Mathematical Science of Computation help in a practical way? McCarthy points out that while it is hard to predict practical applications ahead of time. A couple of could be ...

September 29, 2012 · 3 min · Carin Meier

7 John McCarthy Papers in 7 weeks – #1 How My Thermostat has Beliefs and Goals

Ascribing Mental Qualities to Machines or How My Thermostat has Beliefs and Goals After reading John McCarthy’s paper this week Ascribing Mental Qualities to Machines, I can honestly say that it has changed the way I think about programs and most certainly thermostats. For you see, I realize now that my thermostat has beliefs and goals. No, it does not have beliefs about what the weather is going to be tomorrow, or when the next George R.R. Martin book is going to come out. But it does have beliefs. It has three of them to be exact: ...

September 20, 2012 · 7 min · Carin Meier

7 John McCarthy Papers in 7 weeks - Prologue

In the spirit of Seven Languages in Seven Weeks, I have decided to embark on a quest. But instead of focusing on expanding my mindset with different programming languages, I am focusing on trying to get into the mindset of John McCarthy, father of LISP and AI, by reading and thinking about seven of his papers. Why? Get out of your box If you are comfortable, you are not challenging yourself to grow. You are doomed to stay in your same mindset and your little box and your world gets smaller. As an Object Oriented programmer, I was happy in my little box. Then one day, I discovered Clojure and Functional Programming and my world became bigger and richer because of it. I hope to glean a similar box expansion, by exploring the thoughts of McCarthy. Especially, since I have the nagging suspicion that we are somehow doing programming “completely wrong.” ...

September 19, 2012 · 2 min · Carin Meier

A Clojure REPL Driven Roomba

One of the things that I love about Clojure is that it can go anywhere that Java can. That is why, when I found out that the Roomba already had a Java library written for it - I was excited to be able to hook it up to my Emacs / Swank and be able to control it from my editor. It is great fun! If you have a Roomba at home and you want to play along… ...

August 9, 2012 · 2 min · Carin Meier

Talking to your Roomba via Bluetooth and RoombaComm

I love Roomba. It cleans our floors and it can be hacked to help teach my kids programming. Win! Here are the setup steps that I used to get going talking to Roomba: Ordered a Rootooth bluetooth connection for Roomba. I could have build one from scratch, but I am a busy mom and hacker. Removed the cover from Roomba to expose the ROI port (Video). Setup the Bluetooth adapter on my Mac ...

August 2, 2012 · 1 min · Carin Meier

Baba Yaga and the Clojure Reducers

Once upon a time, a young girl decided to take a break from her code and stroll in the forest. It was quite a pleasant day, she packed her lunch in her bag and set off. While she was walking, she started thinking about a concurrency bug that her OO project was having. As she pondered the complexities of mutablilty, state, and threads, she must of strayed from the trail and lost track of time. By the time she looked around, she realized that she was totally lost. ...

July 7, 2012 · 6 min · Carin Meier

How to include non clojars/maven clojure version in your lein project

Do you need to have a specific version of Clojure in your leiningen project that you can’t get from Clojars? I ran into this problem when I wanted to run a sample project on Clojure’s reducers - which is not in the current Clojars version of 1.4.0. I needed to use the most recent version, (unreleased), of 1.5.0. These are the steps to get you running. Clone the clojure git repository ...

July 7, 2012 · 1 min · Carin Meier