Skip to content

Instantly share code, notes, and snippets.

@johnjosephhorton
johnjosephhorton / ggplot2_and_sql_example.py
Created May 3, 2024 12:53
Demonstrate using ggplot2 and SQL together
"""
This gives some examples of how to use SQL and ggplot2 together in the Results class.
Note that rather than call LLMs, we are created an agent with a direct-answering capability.
After we create the agent, we create a `Results` object.
"""
import random
from edsl import QuestionNumerical, QuestionFreeText
from edsl import Agent
@johnjosephhorton
johnjosephhorton / dialog.txt
Created April 13, 2024 12:24
Creating a simple dialog between two agents
(venv) john@Johns-MacBook-Air agent_dialog % python -i AgentDialog.py
John: Hello Robin, I was thinking about going hiking today. Are you interested in joining me?
Robin: Hello John, hiking sounds like a great idea! I was actually hoping to go biking today, but a hike could be a nice compromise. Where were you thinking of hiking?
John: That's great to hear, Robin! I was thinking of hitting the trails at the Green Mountain Forest. There are some fantastic views and the terrain is just right for a good day's hike. How does that sound to you?
Robin: Green Mountain Forest sounds wonderful, John! I've heard the trails there are quite scenic. And you're right, it seems like the perfect place for a good day's hike. Let's do it! What time were you thinking of starting?
John: I'm glad you're on board, Robin! How about we start early to make the most of the day? Meeting at 8:00 AM would give us plenty of time to enjoy the trails. Does that work for you?
Robin: That sounds like a plan, John! Meeting at 8:00 AM works for
@johnjosephhorton
johnjosephhorton / looking_for_domain_name.py
Created January 28, 2024 22:50
A script to search for english word domain names that might be available
import aiohttp
import asyncio
http_status_codes = {
100: "Continue",
101: "Switching Protocols",
102: "Processing",
200: "OK",
201: "Created",
202: "Accepted",
from jinja2 import Template
from jinja2 import Environment, meta
class Question:
"""This class reprsents a question sent to an LLM (or human).
It uses the jinja2 templating language to generate the prompt.
For details on jinja2: https://jinja.palletsprojects.com/en/3.0.x/
This templating language gives us lots of flexibility in how we ask questions.
"""
def __init__(self, template_string):
@johnjosephhorton
johnjosephhorton / randomization_in_HIT.html
Created November 14, 2010 23:35
Some code for doing simple A/B-type randomization for locally-hosted HITs on Amazon Mechanical Turk (MTurk)
<script>
function rand(){
if (Math.random() > .5){
document.getElementById('boss').style.visibility="hidden";
} else {
document.getElementById('requester').style.visibility="hidden";
}
}
</script>
@johnjosephhorton
johnjosephhorton / lazy_way_to_install_all_R_packages.sh
Created July 26, 2019 13:46
Lazy way to get all the packges you use & then install them at once
# Find all your R files & get just the package names, uniquely
find ../analysis/ -name *R -print0 | xargs -0 grep -h 'library*' | sed 's/library//g' | sed 's/#//g' | sed 's/ //g' | sort | uniq|\
sed 's/(//g' | sed 's/)//g' > package_list.txt
# Install each package
cat package_list.txt | xargs -I {} Rscript -e 'install.packages("{}")'
#!/usr/bin/Rscript --vanilla
suppressPackageStartupMessages({
library(magrittr)
library(dplyr)
library(foreign)
library(plm)
library(reshape2)
library(stargazer)
library(ggplot2)
library(lfe)
library(stargazer)
set.seed(6152011)
# Number of cities
L <- 1000
# Number of industries
K <- 3
@johnjosephhorton
johnjosephhorton / get_machine_learning_wages_on_odesk.py
Created November 26, 2011 19:22
Get the hourly wages of machine learning contractors on oDesk
# John Horton
# www.john-joseph-horton.com
# Description: Answer to Quora question about machine learning hourly rates
# "http://www.quora.com/Machine-Learning/What-do-contractors-in-machine-learning-charge-by-the-hour"
from BeautifulSoup import BeautifulSoup
import urllib2
def contractors(skill, offset):
@johnjosephhorton
johnjosephhorton / Makefile
Last active August 8, 2018 15:12
Real world Makefile for a paper
project_name = hot_towel
ts := $(shell /bin/date "+%Y-%m-%d---%H-%M-%S")
params =
# DONE
params += params_exp_details.tex
params_exp_details.tex: ../analysis/params_exp_details.R
cd ../analysis && ./params_exp_details.R