Projects
Tools, userscripts, websites, and experiments exploring search, information retrieval, and related topics.
01
SearchRights.org

A website describing how different generative search systems perform against criteria oriented around search rights. Intended to explore, challenge, and support new search systems. Actively under development and updated. Tech: Jekyll, HTML, CSS Tags: website, provocation
02
SearchJunct

This is a search router. I currently use this as my default search engine on desktop (currently running locally), replacing qrs. Actively being developed. Tech: JavaScript, HTML, CSS Tags: search router, search user interface, practical exploration, utility
03
speedserper

A userscript to simplify search engine results pages for quick and simple use. Actively being developed. Tech: JavaScript, HTML, CSS Tags: practical exploration, search user interface, Tampermonkey userscript
04
CopyPromptPlusResponse

A userscript to copy search prompts and resulting responses to the clipboard for generative search tools. Actively being developed. Tech: JavaScript, HTML, CSS Tags: practical exploration, search user interface, Tampermonkey userscript
05
xtracty

A userscript to extract tweet/post data from Twitter/X to YAML for easy handling. Actively being developed. Tech: JavaScript, HTML, CSS Tags: utility, Tampermonkey userscript
06
Lunrish
This is a modification of the Lunr.js search library adapted (for this website) for delivery server-side. Actively being developed. The API works and served search results on danielsgriffin.com as of 2023-12-11. Tech: JavaScript, Amazon EC2, Amazon CloudFront Tags: server-side, API, search, danielsgriffin.com
07
bot-ixn

After accidentally poisoning Bing — see the Wired article linked below — I developed a speculative link attribution. In use on danielsgriffin.com. Tech: HTML Tags: data poisoning, danielsgriffin.com
08
FlexSearch Working Example
FlexSearch is a client-side search library. I added a basic example of its use on this website. On hold. Tech: JavaScript Tags: search, website, danielsgriffin.com
09
The Five-Second Rule Filter!

‘The Five-Second Rule Filter!’ is a speculative design approach to searching and acting around uncertainty. Live website. Tech: HTML, CSS Tags: search, speculative design
10
Using Lunr.js on danielsgriffin.com
Lunr.js is the client-side search library that provided search on this website. It is modified to support exact phrase searches, bangs, and special sorting. Actively being ported to Lunrish. Tech: JavaScript, Jekyll Tags: search, website, danielsgriffin.com
11
danielsgriffin.com
A space for public writing and exploration around search. Actively maintained and developed. Tech: JavaScript, Jekyll, CSS, HTML, Python Tags: danielsgriffin.com, personal website, blog
12
qChecker

A Python utility script for checking for quotes in source documents. Written to explore user responses to LLM ‘hallucinations’. Supports basic checks. Tech: Python Tags: utility script, practical exploration
13
ctplsm

This “Contextual Twitter Poultice for Learning So Much” userscript explores alternative search suggestions, generated context around queries, and routing to alternative search tools on Twitter/X search. Actively used by author. Tech: JavaScript, HTML, CSS, OpenAI (gpt-3.5-turbo) Tags: Tampermonkey userscript, speculative design, practical exploration
14
ABCDEFG

This “Auto-Button-Click Double-check Evaluation for Funsies or Gnoses” userscript automatically clicks the “Google it” or “Double-check response” button that appeared for Bard responses. Actively used by author. Tech: JavaScript Tags: Tampermonkey userscript, speculative design, practical exploration
15
Setarco

A Tampermonkey userscript facilitating random instruction insertion in ChatGPT prompts, aiming for enhanced engagement and unpredictability. Actively used by author. Tech: JavaScript Tags: Tampermonkey userscript, speculative design, practical exploration
16
OpenAI’s ‘Question answering using embeddings-based search’ on this website
I explored an OpenAI tutorial for (something like) RAG (retrieval augmented generation), searching a local search API (not Lunrish). The Jupyter notebook is available at the link below. Tech: Python, OpenAI (embeddings; ChatCompletion); HyDE Tags: retrieval augmented generation, danielsgriffin.com, practical exploration
17
No Data To/From Google Scholar December!
An exploration into refusing Google Scholar. Ongoing. Tech: Chrome extension: Redirector (from Einar Egilsson) Tags: refusal
18
query random se (qrs)

An unpacked browser extension that directs searches from the address bar to a random search engine (from a preset list). Legacy — last updated 2023-05-24. Tech: JavaScript Tags: browser extension, practical exploration, utility
19
Twitter API data pull for Burrell et al. (2019)

Used Twitter’s API to find tweets discussing ‘the Twitter algorithm’ (various permutations). Research project completed. Tech: Python Tags: API data pull, Twitter
20
Twitter API data pull and analysis for Griffin & Lurie (2022)

Used Twitter’s Academic API to pull conversations with Google’s Search Liaison. Research project completed. Tech: Python, Jupyter Notebook Tags: API data pull, Twitter
21
certainfuture
2017 class project in David Bamman’s Deconstructing Data Science class (with Natalia Timakova), looking at certainty and uncertainty in future-oriented language about “fake news” interventions. Did not continue after the class. Tech: Python, NLP (NLTK), machine learning (Keras, scikit-learn) Tags: class project
22
The Gadfly Project

2016 capstone project for UC Berkeley’s MIMS program: “Give our service any block of text and we will automatically return a set of related questions.” With Vijay Velagapudi, Anand Rajagopal, Nikhil Mane, and Andrew Huang; advised by Marti Hearst. No longer hosted. Tech: Python, JavaScript, NLP (spaCy) Tags: capstone project
23
“Python Boot Camp”
I taught this three-week course for the School of Information at UC Berkeley for three years. I modified materials from Corey Hyllested, including updating to Python 3. Handed off materials to subsequent instructors (Proxima DasMohapatra and Michael Gutensohn) for summer 2019. Tech: Python Tags: teaching
24
TweetDay

An exploratory visualization providing a lens for browsing hundreds of tweets at once; a class final project for Marti Hearst’s Information Visualization class (with Vijay Velagapudi, Nikhil Mane, and Andrew Huang). The write-up linked below is from Andrew Huang. No longer hosted. Tech: JavaScript; Seesoft-inspired (Eick et al., 1992) Tags: class project, data visualization
25
“Justificatory Claims in Open Source Mailing Lists”
2014 class final project in Marti Hearst’s Applied Natural Language Processing class (with classmates), looking at identifying the types of justificatory claims (analogy, authority, experience, generalization, or other) made in open source mailing lists. Did not continue after the class. Tech: Python, NLP (NLTK), BigBang Tags: class project