Hello, world!¶
My name is Olivia. I’m a software developer, open-source contributor, and general tinkerer. I hold a Master’s degree in Computer Science & Engineering. I was originally on track for a PhD, but I’ve paused that journey to focus on other important life changes and career growth.
These days, I spend my time writing code, contributing to open-source projects, exploring new ideas, and enjoying time with my partner. For more about my professional work, see my homepage.
About This Blog¶
This blog is my little corner of the internet where I share my thoughts, projects, and whatever else crosses my mind. You can expect posts about:
Research – Even though I’m no longer in a PhD program, I still find myself working on research problems. Lately, most of my focus has been on pure math.
Programming – Writing code, building projects, and sharing lessons learned along the way.
Personal Thoughts – Reflecting on life, learning, and the challenges of personal growth.
Areas of Research¶
Computer Science¶
Distributed Systems¶
During my Master’s degree, I focused heavily on researching distributed systems. This resulted in the publishing of two papers:
The key concept behind these is detailed in this post, and in an upcoming post I will detail the key concepts we improved upon in the second paper.
Peer-To-Peer Networking¶
For a long time I have been somewhat obsessed with peer-to-peer networking. For more details, see below.
Mathematics¶
Prouhet-Thue-Morse Generalization¶
I’ve been exploring a generalization of the Prouhet-Thue-Morse sequence, investigating its properties and potential applications. This work spans number theory, combinatorics, and several other areas of mathematics. While still in progress, I plan to write more about my findings in future posts.
Projects You Might See Here¶
sphinx-fediverse¶
sphinx-fediverse is my work-in-progress project that brings
comments to Sphinx-generated pages by leveraging the fediverse for hosting. At the moment it supports
Mastodon, Misskey,
and other software based on them. It is currently somewhere between alpha and beta quality, and once it gets closer to
a final product I plan to write a post on how it works.
This powers the comment section in this blog!
OpenStreetMap¶
OpenStreetMap is a global, community-driven Geographic Information System, built in a similar style to Wikipedia. It powers countless tools and applications, making geospatial data freely available to everyone.
I’ve contributed to OpenStreetMap in a variety of ways. During my time at Intel, I organized multiple emergency relief map-a-thons (example). I’ve also built open-source tools like overpassify, which makes geospatial analysis easier. Beyond that, I’ve reported and helped troubleshoot bugs in tools like StreetComplete and iD, which are commonly used to edit OpenStreetMap.
Here are some stats on my contributions:
Statistics Page (requires OpenStreetMap login)
Nodes edited by me in my hometown (not mobile-friendly)
I’ll likely write a lot more about this in the future!
Project Euler¶
Project Euler is a series of math-related programming challenges. I use it to learn new languages and to improve my use of the ones I already know. I’m really proud of some of my solutions and plan to write many posts about the infrastructure I’ve built around them.
Please note that this is not meant to help you solve these problems. If you use my work for that purpose, you are breaking Project Euler’s rules.
To browse my implementations, see my project page.
overpassify¶
overpassify is a tool for working with Overpass API queries in a more developer-friendly way. It simplifies the process of querying and extracting data from OpenStreetMap, providing a providing a more readable and user-friendly query language for more streamlined workflows. This project is part of my ongoing exploration of geospatial data and the OpenStreetMap ecosystem. In general, it converts a subset of the Python language to a subset of the Overpass Query Language.
Retrion¶
I’ve been playing around with an idea for a long time–making the networking side of distributed systems much easier. Basically, something like SocketIO but for peer-to-peer networking.
This is a long-term goal of mine, though active development has been on hold for a while. For now, I call this project Retrion, though a better name may come along. I have a detailed vision for how this should work, but you can see a decent summary here.
Posts
- Hybrid Logical Clocks: Summary
- Kademlia (The Protocol)
- Kademlia (My Implementation)
- Achieving Causality with Physical Clocks – A Summary
- Developing
sphinx-fediverse - Lessons in Grafana - Part One: A Vision
- Lessons in Grafana - Part Two: Litter Logs
- Lessons in Grafana - Bonus Entry: Achieving Acceptable Averages
- Lessons in Grafana - Part Three: Mental Metadata
- Lessons in Grafana - Part Four: Noticing Notes
- Lessons in Grafana - Part Five: Graphing Goatcounter
- Lessons in Grafana - Part Six: Bridging Gadgets? Biometrics Galore!
- Lessons in Grafana - Part Seven: Plotting Prospective Plans
- Prouhet-Thue-Morse Research 1: Foundations & Numeric Definitions
- Prouhet-Thue-Morse Research 2: Binary Definitions - Textual & Sequential
- Prouhet-Thue-Morse Research 3: Binary Definitions - Others
- Prouhet-Thue-Morse Research 4: Binary Equivalence
- Prouhet-Thue-Morse Research 5: Extending the Alphabet
- Prouhet-Thue-Morse Research 6: Extended Equivalence
- Prouhet-Thue-Morse Research 7: Property Preservation
- Prouhet-Thue-Morse Research 8: Complexity and Honorable Mentions