public

Post
·

POOPER

Back references (22)

January 19th, 2022

·

Links public

·
In macOS, when you hold down a letter key you see a small popover with available alternates for that letter (for example by applying accents). This behavior can be disabled, returning to the previous behavior where holding a key repeats that letter until you release it.
·
An objective comparison between Remix and Next.js
·

Love Remix! Next is great too.

·
A command-line tool to generate, analyze, convert and manipulate colors - GitHub - sharkdp/pastel: A command-line tool to generate, analyze, convert and manipulate colors
·

I can add any commentary is blocked underneath the embed. Nice that most things supports open graph and I can pull titles and descriptions from it.

January 17th, 2022

·
Vim, run from the terminal, does not make use the Command key. So most of my muscle memory has been lost while learning it. However I found a shortcut: iTerm's key mapping.
·

This is a cool thing I found. Lee continues to impress

January 15th, 2022

·

Hobby post public hobbies

·

I roasted some beans! I’m posting this mainly to test filtering (see the very top).

·

Tech post public tech

·

This is something about tech. Just a test for the tech tag.

January 14th, 2022

·

Everything is a link public

·

I’m now comfortably settled into my new site and happy with how it works. I use Roam as my CMS, and when publishing it extracts all the public data and pushes it up to my servers as a DataScript database. The site uses Remix to render pages on the fly, using datalog db queries to get the content.

·

The content is radically different than any other site in one way: everything is linkable.

·

Everything, down to this single paragraph. Hover over this and click the dot to the left. This paragraph is now linked to. Now shift-click the same dot. This paragraph is now focused.

·

Any children are always rendered with the above paragraph

·

Use your browser’s back button to go back. Don’t worry; we don’t load any JS on the page so your previous scrolling position will act sanely.

·

And it’s not just that. I can link to anything like Coding environments. You can jump to that page and see everything else that links there. My site doesn’t support it yet, but you can also embed any block into anywhere.

·

It’s truly amazing once you start working with your content this way, and it makes everything else feel ancient. I have to use Dropbox Paper for work, and I hate every minute of it.

·

This reminds me of the idealistic Project Xanadu, a vision for the web where everything is a living link. Reading up on Ted Nelson and similar ideas, I can’t help but wonder if there was a different path the web could have taken.

·

Typically, graph-based tools that support this approach generally focus on note-taking. Now that I can the ability to render anything from this content, almost everywhere I have to manage content would be better off with this:

·

For my app Actual, I write release notes. Some of it is automated, but I still like to write parts of it manually. Write now I do it straight in a github release. I should write them directly in Actual’s Roam graph, and have the ability to link across docs

·

Doc sites should totally be built on something like this. Imagine being to directly send a coworker a link to exactly the paragraph that’s important. Or being able to pull in other related sections from a completely different page next to a component example. I plan on writing Actual’s next docs site with this.

·

The next version of Actual’s site will use Roam as a CMS. I’ll be able to edit any content directly in Roam, and configure the site as needed. While it will still render as a more traditional marketing site, it’ll be able to embed blocks and dynamically compose pages as needed. It’ll also still support linking everywhere, including into the docs.

·

I also have the ability to write into the graph. This means I can setup automations to store github issues, support requests, and anything into my graph. What that means is I can link to them and setup important context as I’m working on things. I can see exactly which github issues were solved in a release, which support requests were related and any additional notes that I took throughout the process.

·

I’m done writing text as plain text. I’m done generating header links that get broken whenever you change the titles. I’m done with dead links.

·

The downside to Roam is it’s a hosted service and you don’t control the files. For something like docs you probably want it as local files, and logseq seems like a great alternative. In the future I’ll look into it instead of Roam, but regardless: make your content linkable!

January 13th, 2022

·

I write down interesting links every day. Experimenting with making this section public.

·

This first step of this new site is complete. It reads from my knowledge graph, rendering links to other pages and shows back references to the current page.

·

All I have to do is tag pages or blocks as public in my graph and they’ll show up on the site. Right now I still have to click a “publish” button to update the site, but I’m thinking of making it automatic so it pulls down new content every couple hours.

·

I like the feeling of just writing stuff down and knowing it will be publicly available.

·

Of course, if I want to explicitly publish content, I can mark it private and when I’m ready I’ll manually publish. I’ll do that for long-form posts but it’s nice to have a more lightweight option.

·

A few things I still want to do:

·

I learned a lot about datalog through this process, and right now the code is pretty messy and inconsistent. I want to refactor everything and think more about what is a “page” and how things get grouped together. Currently the index page which shows daily notes is not consistent with everything else.

·

Daily notes should de-emphasize the date, and probably attach it to each section in smaller font

·

Pages should probably infer the latest date by getting the latest back reference from a daily page and show that somewhere

·

Blocks as headers currently don’t render correctly

·

RSS feed for every page? What is “new content” in that case though? Or should it just be a single RSS feed focused on the daily notes?

·

Tag a page to view it as a document, so it doesn’t render the bullet points

·

Eventually, full-text search and make page list lists all the pages sorted by date edited

·

I’ve also been thinking about code blocks. I love the idea of inline code blocks, and it feels so close to a kind of literate programming environment. I experimented with hooked up a “live coding” functionality where changes to code blocks were streamed to a process that actually ran them, but there are issues with that.

·

Actually editing code in Roam is annoying. You don’t get prettier, linters, type checking, etc. So I don’t actually want to write code here, but I do want to read the code inline if I’m constructing a post.

·

I want to write a tool that pushes code from a file into a Roam page, and is also able to extract code out of a page. It will track which block a piece of code is stored, so when I want work on the code I can extract it out and run it. When I’m done, I’ll sync it back.

·

I’m always annoyed at including code in blog posts for a few reasons: either they are directly embedded and you can’t run them, so you never know when they break. Or you reference the code externally, but then you can’t read the post with the code which is really important to craft the story. I also hate managing external code snippets as random files that are totally separate than the post.

·

In my code, my graph would be the actual storage for the code, but I’d be able to extract it and run it as needed.

January 12th, 2022

·

Web, I mainly use it for CSS testing https://codepen.io

·

How should I handle CSS?

·
body {
  background-color: black;
}
·

This is a block quote

·

This is another block reference. How does it look?

·

And another block reference with some longer test. Going to see what it looks like when there are multiple references across multiple pages.

·

Back references are working well! Clock on the “roam” link above and you’ll see.

January 7th, 2022

·

This whole website comes from my block database. Right now, it hits an API that reads directly from Roam by loading the whole thing in a headless browser instance since Roam doesn’t have an API.

·

It’s a broken mess, and horribly slow.

·

Luckily, you can export your Roam database. I can automate exporting and uploading to a server, which then can directly read from the db. Not only is this way faster, I could potentially replicate the db across the world on multiple servers.

·

It also makes development way faster. In fact, that’s the primary reason I looked into this. When changing the queries, I’d have to restart the headless browser which takes 20-30 seconds. It’s a terrible development flow, but now I can snapshot the data and reload instantly.

·

Once you export your data as EDN, here’s how you load and query it:

·
let ds = require('datascript');
let x = "foo\n fdfs"
let edn = require('jsedn');

let d = require('fs').readFileSync('./personal.edn', 'utf8');
let data = edn.parse(d);

let conn = ds.conn_from_datoms(
  edn.toJS(edn.atPath(data, ':datoms')),
  edn.toJS(edn.atPath(data, ':schema'))
);

let query = '[:find (pull ?b [*]) :where [_ ":block/uid" "01-06-2022"]]';
let result = ds.q(query, ds.db(conn));

console.log(result);
// [[5389]]

January 8th, 2022

·

Rewrote the site

January 6th, 2022

·

This has started to come together. Linking across pages now works, and the pages form works too (same thing, just different visually).

·

It’s weird having your content as a graph and trying to display it as web pages. There’s no longer strict structure and pages can be made up of any blocks, so what should the URL be? How does caching work? Thinking through all of this.

·

Content is also much more live. The graph will consistently change, which is why right now when linking to other pages the URL includes the page id, not the title. In the future, I could tag pages manually with a stable URL name.

·

This content is coming from Roam. I can mark a page as public by adding a Type:: Public attribute at the top of a page, or I can instead mark individual blocks within the page as public.

·

Right now, the index page is showing public blocks from my daily notes, and all other pages are direct links to pages. In the future I might want to allow search and compose many pages into one.

·

Block refs and embeds don’t work right now:

((-rUOMzSMh))

{{embed: ((-rUOMzSMh))}}

·

However, there’s no reason why they shouldn’t. It wouldn’t be too hard to add.

·

I’m also not showing back back references on pages yet. That is going to be the killer feature and I can’t wait to add it.

·

I’m also curious what this looks like:

  • Thing 1
  • Thing 2
·

I can also drag and drop images:

ref linking

·

Some public data on a specific page

·

Woot

·

Hello

January 4th, 2022

·

ref linking is starting to come together

·

and ref linking tags! which are the just different visually

·

Testing out some ref linking

·

The query 2 needs to return all ref ids to resolve links

January 3rd, 2022

·

I’m going to hook up markdown rendering for each block. This should be bold and this should be in italics. This should be a link.

·

I think inline code works: function foo() {}. What about code blocks?

·
function foo(n) {
      return n ** 2
}
·

Not quite working yet ^

January 2nd, 2022

·

I write a lot of todo lists. I’m not usually going to make them public, but might as well open this one. Here’s all the stuff I want to do for this site:

·

Run markdown on each block to display font styles, links, and images

·

Implement a parser for a few of Roam’s special blocks, like todo/done and videos

·

The parser also needs to handle the [[ ]] and # notation for referencing other pages. We should render them as links so you can jump to them

·

Also handle (( )) block references? We can already link to blocks, but hard to know if they are public

·

Query the back references to a page and render them

·

Implement a generic route handler that takes a route and queries the Roam graph for it. It would render all the public sections on that page (maybe allow entire pages to be marked public?)

·

“Posts” are just pages made public that are linked to from a public section in daily notes

·

An “all posts” page is just a query for pages marked as a post

·

Allow nested blocks (right now it ignores them)

·

oh this is using Remix btw. it’s the best of the best framework. finally something that embraces dynamic sites. this wouldn’t work without it; this site reads directly from my Roam graph. For speed, I just use Cloudflare to cache the contents for 5 minutes. static site generators are the worst (should write more thoughts about that, but this is already long)

·

to make this section all I had to do was create a new block titled “Remix” and tag it “public”. isn’t that cool?

·

(I’d link to Remix but this doesn’t support links yet)

·

I’m good at keeping things in my head.

·

That’s a bad thing, because it makes me feel like I don’t have to write things down. In reality, I’m losing a lot of information. I find interesting things and think about stuff all the time, but almost immediately forget them.

·

I’m not actually that good at keeping things in my head. There’s so much information loss.

·

I got into the sourdough baking fad last year. I didn’t write anything down as I baked a bunch of different breads. I don’t remember anything; I effectively learned nothing from that experience.

·

I could link to articles and studies I’ve seen about this, but I can’t remember where they are.

·

Recently I’ve tried writing everything down. When I find something cool, I add a link to it. As I do stuff, I write down my thoughts. The difference is amazing; even in just a few weeks I have a huge amount of things to work with.

·

I keep finding myself wanting to share this information, but I didn’t know how. I could tweet it, but I don’t like that format. I’ve also reached the point of too many followers so I don’t feel like sharing every weird thought.

·

Twitter is too ephemeral. blogs are too permanent. I want something in-between.

·

Nobody reads blogs anymore. I don’t have time for writing blog posts anyway. They’re too formal, too long, and annoying to manage.

·

Down with blogs. I never want to write stupid metadata/frontmatter again just to post some thoughts.

·

down with formality

·

instead of a list of posts, this website is now a living graph of ideas

·

how does it work? I use Roam to write stuff down. All I have to do is write stuff down under a specific block. All of this is under “Thinking in public public” on my current daily note, so it shows up here

·

that’s it. that’s all I have to do. In fact, as I’m writing this it’s immediately showing up on my website

·

in the future I’ll expose a full graph on my ideas here with backlinks and everything

·

let’s get back to quirky websites full of weird ideas

·

Oh nice

·

I forgot that I hooked up discord to these public blocks so I can just write from discord too. this message is from my personal discord

December 31st, 2021

·

A bunch of basic content. Leaving this lorem ipsum up for now so it looked more filled out. Plus this is supposed to be random thoughts right? I thought about how to display the paragraph below for a while.

·

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque facilisis nulla et metus consectetur, at congue tortor efficitur. Etiam congue congue mollis. Suspendisse mi diam, volutpat bibendum bibendum at, hendrerit sit amet enim. Nam eget felis felis. Vivamus ullamcorper dapibus tincidunt. Nulla a tempor augue. Duis tincidunt et tellus non efficitur. In hac habitasse platea dictumst. Sed tristique, sem vel consectetur interdum, augue mauris ultrices nibh, sed posuere erat quam quis sem. Phasellus hendrerit porttitor dui, ac blandit ex pellentesque eu. Pellentesque consectetur tincidunt nisl, interdum laoreet libero semper et. Phasellus massa nibh, gravida at lacinia vel, tempor ultricies arcu. Morbi a vulputate sem.

December 30th, 2021

·

Hello world!