← Daniel Griffin

Projects

Tools, userscripts, websites, and experiments exploring search, information retrieval, and related topics.

01

SearchRights.org

SearchRights.org screenshot

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

SearchJunct screenshot

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

speedserper screenshot

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

CopyPromptPlusResponse screenshot

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

xtracty screenshot

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

bot-ixn logo

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! screenshot

‘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

qChecker screenshot

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

ctplsm screenshot

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

ABCDEFG screenshot

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

Setarco logo

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)

query random se (qrs) screenshot

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)

Twitter API data pull for Burrell et al. (2019) screenshot

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)

Twitter API data pull and analysis for Griffin & Lurie (2022) screenshot

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

The Gadfly Project logo

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

TweetDay screenshot

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