Projects

    June 17th, 2023

    I’ve listed here some of my projects, including websites, search tools, userscripts written in JavaScript, utility scripts written in Python, coding aspects of research papers, and some coursework.


    This focuses on projects incorporating writing code in some manner. To learn about research specifically, see Research.

    SearchRights.org
    • website
    • provocation

    A website describing how different generative search systems perform against criteria oriented around search rights. Intended to explore, challenge, and support new search systems.

    Screenshot of project

    Actively under development and updated.

    GitHub | Jekyll, HTML, CSS

    SearchJunct
    • search router
    • search user interface
    • practical exploration
    • utility

    This is a search router. I currently use this as my default search engine on desktop (currently running locally), replacing qrs.

    Screenshot of project

    Actively being developed.

    GitHub | JavaScript, HTML, CSS

    speedserper
    • practical exploration
    • search user interface
    • Tampermonkey userscript

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

    Screenshot of project

    Actively being developed.

    GitHub | JavaScript, HTML, CSS

    CopyPromptPlusResponse
    • practical exploration
    • search user interface
    • Tampermonkey userscript

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

    Screenshot of project

    Actively being developed.

    GitHub | JavaScript, HTML, CSS

    xtracty
    • utility
    • Tampermonkey userscript

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

    Screenshot of project

    Actively being developed.

    GitHub | JavaScript, HTML, CSS

    Lunrish
    • server-side
    • API
    • search
    • danielsgriffin.com

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

    JavaScript, Amazon EC2, Amazon CloudFront

    • data poisoning
    • danielsgriffin.com

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


    In use on danielsgriffin.com.

    GitHub | HTML

    FlexSearch Working Example
    • search, website
    • danielsgriffin.com

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


    On hold.

    JavaScript

    The Five-Second Rule Filter!
    • search
    • speculative design

    ‘The Five-Second Rule Filter!’ is a speculative design approach to searching and acting around uncertainty.

    Screenshot of project

    Live website.

    HTML, CSS

    Using Lunr.js on danielsgriffin.com
    • search, website
    • 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.

    JavaScript, Jekyll

    danielsgriffin.com
    • danielsgriffin.com
    • personal website
    • blog

    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.

    GitHub | JavaScript, Jekyll, CSS, HTML, Python

    qChecker
    • utility script
    • practical exploration

    A Python utility script for checking for quotes in source documents. Written to explore user responses to LLM ‘hallucinations’.

    Screenshot of project

    Supports basic checks.

    GitHub | Python

    ctplsm
    • Tampermonkey userscript
    • speculative design
    • practical exploration

    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.

    Screenshot of project

    Actively used by author.

    GitHub | JavaScript, HTML, CSS, OpenAI (gpt-3.5-turbo)

    ABCDEFG
    • Tampermonkey userscript
    • speculative design
    • practical exploration

    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.

    Screenshot of project

    Actively used by author.

    GitHub | JavaScript

    • Tampermonkey userscript
    • speculative design
    • practical exploration

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


    Actively used by author.

    GitHub | JavaScript

    OpenAI’s ‘Question answering using embeddings-based search’ on this website
    • retrieval augmented generation
    • danielsgriffin.com
    • practical exploration

    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.

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

    No Data To/From Google Scholar December!
    • refusal

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


    Ongoing…

    Chrome extension: Redirector (from Einar Egilsson)

    query random se (qrs)
    • browser extension
    • practical exploration
    • utility

    An unpacked browser extension that directs searches from the address bar to a random search engine (from a preset list).

    Screenshot of project

    Legacy - last updated 2023-05-24

    GitHub | JavaScript

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

    Used Twitter’s API to find tweets discussing ‘the Twitter algorithm’ (various permutations)

    Screenshot of project

    Research project completed.

    Python

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

    Used Twitter’s Academic API to pull conversations with Google’s Search Liaison.

    Screenshot of project

    Research project completed.

    Python, Jupyter Notebook

    certainfuture
    • class project

    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.

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

    • capstone 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.

    Python, JavaScript, NLP (spaCy)

    “Python Boot Camp”
    • teaching

    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.

    Python

    TweetDay
    • class project
    • data visualization

    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.

    Screenshot of project

    No longer hosted.

    JavaScript; Seesoft-inspired (Eick et al., 1992)

    “Justificatory Claims in Open Source Mailing Lists”
    • class project

    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.

    Python, NLP (NLTK), BigBang

    References

    Eick, S. C., Steffen, J. L., & Sumner, E. E. (1992). Seesoft-a tool for visualizing line oriented software statistics. IIEEE Trans. Software Eng., 18(11), 957–968. https://doi.org/10.1109/32.177365 [eick1992seesoft]