Skip to content

Instantly share code, notes, and snippets.

View sigilante's full-sized avatar
☢️

Sigilante sigilante

☢️
View GitHub Profile
@sigilante
sigilante / value-creation.md
Created February 6, 2024 19:17
The Urbit Founder Equation

All serious Urbiters today are on a spectrum from pure builder to pure founder. This is not a problem—it's related to Riva Tez's remark that Urbit is a network of priests who need merchants. It's something like the employer/employee divide (at the extremes), but most of us are a bit more awkwardly in the middle of that span.

Becoming a founder means living in a world with an asymmetric payoff matrix. To found something means the opportunity to create massive value (rather than eke out minor value), and likewise to capture all or a significant portion of the created resources or streams.

Urbit seems to be trending towards a world wherein there is a slowly-growing pool of builder–founders that are perhaps housed in relatively fewer organizations. Urbit Foundation is growing in size and scope. Some other organizations have proven unable or unwilling to work within the constraints of building a hundred-year computer. The Aegean vision points towards a co

@sigilante
sigilante / hush.md
Created August 15, 2023 14:34
`%hush`: Hoon Userspace Standard Hardware

%hush: Hoon Userspace Standard Hardware

The internal Urbit standard library, as contained in hoon.hoon and zuse.hoon, has largely been architected for building Hoon itself. This means that one of the highest-leverage software development efforts we can make is to produce a middleware userspace standard library that does everything a “normie” dev would want, with names such a dev would choose or guess. We can improve the non-core developer experience by defining and producing a set of standard libraries with intuitive names and interfaces. A userspace standard library will provide similar affordances to those available in common languages with larger user bases.

Several new libraries need to be defined. This will presumably be distributed via %yard.

  • /lib/string, https://github.com/sigilante/string (ready)
  • /lib/vector, C++ std::vector-style templating
  • /lib/list, convenient list operations which are currently nonexistent (enumerate, zip, product, etc.)—maybe a general it
@sigilante
sigilante / hob.md
Created June 29, 2023 00:52
%hob is a tiny %gall

%hob is a tiny %gall

As a stepping stone to composing full %gall apps, we propose %hob, a userspace framework for producing “toy” agent-like applications, called brownies.

Like %spider, %hob is itself a %gall agent that instruments other running processes. It wraps the %hob mini-agent, or brownie, with the standard Gall-scale boilerplate (including +dbug), allowing for straightforward interaction with the running brownie through the Dojo.

The brownie's state is defined in a $state block at the top of its file, e.g.:

+$  state
@sigilante
sigilante / hoon-prime.md
Created June 20, 2023 15:20
Hoon Prime: A Discipline for Userspace Code

Code accessibility cannot be an afterthought for Urbit development. Hoon has had a reputation for being a language of dense expressions, which we believe is now being cleared by sunshine. However, Hoon's extensive sugar syntax and irregular expressiveness can make it challenging for those relatively new to Hoon to decipher programs.

Code accessibility must be a priority for userspace Hoon. We can support developer learning and entry into the ecosystem by defining a subset of Hoon syntax that we adhere to in all of the appropriate guides and some of the userspace code.

Let's call this subset "Hoon Prime" (H´). Hoon Prime will be a code discipline within Hoon to promote a clear pathway for newer developers to understand the nature of Hoon programs before needing to grapple with the entire panoply of syntax and runes. Hoon Prime may not alway be the most concise Hoon code, and it will likely fail to maintain certain well-established preferences. (Even if there is a "better" way to write it, we should pre