PokerPirate's architecture
PokerPirate's architecture posted on 2011-11-23PokerPirate has two main components: an interface with the Royal Vegas Poker software and the AI. This section describes how these components relate.How...
View ArticleThe artificial intelligence
The artificial intelligence posted on 2011-11-24My AI uses what I like to call the “manual” technique, also known as rule-based artificial intelligence. Basically, a human writes a list of rules that...
View ArticleDownload and run
Download and run posted on 2011-11-25Download the source code here. It is released under the BSD license. If you find it useful or do anything cool with it, I’d appreciate a heads up.Other stuff you’ll...
View ArticleHow to create an unfair coin and prove it with math
How to create an unfair coin and prove it with math posted on 2011-12-03Let’s make some unfair coins by bending them. Our guess is that the concave side will have less area to land on, and so the coin...
View ArticleUsing HMMs in Haskell for Bioinformatics
Using HMMs in Haskell for Bioinformatics posted on 2012-03-22This is a tutorial for how to use Hidden Markov Models (HMMs) in Haskell. We will use the Data.HMM package to find genes in the second...
View ArticleMiscellaneous files about conscientious objectors
Miscellaneous files about conscientious objectors posted on 2012-03-26This is a collection of government files I have collected concerning the conscientious objector (CO) process in the United States....
View ArticleMost conscientious objectors are NOT reservists
Most conscientious objectors are NOT reservists posted on 2012-03-26One common myth about conscientious objectors in the US is that they are reservists who took the government’s money to pay for...
View ArticlePeacejumpers: poem by a WWII co
Peacejumpers: poem by a WWII co posted on 2012-04-18Bruce Phillips believed that killing people in war was wrong. After fighting in Korea, he became a conscientious objector. But he was certainly no...
View ArticleHow we serve 150 free lunches for less than 20 cents each using homebrew...
How we serve 150 free lunches for less than 20 cents each using homebrew equipment posted on 2012-05-05I enjoy brewing beer, and have invested a lot into equipment. But most of this equipment is...
View ArticleWhy I don't stand for the national anthem
Why I don't stand for the national anthem posted on 2012-05-07Daniel 3 tells the story of 3 Jews who refused to worship a statue that King Nebuchadnezer built to symbolize his and Babylon’s power....
View ArticleProject whitecoat
Project whitecoat posted on 2012-05-22Between 1954 and 1973, 522 conscientious objectors volunteered as human test subjects in the US Army’s biological weapons defense program. Conscientious objectors...
View ArticleMy conscientious objector discharge
My conscientious objector discharge posted on 2012-06-28After almost seven years in the navy, I was discharged as a conscientious objector in February 2011. There’s no one thing I can point out as...
View ArticleTestimony: the development of my beliefs
Testimony: the development of my beliefs posted on 2012-06-29In February 2011 I was discharged as a conscientious objector after 7 years in the Navy. Part of the conscientious objector process is an...
View ArticleTestimony: why I'm "pro-peace" and not "anti-war"
Testimony: why I'm "pro-peace" and not "anti-war" posted on 2012-06-30In February 2011 I was discharged as a conscientious objector after 7 years in the Navy. Part of the conscientious objector...
View ArticleTestimony: interpreting the old testament
Testimony: interpreting the old testament posted on 2012-07-02In February 2011 I was discharged as a conscientious objector after 7 years in the Navy. Part of the conscientious objector process is an...
View ArticleTestimony: the Jesus revolution
Testimony: the Jesus revolution posted on 2012-07-03In February 2011 I was discharged as a conscientious objector after 7 years in the Navy. Part of the conscientious objector process is an interview...
View ArticleTestimony: nonviolence and the government
Testimony: nonviolence and the government posted on 2012-07-04In February 2011 I was discharged as a conscientious objector after 7 years in the Navy. Part of the conscientious objector process is an...
View ArticleTestimony: The meaning of salvation
Testimony: The meaning of salvation posted on 2012-07-05In February 2011 I was discharged as a conscientious objector after 7 years in the Navy. Part of the conscientious objector process is an...
View Articleexegesis with humility
exegesis with humility posted on 2012-07-21In Luke 10:2, Jesus says:The harvest is plenty but the workers are few.I’ve heard this verse interpreted by churches as a call to evangelism. There’s a lot of...
View ArticlePacifist Christianity, evil spirits, and humility
Pacifist Christianity, evil spirits, and humility posted on 2012-07-22In Luke 11:24-25, Jesus says:When an evil spirit comes out of a man, it goes through arid places seeking rest and does not find it....
View ArticleRadical Christianity à la Aristotle
Radical Christianity à la Aristotle posted on 2012-10-17I’ve been thinking recently about ways to formalize exactly what makes Christianity different. One way to approach this is through ethics.In the...
View ArticleTalking about Christian Anarchy is hard
Talking about Christian Anarchy is hard posted on 2012-10-28It’s hard because no one ever listens as soon as a conversation turns political. It’s just about waiting for our turn to regurgitate the pros...
View Articlesimple beer ice cream
simple beer ice cream posted on 2012-11-07So last weekend I was making an awesome double IPA. My roommate’s dad owns a hops farm. He had just sent us 2 lbs of cascade. So I figured, I wonder how...
View ArticleA simple method to radicalize your Christianity
A simple method to radicalize your Christianity posted on 2012-11-17Anyone who wants to be first must be the very last, and the servant of all. – Mark 9:35 Being the servant of all is a hard task that...
View ArticleGausian distributions form a monoid
Gausian distributions form a monoid posted on 2012-11-25(And why machine learning experts should care)This is the first in a series of posts about the HLearn library for haskell that I’ve been working...
View ArticleMy 2012 experiments in Christianity
My 2012 experiments in Christianity posted on 2013-01-02We don’t know what God wants, and we wouldn’t know how to do it even if we did. Therefore (as Gandhi put it) we must “experiment with truth.” We...
View ArticleNuclear weapon statistics using monoids, groups, and modules in Haskell
Nuclear weapon statistics using monoids, groups, and modules in Haskell posted on 2013-01-04The Bulletin of the Atomic Scientists tracks the nuclear capabilities of every country. We’re going to use...
View ArticleThe categorical distribution's algebraic structure
The categorical distribution's algebraic structure posted on 2013-01-08The categorical distribution is the main distribution for handling discrete data. I like to think of it as a histogram. For...
View Articlethe parable of the sower
the parable of the sower posted on 2013-01-24In Mark 4, Jesus tells the classic parable of the sower:Listen! Behold, a sower went out to sow. And as he sowed, some seed fell along the path, and the...
View ArticleWhy (and how) I'm refusing to pay war taxes
Why (and how) I'm refusing to pay war taxes posted on 2013-04-15Growing up, I wanted nothing more than to be a naval officer. But then Jesus changed my heart. He’s been teaching me that instead of...
View ArticleMarkov Networks, Monoids, and Futurama
Markov Networks, Monoids, and Futurama posted on 2013-05-09In this post, we’re going to look at how to manipulate multivariate distributions in Haskell’s HLearn library. There are many ways to...
View ArticleTurning an AK-47 into a serving ladle
Turning an AK-47 into a serving ladle posted on 2013-05-13I really like the classic passage from Isaiah 2:4, Nations will beat their swords into plowshares and their spears into pruning hooks. Nation...
View ArticleHLearn cross-validates >400x faster than Weka
HLearn cross-validates >400x faster than Weka posted on 2013-06-03Weka is one of the most popular tools for data analysis. But Weka takes 70 minutes to perform leave-one-out cross-validate using a...
View ArticleHLearn's code is shorter and clearer than Weka's
HLearn's code is shorter and clearer than Weka's posted on 2013-06-11Haskell code is expressive. The HLearn library uses 6 lines of Haskell to define a function for training a Bayesian classifier; the...
View ArticleWhy I did not apply for noncombatant status
Why I did not apply for noncombatant status posted on 2013-06-28Below is the text of a document I prepared when filing for conscientious objector status to leave the navy. I’ve published it at the...
View ArticleThe external wort chiller
The external wort chiller posted on 2013-07-24For $5 at Lowes, I built an “external wort chiller.” I’ve never seen any other homebrewers with this setup, so I figured I’d post my results on the...
View ArticleFunctors and monads for analyzing data
Functors and monads for analyzing data posted on 2013-07-29Functors and monads are powerful design patterns used in Haskell. They give us two cool tricks for analyzing data. First, we can “preprocess”...
View ArticleThe pacifism parallelogram
The pacifism parallelogram posted on 2013-08-20I am a Christian pacifist, but I still have a lot of respect for certain people in the military. This post is about how I resolve this apparent conflict...
View Articlefaith of a mustard seed
faith of a mustard seed posted on 2014-04-02In Matthew 17:20, Jesus says:I tell you the truth, if you have faith as small as a mustard seed, you can say to this mountain, “Move from here to there” and...
View ArticleI got lenses in my Functors
I got lenses in my Functors posted on 2014-06-06The typeparams package provides type lenses. Let’s combine them with Functors. Because why not?! You’ll need to have at least skimmed the linked README...
View Articlelens you an applicative for great haskell?
lens you an applicative for great haskell? posted on 2014-06-09Welcome back for round 2 of adventures in typeparams. In our last episode, we lensified the Functor type class. In this episode, we’re...
View ArticleA neat trick for partially closed type families
A neat trick for partially closed type families posted on 2014-06-10This post covers a pretty neat trick with closed type families. Normal type families are “open” because any file can add new...
View ArticleThe type lens laws
The type lens laws posted on 2014-06-10(or how to promote quickcheck and rewrite rules to the type level)We’ve seen how to use the typeparams library to soup up our Functor and Applicative type...
View Articledo your lenses even do notation?
do your lenses even do notation? posted on 2014-06-11It’s round 5 of typeparams versus GHC. We’ll be extending our Functor and Applicative classes to define a new Monad class. It’s all pretty simple if...
View ArticleTying the type knot gives us theorems for cheap
Tying the type knot gives us theorems for cheap posted on 2014-06-12In today’s adventure, our hero ghc faces its final challenge: granting parametricity to our lensified Functor, Applicative, and Monad...
View ArticleScribal traditions of "ancient" Hebrew scrolls
Scribal traditions of "ancient" Hebrew scrolls posted on 2014-08-10In 2006, I saw the dead sea scrolls in San Diego. The experience changed my life. I realized I knew nothing about ancient Judea, and...
View ArticleGetting started with GitHub, vim, and bash
Getting started with GitHub, vim, and bash posted on 2014-09-07 by Rashid Goshtasbi and Kyler RynearLearning to use git, vim, and bash was hard for us. These tools are so different than the tools we...
View ArticlePolymorphism in Haskell vs C++
Polymorphism in Haskell vs C++ posted on 2014-09-10 by Jonathan DuganParametric polymorphism is when you write one function that works on many data types. In C++, this is pretty confusing, but it’s...
View ArticleComparing AVL Trees in C++ and Haskell
Comparing AVL Trees in C++ and Haskell posted on 2014-09-15 by Dat DoThis post compares the runtimes of AVL tree operations in C++ vs Haskell. In particular, we insert 713,000 strings from a file into...
View ArticleBeginner error messages in C++ vs Haskell
Beginner error messages in C++ vs Haskell posted on 2014-09-17 by Paul StarkeyLearning Haskell was excruciating. The error messages from the Haskell compiler ghc were way more difficult to understand...
View Article