Projects

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

SearchRights.org screenshot

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

websiteprovocation
SearchJunct screenshot

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

search routersearch user interfacepractical explorationutility
speedserper screenshot

speedserper

A userscript to simplify search engine results pages for quick and simple use. See this page: speedserper

Actively being developed.

Tech: JavaScript, HTML, CSS

practical explorationsearch user interfaceTampermonkey userscript
CopyPromptPlusResponse screenshot

CopyPromptPlusResponse

A Userscript to Copy Search Prompts and Resulting Responses to Clipboard for Generative Search Tools.

Actively being developed.

Tech: JavaScript, HTML, CSS

practical explorationsearch user interfaceTampermonkey userscript
xtracty screenshot

xtracty

A userscript to extract tweet/post data from Twitter/X to YAML for easy handling.

Actively being developed.

Tech: JavaScript, HTML, CSS

utilityTampermonkey userscript

Lunrish

This is a modification of the Lunr.js search library adapted (for this website) for delivery server-side.

Actively being developed. API works and currently serves search results on danielsgriffin.com (as of 2023-12-11).

Tech: JavaScript, Amazon EC2, Amazon CloudFront

server-sideAPIsearchdanielsgriffin.com
bot-ixn logo

bot-ixn

After accidentally poisoning Bing, see this Wired article, I developed a speculative link attributed.

In use on danielsgriffin.com.

Tech: HTML

data poisoningdanielsgriffin.com

FlexSearch Working Example

FlexSearch is a client-side search library. I have added a basic example of its use on this website.

On hold.

Tech: JavaScript

search, websitedanielsgriffin.com
The Five-Second Rule Filter! screenshot

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

searchspeculative design

Using Lunr.js on danielsgriffin.com

Lunr.js is the client-side search library currently providing search on this website. It is modified to support exact phrase searches, bangs, and special sorting.

Actively being ported to Lunrish.

Tech: JavaScript, Jekyll

search, websitedanielsgriffin.com

danielsgriffin.com

A space for public writing and exploration around search. Link above goes to the /Site page. GitHub link below goes to a public issues repository (the latter is also linked to from my Feedback page.

Actively maintained and developed. See Roadmap.

Tech: JavaScript, Jekyll, CSS, HTML, Python

danielsgriffin.compersonal websiteblog
qChecker screenshot

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

utility scriptpractical exploration
ctplsm screenshot

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)

Tampermonkey userscriptspeculative designpractical exploration
ABCDEFG screenshot

ABCDEFG

This "Auto-Button-Click Double-check Evaluation for Funsies or Gnoses" userscript automatically clicks the "Google it" or "Double-check response" button that appears for Bard responses.

Actively used by author.

Tech: JavaScript

Tampermonkey userscriptspeculative designpractical exploration
Setarco logo

Setarco

A Tampermonkey userscript facilitating random instruction insertion in ChatGPT prompts, aiming for enhanced engagement and unpredictability.

Actively used by author.

Tech: JavaScript

Tampermonkey userscriptspeculative designpractical exploration

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).

Jupyter notebook is available at the above link.

Tech: Python, OpenAI (embeddings; ChatCompletion); HyDE; RAG

retrieval augmented generationdanielsgriffin.compractical exploration

No Data To/From Google Scholar December!

An exploration into refusing Google Scholar. Read more at my #refusal section on Goldenfein & Griffin (2022).

Ongoing...

Tech: Chrome extension: Redirector (from Einar Egilsson)

refusal
query random se (qrs) screenshot

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

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

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

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

Twitter API data pull & 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

API data pullTwitter

certainfuture

2017 class project in David Bamman's Deconstructing Data Science class (with Natalia Timakova), looking at certainty/uncertainty in future-oriented language about "fake news" interventions.

Did not continue after the class.

Tech: Python, NLP (NLTK), machine learning (Keras, scikit-learn)

class project
The Gadfly Project logo

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; see project page and final report).

No longer hosted.

Tech: Python, JavaScript, NLP (spaCy)

capstone project

"Python Boot Camp"

I taught this 3-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

teaching
TweetDay screenshot

TweetDay

An exploratory visualization to provide 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); write-up at link is from Andrew Huang.

No longer hosted.

Tech: JavaScript; Seesoft-inspired [@eick1992seesoft]

class projectdata visualization

"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 (i.e. analogy, authority, experience, generalization, or other) made in open source mailing lists.

Did not continue after the class.

Tech: Python, NLP (NLTK), BigBang

class project