Malcolm Ocean's roamblog

Roam

created 2020-05-30 · edited 2021-10-28 · open in Roam
  • How I'm using Roam
    • My databases:
    • Initially I hadn't done much with Roam that I couldn't do with WorkFlowy, but I noted:
      • I'm using it differently because I know I will be able to work with whatever I enter differently
        • Analogy: people write differently when writing digitally vs pen-on-paper, because you can edit the digital stuff. (Or just differently between pencil & pen)
  • Ontological thoughts
    • Kinds of things that might want tags/pages/refs etc:
    • I find myself wanting to have a better glossary feature, where I can more clearly specify a few terms that all exist in relation to each other, and some canonical reference for their relationship
      • I think the best current version is what I've hacked together as an example using a page and some block refs. Here's some sample text:
      • Here's how I've set up that page:
          • lead & lag measures are a concept that comes from FranklinCovey, where you intentionally distinguish between:
            • lag measure
              • the outcomes you care about long-term, but that you can't directly move the needle on (such as revenue, or your overall health)
            • lead measure
              • the actions you can take immediately, that you think will positively affect the lag measures you care about (such as making sales calls, or eating & exercising)
      • this is currently workable, and much more so than in most applications!
      • what I like about it
        • I can shift-click on a term & see its definition in the sidebar!
        • I don't have to create a bunch of alias pages
        • the terms are naturally contextualized/namespaced because the block ref refers to the definition of those terms that's on the lead & lag measures page
      • what I don't like about it
        • it doesn't smoothly support capitalization, plurals or subtle variations of terms, or concepts that have multiple forms like an acronym, a short-form, etc
          • I don't want to have to type out an alias every time. that would be awful
          • I guess I could define some aliases, but there's not currently a smooth
        • unlike page-refs, block-refs are ugly.
          • while editing, this means that a bunch of key terms are replaced by random meaningless garbage:
            • There's a model of [​[lead & lag measures]], and it's importance to focus on the (​(X9nt9f2i_))s every day but to not forget about the (​(sjQ7Qlavj))s
          • if I copy the node out of roam it doesn't derefence the block refs
            • UPDATE: actually it looks like this has been fixed! super fucking cool
      • it's almost like what I want is pre-defined aliases for block refs, so that I can instead have something that looks like
        • There's a model of lead & lag measures, and it's importance to focus on the (​(​(lead measure)))s every day but to not forget about the (​((​lag measure)))s
        • I don't want to have to type out an alias every time. that's awful
  • Roam Feature Wishlist
    • (see also feature requests in this tweetstorm (there's some overlap between that and this))
    • Interlinking / Embedding between databases
      • Or some other solution for collaboration
      • (Apparently this is in the pipeline. I was one of the first people with this many databases although apparently lots of other people now have a similar number)
    • WorkFlowy import
      • I'm ready to switch, but I need to know the import format to know how to format my WF stuff. Josh says they'll build JSON export, and my plan is to write a function to convert WorkFlowy JSON to Roam JSON
      • I want underline support. I use underlines for stuff.
      • Give tags a CSS selector based on their name, so that I can custom-style them (workflowy's is actually just title="Filter # tag", not intended for hax)
        • this is done! the selector to use is span.rm-page-ref[data-tag="capslog"] to get something like this: (this is an image)
    • roamblog stuff
      • a memorable page url
      • a shortcut to a search results page
      • actually, a memorable page url and a shortcut to a search results page could be the same! it could be like... whether the page exists or not, going to a particular url would go to as-if-that-page, and would show references below
        • and if I did this while logged in, it would create the page as an actual entity like the Find or Create Page thing does
        • but if a guest user did it, then it would only exist while they were on it, to view the unlinked references (which functions as a kind of search)
          • probably would want to auto-show the unlinked references in that case
      • some shareable page url that actually previews with an appropriate page title
        • (I'm not sure if this can be done with the current hash (# ) based urls, so it might have to use special share-links or something)
      • commenting features
        • At minimum, this would need some sort of mode where people have write access but no ability to overwrite each other's nodes
          • (which, combined with ability to reorganize each other's nodes, could actually be a cool permset for a private shared DB too, so that it's always clear who's saying what)
        • But it could be implemented either as:
          • a comments "section" that functions in this way, where I would do something like and that node would allow comments
          • users can leave comments as subbullets on any other bullet, but things stay collapsed unless I open them
          • supposedly this exists as {​{comment-button}}
        • I think that even with these caveats I might still want to have people need to request access to comment.
      • custom header / theme
        • this is also helpful for distinguishing private roams, similar to how slack workspaces have different themes
      • custom per-roam CSS more generally
      • custom domain
      • maybe having a specific page operate as the homepage would be nice, instead of the daily notes
    • Twitter stuff
      • turn on character count for each node on a page or whatever
        • counts links as 23chars always
        • emoji (and some other ascii chars) are two chars
      • twitter integration → post from roam directly to twitter with one click
      • embed tweets without previous tweet shown
    • Hypertext roambook stuff
      • (Basically all of the roamblog stuff is relevant here too)
      • Inasmuch as Roam seems like an epic platform for publishing hypertext books, and one of the current most excellent hypertext books is meaningness.com (with some custom scripts designed for this purpose) it seems like there are some features worth copying from meaningness:
        • 1. hover on page to get a short blurb about it without needing to click through
        • 2. hoverable footnotes
          • (sort of achievable with shift-click to open in sidebar)
        • 3. ability to easily tag pages as "under construction" (maybe other options too)
        • 4. option to have a table of contents page as the landing/index page, rather than daily notes
          • (although there is sort of a funny way in which daily notes could also function as a blog feed! but this is the hypertext book section, not the roamblog section)
    • Things to replace slack
      • 1) emoji-reactions (oddly this actually feels biggest somehow)
        • BOOM this is done
      • 2) "see new nodes" (maybe this already exists? roam is certainly tracking it)
      • 3) @-mentions & notifications thereof
        • (we have a hack for this, that's honestly kinda better since it affords a lot of control)
          • although it doesn't allow easily mentioning more than one person, so that's an issue
            • I can think of a hack that would also fix that
      • 4) private pages (eg only users/groups tagged can see something)
      • 5) alerts for keywords used by others
        • could be a combo of the "see new nodes" feature (2) plus a filter, I guess
    • Timeline feature
      • kind of like the existing attribute tables, but specifically designed for making timelines. more on this to come.
  • Ideas for things to build right now
    • script to convert epubs into roam JSON import
      • this should be pretty damn straightforward with nodeJS
        • unzip
        • turn each html file into a page
        • detect glossary/index and do clever things
      • main challenges
        • images...
    • script to convert slack JSON export into roam JSON import
      • also pretty damn straightforward!
      • though a few design complexities
  • Things to do once there's a Roam API
  • Different purposes of a roam db
    • journalling/personal stuff
    • roamblog - collection of related articles published periodically
    • roambook - eg meaningness if it were on roam
    • ????
  • Examples of other public Roams
  • Collecting others tweets about this
  • cool stuff to play with