Okay, dove in headlong with Duxtape: I’m beginning to see what Dat and Beaker really are like—in a practical sense. I’ve also spent so much time debugging that I need to keep more of a diary of what this transition is like.
Beaker is experimental—and I’m tempted to quit it sometimes, because something doesn’t work. However, I’m learning that quite a lot DOES work—and I am just bumping my head against edge problems. It is one of my tultywits, though! I need to push for it—there isn’t anything nearly as promising right now.
Problems I’ve run into:
Sites don’t stay seeded when you close the browser. (Major.) This is a problem with Duxtape—people will create a tape and then close the browser. I sometimes find myself doing this! Since Beaker is kind of like a browser AND a server, it makes sense to keep Dat running as a daemon. And, like the link describes, to keep a system tray icon running.
There’s also a related issue: ‘increase default seeding duration’ that seems appropriate.
(Along similar lines, I wish datPeers could continue running on sites that you’re seeding. This is tricky—but it would be REALLY cool to have a kind of service worker that could access datPeers for an archive. This way a Duxtape could continue to advertise itself while it’s being seeded. I am NOT complaining, though! DatPeers is sick—I love having it.)
Large files uploaded through writeFile crash Beaker. (Seems major.) I’ve filed a bug with some clues as to where the problem is. You can definitely upload files through Beaker’s library pages—the problem here is that my Duxtape editor doesn’t allow large music files. It would be great to figure this out. Some platforms crash even on ~8MB files.
The globalFetch API doesn’t work just like the Fetch API. (Minor.) I have now worked around this, but it was frustrating at the time. I also filed a bug, specifically related to redirects. This is pretty easy to fix, but illustrates that experimental APIs aren’t hammered out yet (obv).
Address bar problems on Linux. (Minor) If I install basic Ubuntu, these go away. So
this has something to do with my dwm setup. I’ve actually
the problem! The
isVisible method is always false—for some reason, the
window manager is not reporting this correctly. As a result, I cannot ever type
into the address bar. This seems like an Electron bug, but who knows.
Things I’m discovering:
Dat really isn’t a replacement for HTTP. For example, I think Webmentions are better done on HTTP than on Dat. And, really, Webmentions are just the dead simplest form of a REST API—which, I’m not sure how such a thing would look on Dat.
There also isn’t a “server-side” with Dat—and this is important when it comes to something like permissions. In a way, I wonder if Github is showing us the avenue: the code is all distributed, but the centralized workspace assists negotiating collaboration—although it would be nice if more of it was distributed: the logins, the issues, the messaging. I could see Dat and HTTP having the same relationship in Beaker as Git and HTTP do on Github.
(Still dreaming more dreams for this page…)