diff --git a/content/pages/milestones/index.mdd b/content/pages/milestones/index.mdd new file mode 100644 index 0000000..1d8a045 --- /dev/null +++ b/content/pages/milestones/index.mdd @@ -0,0 +1,5 @@ +Title: Milestones + +The milestone pages track the work done on each milestone. + +* [Milestone 1](/milestones/m1.html) diff --git a/content/pages/milestones/m1.md b/content/pages/milestones/m1.md new file mode 100644 index 0000000..cc5efa6 --- /dev/null +++ b/content/pages/milestones/m1.md @@ -0,0 +1,25 @@ +Title: M1: Basic artifact storage + +### Blobs + +- [X] Proto definition for archive blobs +- [X] Database schema for archive blobs +- [X] SQL migration (using [sql-migrate](https://github.com/rubenv/sql-migrate)) +- [X] Go package for archive blobs +- [ ] blob store +- [ ] syncq +- [ ] CLI tool for inserting blobs + +### Artifacts +- [ ] What does an artifact look like? Develop the data model. +- [ ] Proto definitions for an archive entry +- [ ] Database schema for archive entries +- [ ] SQL migration + +### Web service +- [ ] gRPC service +- [ ] HTTP backend that talks to the gRPC service +- [ ] HTML frontend with authentication +- [ ] (Bonus) CLI tool to interact with the webserver + + diff --git a/content/posts/20220223.md b/content/posts/20220223.md index e6c66e9..2065145 100644 --- a/content/posts/20220223.md +++ b/content/posts/20220223.md @@ -1,12 +1,14 @@ Title: 20220223 Slug: 20220223 Date: 2022-02-23 22:22 PST -Modified: 2022-02-23 22:25 PST +Modified: 2022-02-23 23:24 PST Category: Tags: journal Authors: kyle Summary: Design work on blobs. +## Blob structures + I finished writing out the basic blob database and structure types. The blob was a structure like @@ -30,3 +32,36 @@ type Blob struct { r io.Reader } ``` + +## Syncing questions + +I have a problem that I'm having difficult reconciling and I'll need +to revisit. Let me try to talk my way through it: I plan on running +`exod` on my laptop, or rather, I plan on having the ability to run it +offline. However, if I want to stash something while my laptop is asleep, +that breaks. If I store the repo remotely but make local changes offline, +how do I sync it? + +I think the answer to this is to set up a buffer server, something like +another sync queue. If a connection fails, I'll add a task on phobos +to keep retrying occasionally (with a daily report), this should work. + +The use case I'm thinking of is adding to my exocortex from my phone +while traveling, for example. The two modes that I think will work well +with this are adding artifacts and adding quick notes. + +A quick note would be a node named something like + +``` +quick => + 2022 => + 02 => + 23 +``` + +The quick note function will add a new cell to the existing quick note +for the day. The idea is that I'll revisit that the next day, or at the +end of the day, and integrate those notes into the rest of the exocortex. + +I'm satisfied with this approach for now. + diff --git a/content/posts/milestone-1.md b/content/posts/milestone-1.md new file mode 100644 index 0000000..60808bb --- /dev/null +++ b/content/posts/milestone-1.md @@ -0,0 +1,29 @@ +Title: Milestone 1 +Slug: milestone-1 +Date: 2022-02-23 +Modified: 2022-02-23 +Category: +Tags: milestones +Authors: kyle +Summary: Describe a path to the first "deliverable." + +I'm going to identify milestones for this project. A milestone should +provide an incremental, concrete step in the right direction. The end +result will be an additional way to interact with the exocortex. For +example, the first milestone is an HTTP interface for remotely adding +URLs to the exocortex. + +## Goal + +Build a web server that lets me stash URLs (links and PDFs, primarily) to an +artifact store. + +## How do I get there? + +I'll split this into three stages: first, developing the blob +data structure and management. Then I'll add in support for +artifacts. Finally, I can build out the APIs. Following the +[functional spec](/specs/functional.html), this will start with a gRPC +interface. I can build a web interface on top of this. + +The work is tracked under [M1](/milestones/m1.html). diff --git a/milestone b/milestone new file mode 100755 index 0000000..7532437 --- /dev/null +++ b/milestone @@ -0,0 +1,13 @@ +#!/bin/sh + +set -eux + +MILESTONE_POST="content/pages/milestones/m${1}.md" +if [ ! -e "${MILESTONE_POST}" ] +then + echo "Milestone not found." + exit 1 +fi + +EDITOR="${EDITOR:-gvim}" +$EDITOR "${MILESTONE_POST}" diff --git a/today b/today index 4f04e44..6034caa 100755 --- a/today +++ b/today @@ -4,7 +4,6 @@ set -eux TODAY="$(date +'%Y%m%d')" DATETIME="$(date +'%F %H:%M')" -POSTPATH="content/posts/${TODAY}.md" PUBDATE="$(date +'%F %H:%M %Z')" TITLE="$@" if [ -z "$TITLE" ] @@ -16,6 +15,7 @@ else SLUG="$(echo ${TITLE}|tr [A-Z] [a-z]|tr ' ' '-')" fi +POSTPATH="content/posts/${SLUG}.md" if [ ! -e "${POSTPATH}" ] then cat < ${POSTPATH}