Hello World!

# Who are you?

My name is Gabe Appleton. Currently I'm a first-year PhD student at Michigan State University with a focus in distributed systems. I also am an amateur photographer and astronomer, and an avid player of D&D.

# Why should I care?

Probably you don't. But on the off chance you like reading random blogs, I'd like to think that I will write interesting things. My posts will probably break down into four categories:

### Research Review

Probably the most frequent posts will be about my research. The first of these post types is the Research Review. This is an experiment that my advisor and I are doing where we read a research paper each week,
and whoever presented that is to write a blog post summarizing and reviewing it. Because these posts are meant to reflect our thoughts on the matter, and not, say, get in a peer-reviewed journal, there are going to be
lower standards here. Not everything will be cited or neutrally-framed. Not everything will be objective or unopinionated. That's not the goal with this format.

A lot of these, especially in the early days, will be about time syncronization in distributed systems. In the next week or two I hope to get a post up about
[Hybrid Logical Clocks](https://cse.buffalo.edu/tech-reports/2014-04.pdf), which is my advisor's current focus area.

### Research Progress

The second research category will be about my personal research. This can be further divided into my "hobby horse" and my formal research.

#### Hobby Horse

The idea I have been playing around with for a *long* time at this point is to try and make the networking end of distributed systems much easier. Basically to do SocketIO but for peer-to-peer networking.

This is a long-term goal of mine, and progress may be sporradic. For now I am writing this under the name Retrion, but a better name might come along at some point. I have a veritable manifesto in my head
about how this should work, but the main goal is to generate a network protocol with the following properties:

1. An object model and serialization standard that can be used easily in most languages
2. A simple high-level API (along with a fine-grained one)
3. log(n) distributed hash table get/sets
4. Support for disabling DHT support network-wide
5. Support for "edge nodes" which do not store DHT data except as a cache
6. log(n) broadcast delivery time
7. log(n) routed message delivery
8. Support for multicast routed messages
9. Support for in-protocol group messages
10. Transparent (to the developer) compression
11. transparent (to the user) encryption
12. Support for multiple transport protocols (TCP, UDP, etc.)
13. Support for "virtual transports" (using other nodes as a bridge)
14. A well-defined standard configuration space
15. Support for extension subprotocols and implementation-specific configurations

#### Formal Research

This will be progress on my academic research. Since the topic of this is not yet decided-upon (except for a small project on machine learning for a class) this category will be largely empty for a while.

### Thoughts

This category will be me musing on things. I don't expect it to happen much, but when it does it will probably be hot takes about current events or about my personal life (with context stripped as needed).

### Photography

This is where I will post the pictures I take, when I'm happy with them. Backstory will usually be provided.

tags: research-review, research-progress, thoughts, photography, misc