back to feed

sometimes ya gotta use linux

2023.12.11

this is a post about learning the hard way.

aka: the only real way to learn.

the naive vision

i wanted to do urbit app development without touching linux. so i built a browser-based text editor called %eyas (soonTM to be %hawk). it was a good project. it won a prize. people told me “good job”.

and then i made this app, %feeds. i did 100% of the coding for %feeds from within %eyas. it was a pleasant experience and i was excited to get my work out into the world.

so on my distribution ship, i ran |merge %feeds ~taster-migrev-dolseg %feeds, =gem %only-that

it worked! a few people installed the app. and i kept on pushing changes.

the problem

a few days go by and i keep pushing changes. but i notice that the installs are taking forever. multiple hours to install a relatively simple app. what gives?

turns out that my |merge strategy doesn't work. you can't just pull in the most recent commit of a desk, you pull it's whole build history. even when used with only-that.

this is only really a problem with using with my editor %eyas, because %eyas never touches linux. this means every time you save the file, you commit to clay.

so whenever you'd install my app, you'd by installing a history of every time i'd ever saved a file in my app while developing it. sad.

the solution

i had to breach my dister moon.

now, i just copy the files manually through linux to the distribution ship and
|commit the old way.

luckily, after breaching everything works fine. the ships who already had it installed just kinda figured themselves out.

breaching moons is not that big of a deal, i guess.

urbit can't delete things!

who made this urbit thing anyways? it makes no sense! i can't delete a desk? i can't just copy in some files over the network? clay makes me mad sometimes. devs do something!