sigmoid.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
A social space for people researching, working with, or just interested in AI!

Server stats:

595
active users

#SilverBullet

0 posts0 participants0 posts today
Amanda<p>My next fools errand (after I finish fixing and reimplementing the weather station in Slint) will be remaking <a href="https://social.spejset.org/tags/SilverBullet" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SilverBullet</span></a>. It’s too janky for how important it is to me, and there aren’t any options. To save labour I’ll reuse as much software as I can. </p><p>- sync with syncthing (terrible on iOS but what do you do)<br>- markdown editing in Some App (I’m sure someone’s implemented it)<br>- a HTML-only viewing system (this is the part I make) with an edit button that triggers the markdown</p>
SilverBullet<p>SilverSearch full text search for <a href="https://fosstodon.org/tags/SilverBullet" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SilverBullet</span></a> makes search SO much better (faster, more accurate) than its built in version —&nbsp;it's a must have. Great community-built plug!</p><p>Try it! <a href="https://community.silverbullet.md/t/silversearch-fulltext-search-for-silverbullet/2528" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">community.silverbullet.md/t/si</span><span class="invisible">lversearch-fulltext-search-for-silverbullet/2528</span></a></p>
Continued thread

Or: Progressive Notes App. Analogous to progressive web apps, that start out with the basics and (can) functionality progress (get fancier) from there.
In #SilverBullet’s case: start out with simple notes, progress to links, queries and custom widgets, commands etc.

#silverbullet was amazing, until the bug i just hit, that had me lose the full content of one note… which was a complete draft of a blog post that took more than an hour and a half to write 😢

Didn't backup or synchronize in any VCS because I didn't realize I had to. I guess, always back up regularly.

Honestly, I'm fine with having some bugs with an open-source software system, but data loss with no builtin ways to recover whatsoever scares me enough that I'm unclear whether I'll keep using it.

Ok #Silverbullet has started glitching out for me in exactly the same way Org-mode and similar systems used to. That "rewrite, with 1/10th of the feature set" itch I've had is now getting much, much worse.

I'd have to do this in three steps:

1. Extend an existing Markdown LS slightly for autocomplete & context I'd need (backlinks, wikilinks, frontmatter, snippets)
2. Full-text search index
3. Web server that renders it all, read-only.

aujourd'hui mon processus de publication sur le blog c'est :

- j'écris un article depuis #Silverbullet, au format markdown, avec les annotations dans le yaml header
- j'ai « codé » dans silverbullet un système qui me permet de faire un `git commit && push` pour le contenu de mon blog
- ce qui va lancer une automatisation dans mon instance de #Forgejo pour build le contenu et le pousser sur mon site

Trop facile 😎

The idea that Internet is available everywhere I’m sure will happen any day now, but that day for sure is not today. This becomes super clear whenever I travel. #LocalFirst software still matters and I don’t see that change any time soon realistically. Still happy with the choice to now make this the default mode in #SilverBullet v2.

Continued thread

7. Bridging Lua and JavaScript APIs and values was actually more doable than I anticipated. They map quite cleanly if you’re willing to make a few compromises. One of few issues is to deal with the fact that Lua just has one data structure: the table, which functions as a list, a map and can be used as a set as well. And again, its start indexing at 1. AT ONE!!!1

Introducing #SpaceLua in #SilverBullet has been one of the best decisions I've made in the last three years of SB development. I foreshadowed how it would develop here: youtu.be/t1oy_41bDAY

And eventually this lead to a much cleaner SilverBullet v2. Intro video here: youtu.be/mik1EbTshX4

Ok, so I’m now a few months into building a custom (almost from scratch) #Lua implementation for @silverbulletmd dubbed #SpaceLua (for reasons).

A few things that panned out really well, and a few surprises that I did not anticipate:

0. General recommendation: don’t do this. Don’t just implement a full programming language because you think it’s a good idea. I also told this myself. It didn’t work. It was a “I’ve don’t this stuff before, I can do it again” type of deal. I was mostly right. But don’t do this.

1. Initially I opted for a custom interpreter (implemented in TypeScript) because I wanted to expose asynchronous (promise based) JS APIs to Lua, and I didn’t see how to do that nicely with a #Wasm-compiled version of the official Lua interpreter. Also I felt that having full control of the running system would turn out to be valuable down the line (I was right on this one).

2. I got the parser part mostly free. I found an existing Lua grammar for the Lezer parser library that #SilverBullet uses. Had to add a few things and had some struggles. This part was pretty seamless with a few glitches here and there.

3. Implementing the core interpreter runtime was actually quite easy. Lua is a mostly simple and small language. Again, I’ve done this before so that helped. Writing good test suites makes this doable and AI helped a lot generating those test suites (because it knows Lua).

4. What I didn’t anticipate is the pain in implementing the full Lua API, especially the `string.*` one which has its own pattern matching language (similar but distinct from regular expressions), which honestly I could do without. But it’s there, and people want to use it, so I need a full implementation. Issues keep coming up, though.

Continued thread

I'm definitely having fun hacking away at #silverbullet. 😄

Right now, getting used to using the #javascript import. Which can effectively pull almost any js module. And with #jsr being a thing... let's just say silverbullet instance is going to get weird. 😅

I'm honestly surprised it took this log to learn of this gem. Likely due to my still very much liking #logseq. Although... give me a few weeks... I'll likely build my own journaling system on this thing. 😇

silverbullet.md/API/js

silverbullet.mdAPI/jsAPI docs for Space Lua's js module, which provides JavaScript interoperability. js.import(url)Imports a JavaScript module from a URL. Returns the imported module.Example:-- Import lodash librarylocal lodashLib = js.import("https://esm.sh/lodash@4.17.

I am unfortunately now convinced that a solid 90% of my use of #SilverBullet could be improved by replacing it with a language server.

Presumably I can just fork one of the markdown ones and start tweaking it to add some features to handling the front matter.