Judah's Workbench

Trying to publish artefacts from the things I work on. Mostly design and software, focused on interfaces that are practical and flexible.

Also a reading log.

By Judah, one of the creators of streams.place.


how do you make software that look "lived in"? folk practices and shit

In advertising, you are not remembered for the 1000 campaigns that you created that are forgotten, you are remembered for the 2 or 3 campaigns that cut through the noise. And in order to do that, to really be memorable, you have to make big choices. Of course, those 2 or 3 successful campaigns were financed by the other 1000 clients who received mediocre work, but nobody said advertising isn't a grift.

Typography tips for websites

  • Different font sizes for desktop and mobile
  • Having fewer than three nav links usually means you can avoid a hamburger menu
  • Please learn to usemax-widthso your body text stays a readable size on wide screens
  • Set all font sizes in em

When it comes to preparing a dinner party, you get visual, visceral feedback on your progress as dishes accumulate in the fridge or your dinner table.

DON’T call your app “user friendly”. DO explain that your new customer could “Log time with 4 key strokes”.

When it comes to projects, however, we tend to forget our dinner party planning. We finish a unit of work and then look forward, asking ourselves “ok, what next?” This is incredibly bad.

“Most men mistakenly assume that you look into show windows to find something to buy. Women know better. They enjoy window-shopping for its own sake.”

Webcraft needs to go on a break.

Webcraft needs to make money.

mfw i realise it’s so much easier to do creative work when ur happy

“He should have gone further than the poolhouse in search of his new life.”

“…half-assed effort only dug him from one cell to another.”

“He should never look back and never be heard from again. That’s what adulthood looks like and that’s what it costs. That’s what it takes to maintain the open independence of your seas; you have to leap out of the barrel and into the ocean, not seek freedom *in *the barrel.”

And being very, very careful about what you’re doing and why.

“In fact, thoughtful lightness can make frivolity seem dull and heavy.”

Obsidian is right about not trusting your notes to any other format other than plain Markdown.

First, you make a great app. Which uses a file format that is equally good, and then other people want to use it too.

Claude Opus is really good at thinking through things, working through a data model for a new app and it has to consider multiple tradeoffs (simplicity vs. detail) and it's doing really well.

Most useful is the ability to ask "what is this system not capable of?" and get a list of all the weaknesses.

Vigil (Judah's edition)

There's a chance we might give up and end up with the default soft box-shadow and default layout of the other dashboards.

But this is not terrible, feels like good practice at the very least.

Streams v3 will be about the web

I already have robust export, a usable API, and a pretty good Telegram interface (if I do say so myself)

The web dashboard could be done much better, and it would be what I focused on if I did a rewrite. The goal would be to allow the web to become a primary interface, Telegram can be optional. Some ideas:

  • A good web posting experience. Rich text editor, image uploads, quote functionality, separate archive and deleted posts.
  • Theme hints. Use a fancier UI to show theme colors instead of the plain select menu.
  • A fancier theme editor?

Anyway, if I do it, I will probably have to involve an actual frontend framework. Which is...fine, but maybe I can shift the dashboard to a different URL and keep regular pages on a simple server?

Cloudflare Workers

Cloudflare's docs for Workers are pretty terrible thanks to them having launched the ESM modules version in addition to the classic Service Worker model. The former has better ergonomics, but most tutorials don't apply to it. I was saved by Cloudflare Workers for Noobs.

But the local development experience is pretty good, solid tooling all around.

Now Bot

Going to open source this one, and only deploy it for friends and clients who want it.

Images, video, audio - Store in R2 and expose at the r2url/userID/key endpoint, maybe with request filtering

Text - Exposed at the api/userID key

Also be able to get r2 link using the API?

Okay, it looks like I should build the Now Bot on top on Cloudflare Workers, the pricing is ridiculously good.

Intended audience is me and the people I will make websites for.

Last day of thinking today, work starts again tomorrow. Bike is a really nice app btw

Actually, I'm just going to use this one. Not like I have much else to do with it.

Maybe I could do this by setting up a separate Stream?

Worst case, I realise what's missing from the app to enable this kind of "workbench log".

Should I try to document the design and development process for stuff I make?

Feels like this should be easy to do, just keep an open note where I write down everything I'm thinking through.

There still isn't a single offline-first notes app based on CRDTs lmao

i would pay like, $1000/month to not work a job that i hated.

2023-05-11 is not a human-readable time format, you need the month name (May).

longevity in software is a nice-to-have, but often too much to ask for

Dangling by a feature – I buy Macbooks because their trackpads are a joy to use.

The recurring reminder: you can do it any way you want.

"Notes, small essays, explanations, reminders, reading lists and questions on various (400+) topics."

Apple’s focus on user experience as a differentiator has significant strategic implications as well, particularly in the context of the Innovator’s Dilemma: namely, it is impossible for a user experience to be too good. Competitors can only hope to match or surpass the original product when it comes to the user experience; the original product will never overshoot (has anyone turned to an “inferior” product because the better one was too enjoyable?).

In some sense, everything I do is a direct result of my deep intrinsic laziness.

This design thing is hard

It’s hard to make things that don’t look like other things. It’s hard to make things with just text and colours. It’s hard to find the right answers to open-ended questions.

“This kind of pattern generalizes in all sorts of interesting and useful ways.

On the other hand, consider a case where such a boundary cannot be so readily drawn.”

The ergonomics of Sveltekit are good enough to make me want to abandon my "index.html" powered development practices.

It makes me slightly uneasy to be using a compiler, and replying on Vercel's build tools to deploy. But maybe I should try the node-adapter and trust that I can deploy my own stuff in the future if needed.

I need to sit down and decide what to ship next.

This is incredibly annoying.

"What does the task of philosophy look like when you do not believe in metalanguage, do not consider that history has been divided up by revolutions, when you do not take the new focus of mastery as having definitively overmastered the world? What sort of Enlightenment do you get when you put the Critique to rest? What emancipation is there in store, if any? Serres' philosophy is an attempt to explore these questions without being too influenced by what philosophy has done during the Critique parenthesis, let us say since the mid-eighteenth century."

"A scholarly work is recognizable to the continuity, homogeneity and coherence of the metalanguage used all along to subsume the periphery."

I am slightly annoyed by the voice of the internet writer. Yes it is light and clear and simple, but it also lacks the gravity that a 50 word sentence can have.

First, there is a question or direction. Which one is doing the interpretation? The critic, of course. He or she is the one who provides the metalanguage that makes sense of the infra-language of the text. Second, there is a question of size. The critic's vocabulary is enormously shorter than the text's repertoire. This is why the metalanguage mav be said to explain something. With one word in the critic's repertoire, for instance 'Oedipus' complex', you can explain four dozen novels and five hundred plays. Third, there is a question of precedence or of mastery. Who dominates the other? Answer: the commentator. Critics are much stronger than the text they dominate and explain, establish and analyse.

The mastery is so complete, Serres argues, that the texts, the novels, the plays, the myths, slowly disappear, buried beneath stronger and more powerful commentaries.

The French, it is well known, love revolutions, political, scientific or philosophical. There is nothing they like more than a radical upheaval of the past, an upheaval so complete that a new tabula rasa is levelled, on which a new history can be built. None of our Prime Ministers starts his mandate without promising to write on a new blank page or to furnish a complete change in values and even, for some, in life. Each researcher would think of him or herself as a failure, if he or she did not make such a complete change in the discipline that nothing will hereafter be the same. As to the philosophers they feed, from Descartes up to Foucault's days, on radical cuts, on'coupure épistémologique', on complete subversion of everything which has been thought in the past by everybody. No French thinker, indeed no student of philosophy, would seriously contemplate doing anything short of a complete revolution in theories. To hesitate, to respect the past, would be to compromise, to be a funk, or worse, to be eclectic like a vulgar Anglo Saxon!

I think it’s worth doing though. The Telegram limitation loses a lot of users.

And I have the right idea with theme editors, etc

If I make Streams a seamless posting experience from the web too, does that change anything fundamental about the app?

I’ve been thinking about local-first, and ways to make it easy

It feels like a lot of the libraries in the space are overkill, considering how simple IndexedDB is

I am designing a wrapper over static sites so I can make more sites for my friends. This is very fun.

“When you share something for free, the first thing that happens is that someone else will sell it.”

i think this is both cynical and true

I try to avoid “AI” because I want computers to be the opposite: reliable, predictable, reasonable.

That’s why I call this “narrative aircover” because it provides shelter and protection to the emerging identity while it’s still incredibly fragile.

“If you’re the type of person who wants maximally information-dense, serious, and formal content, this book is not for you. Nothing I will ever make is for you. You are wrong.”

The problem with writing is that I grow tired of my own voice. How do people who write for all their lives get over this?

finally getting back to Scrapple. This is going to be a good one, I can feel it

“Turns out, unfathomable tragic loss isn't very hard. It's easy, in fact. Easy in the same way that falling off a cliff is "easy"–gravity does all the work for you. It's not like climbing mount Everest, desperately putting one foot in front of the other. It's not like struggling to answer questions in a final exam. Tragic loss is just something that happens to you.”

The Plan

Here’s what’s going to happen. I’m going to stop working, except when I feel like it.

And then I’m going to ship six new apps, a bunch of essays, and a handful of mini-sites. They are going to be good and beautiful and true.

That is all.

I was just reading van gogh’s letters. I can’t find the passage, but he was saying the same to his brother: more or less, ‘if you make me choose between my work and love, I choose the work. I’d choose it every time.’ I completely understand

Everybody wants me to publish more writing, ain’t nobody want to pay me to sit down and write some banger ass essays

I don’t like making user-friendly software tbh, i create interfaces that are plain, and if you can’t figure it out maybe you shouldn’t use it

"i think UI sound effects should be good and specific enough that you can tell what someone is doing in the software without seeing their screen"

As a writer, every piece is a promise to the reader that it is worth their time. You need to either have a reputation of this worth, or constantly remind them that you are aware of this obligation.

I feel like there’s a lot of tricks that are thought of as tacit knowledge but are pretty discrete chunks of skill

Need to make lists of them.

In the introduction to The Souls of Yellow Folk, Yang notes that circa the writing of “The Face of Seung-Hui Cho,” he mused that, “as the bearer of an Asian face in America, you paid some incremental penalty, never absolute, but always omnipresent, that meant that you were by default unlovable and unloved.” But he concedes almost right away that this is “a dogmatic statement at once unprovable and unfalsifiable.” He writes, “It had no real truth value, except that under certain conditions, one felt it with every fiber of one’s being to be true.” This gives us a sense of Yang’s indecision, but it also gives us a sense of his potential to marry the realist and romantic approaches. If he allows that, as Ben Shapiro likes to say, “facts don’t care about your feelings,” Yang simultaneously pushes this contention aside: feelings matter anyway, regardless of the facts.

“it is a rare and precious thing to find an earnest lover of ideas”

“Bourne wraps cities, autobahns, ferries and train terminuses around him as the ultimate body-armor.”

i think i could get more done if i had like, working wi-fi lmao

Kinopio is for a very particular type of thinking in public.

mmm.page is for making websites, alongside a couple other similar tools.

tldraw is for quick diagrams and rough sketches. Excalidraw is similar, but offers more customisation.

Scrintal, Heptabase, Nodebook, etc. are all trying to be knowledge management tools.

SCRAPPLE will be digital paper. Shareable when required, collaborative when desired, and as much of an offline-first app as feasible.

“TikTok stole the “PoV” annotation from porn because that’s what that website is, along with all its mimics. Every TikTok content creator pornographs their own subjectivity. This is because—just as porn isolates then stimulates erotic sensation—the format of a TikTok (or any “first person” video on any site for that matter) isolates then stimulates the primary emotion. A depression video about solidarity with other depressed users isolates your sadness and then brings it into being. The video evokes one’s more depressive feelings and then asks, “Feel this depression with me.” Likewise, a video of somebody getting jumped captioned with “Random stranger gets assaulted by group of teenagers!” evokes anger and demands that you feel angry. But nothing else happens. You get sad, you get mad, you get horny—nothing happens. You don’t seek comfort or change your surroundings, you don’t bring about justice, you don’t court a significant other. You just sit there, stand there, frozen in someone else’s moment.”

reasons why there can’t be a decentralised Twitter:

  • latency (for video and other media)
  • live experiences
  • moderation
  • muting and banning (see bluesky’s problems)
  • changes to the protocol

the elements of web publishing

sidenotes, carousels, galleries, images with titles become figures, latex, edits over time, superscripts for sites, money tag,

the joodaloop studio, arranged as a grid with each item sized according to importance

to add:

  • anti-roadmap
  • changelog
  • users page
  • stats for nerds, tech

“idea magazine asks what does it mean to have an imagination in dangerous times? the imagination, to me, has always been an interface. it’s already a representation that’s computed turbulent strands and half-thoughts into something understandable. can i ever know what comes before the thought that was reduced in the thinking valve?”

“Alarm bells should go off any time you open your web browser, poke around for a few minutes, and close it feeling roughly like you had turned on the television and found that “there’s nothing on.” Because if that happens, it means either that the Internet has somehow become less dynamic and informationally rich than is commonly thought or, more likely, that you’re now using it like the library patron who, having fallen in love with the periodicals section, has forgotten all about the books.”

“The advantage of massive input is that you don’t need to force yourself to stop to ask all these questions (ie forcing yourself to slow down) or to slow down to write notes. In my own experience learning biology, the reason why this worked for me is that when starting in a new field, there are a lot of things that are unclear to the novice if they are important, even things in textbook. Maybe nothing else you’ll ever see again will leverage that concept. That’s highly likely in bio. When you know that most of what you are reading may not be important, forcing yourself to take notes and make SRS prompts makes the learning process slower and not rewarding at all. The massive input approach gives you permission to skim, jump ahead, and go on tangents.”

“Maybe it would make sense to refuse to speak to anyone about your creative work for, say, a year, and not read anything new on the internet, and not look at anything that anyone else makes or says in that time. But instead having a discipline of working and building on the previous day’s work, every single day, and seeing where you get to by the anniversary.

Or, as a country or a company, get smart people who are young and don’t have built-in filters yet, and just set them to work – freely but on their own. And every so often, dip in and pluck out something from that orthogonal world and bring it back to our world, and see how it differs.”

“A good sentence in English has a structure that begins with the second most important element, moves to the least important element, and ends with the strongest element. The pattern is 2-3-1.”

Going to stop giving out all career advice other than “do a lot of work and make friends”

“My only plan is to keep coming to work. . . . I like to steer the boat each day rather than plan ahead way into the future.”

Excerpt From
The Outsiders

Phil Meek told me a story about a bartender at one of the management retreats who made a handsome return by buying Capital Cities stock in the early 1970s. When an executive later asked why he had made the investment, the bartender replied, “I’ve worked at a lot of corporate events over the years, but Capital Cities was the only company where you couldn’t tell who the bosses were.”

Excerpt From
The Outsiders

…on the effectiveness of this philosophy. Burke recalls Smith saying, “The system in place corrupts you with so much autonomy and authority that you can’t imagine leaving.”

Excerpt From
The Outsiders

When asked whether this was a case of leading by example, Murphy responded, “Is there any other way?”

Excerpt From
The Outsiders

As Burke told me, “Our relationship was built on a foundation of mutual respect. I had an appetite for and a willingness to do things that Murphy was not interested in doing.”

Excerpt From
The Outsiders

“For years I’ve tried to make the ending of whatever piece I’m writing have a little thump right at the end, a bit of drama to make the machine stop. I can’t remember where or who I stole this technique from but at some point I noticed that the best writing always ends in crescendo, rewarding the reader for getting to the final word. Through experimenting I eventually figured out that the best way to force that orchestral ending is to write the ending as you normally would and then mercilessly cut chunks out of it and rearrange the pieces, hoping to find the best ending that’s hidden in there, hoping to find that satisfying thump.”

“Brute force (and a good deadline) is the only way to make progress sometimes.”

“the imagination, to me, has always been an interface. it’s already a representation that’s computed turbulent strands and half-thoughts into something understandable. can i ever know what comes before the thought that was reduced in the thinking valve?”

“A possible rule of thumb until things become clearer: before getting too deep into a new field, consider whether you’d be OK if it became an old-fashioned hobby that you only do for yourself.”

“I have come to realize that both capitalism and Marxism are essentially rooted in industrial society. They are like the proverbial generals fighting the last war. We need to get past both of them.”

“And I credit him with my returning to Christianity. In a sort of physically deterministic sense, he is, mechanically, the cause. Without him it could have taken me ten more years, or twenty, or the rest of my life. Not because he argued with me, but because his very life was testifying. His very being, was witness. He was living in the truth, and I recognized it, and it stuck in my brain for ten years.”

“You can tell Despair is a sin, because you are tempted to despair. It is a temptation. It is “easy”. In despair, there are no more demands of you. In despair, you are truly free. This is the freedom the devil promises us.”

“One of the most interesting ways to input data on the mobile is the camera.”

I think Twitter might actually be fine, if they don’t break the actual infra past a point of no return. Rebranding will cost them revenue, trying to be an everything app will fail and cost them even more. But the users should be fine, just have to live with the ugly aesthetics of the whole thing.

I’m not super happy at all with the layout of the main page - I was trying to keep it minimal but it somehow ended up cluttered.

The biggest thing I’ve struggled with is how to display and showcase the things I’ve worked on

“Finding good people is by far the hardest thing…finding great people is very hard. Even finding remotely reliable people. Even before we opened, when we were training staff, we must have lost probably 50%. 50% turnover over the course of a few weeks. Which is not abnormal.”

Becoming the best in the world at something is a narcissistic pursuit because it does almost nothing to better serve your users.

“Working on an unfashionable problem can be very pleasing. There’s no hype or hurry. Opportunists and critics are both occupied elsewhere. The existing work often has an old-school solidity. And there’s a satisfying sense of economy in cultivating ideas that would otherwise be wasted.”

iykyk

“In relation to Brian Eno’s Music for Airports… what would Music for Browsing look like?”

“An individual’s life can continue with an inertia that will lead them on to the next year or decade.”

“I was reminded that we never just read or listen to or “consume” content—these are all nice euphemisms which downplay the reality. In truth, we commune with it.”

It was kind of stupid of me to even consider being employed, I have at least 25 things I want to do.

user drop-off is crazy at the moment, will probably only get worse

A lot of people, in my industry and others, see all of this as a drag, a distraction from the central mission of their team. But I’ve come to consider it the most important skill for anyone building teams—and to believe that, to the extent I have any unique skill, this is it. In the work context, managing the complexity around people is the most important skill for anyone building a business. As the gaming company Valve puts it: “Hiring well is the most important thing in the universe.

“A great solution for people feeling like they don’t have permission to fix things is that they meet with the CEO every day and you remove whatever’s in their way. You tell them — nothing can get in your way. Not resources, approval, someone saying ‘I didn’t know I could do that.’ When you do that, the first meeting is an hour. Within a week, it’s three minutes. People feel that they have the power to make a difference. I use the technique with CEOs all the time. People think it’s somebody who’s in their way when in reality it’s the system.”

Capitalists are by definition not only personal risk takers but, more to the point, cultural risk takers.

Perhaps the best way I can express this idea is to say that the question, “What will a new technology do?” is no more important than the question, “What will a new technology undo?” Indeed, the latter question is more important, precisely because it is asked so infrequently.

There are certain pieces of the blogosphere canon that we all have read…

Logical Empericism

A.k.a. logical empiricism, neo-positivism. A philosophical movement — if you will, an anti-philosophical movement — inspired by Russell, Wittgenstein and a general disgust with metaphysics and Europe’s going to hell after the Great War; British empricism in Continental dress.

Are tweets still easier than typing here? I don’t think so, other people use this app a lot.

I think I only really care about people replying to my tweets, so I only really use this place as a way to store ideas.

As someone who had a good run in the tech world, I buy the theory that the main reason successful tech founders start another company is to find out if they were smart or merely lucky the first time. Of course, the smart already know they were also lucky, so further evidence is unnecessary. It’s only the lucky who want proof they were smart.

  • Matthew Butterick

Entrepreneurship is taking responsibility for a problem that you did not create.”

I think this is true at multiple levels, within the firm itself, for example.

Forgot how much fun Ribbonfarm posts can be. I think he’s gotten more rambly over the yesrs though.

I think it’s like, probably impossible to keep a band together past ur teenage years. Or maybe not. We’ll see.

Blogging is harder than it should be. It’s just a bunch of Markdown files and a build process. Why can’t we slap a GUI on top for free?

Okay, look. I want to make more websites. But I have so few tricks up my sleeve.

Where do I get more tricks?

I’m going to try using this as a daily log.

  • Deployed new joodaloop.com
  • Fixed a couple bugs on Streams
  • Tweeted a bunch
  • Pushed the limits of the theme-edtior, you really can do a lot with it.

“And that is something that I’m more and more aware of as I get older – sources of joy. It’s good to diversify them, to keep track of them, because it’s way too easy to run out. Or to end up with just one, and then lose it.” - Tom Macwright

Quotedrop within a Quotedrop??

Nope, replacing that with scrolling to the drop that is in the iframe.

Really interesting idea from Abhimanyu, using <iframe>s or adding Drop-quote functionality. Will add a command for this too.

Okay, that’s it. Maintainance mode from today onwards. Fix up do100things. Make sure Streams is smooth from onboarding to API. And then the only web stuff I will touch is my personal site.

If you see this message, it means the POST endpoint works…

With both markdown and HTML

v1 is finally done

It’s got a theme editor, RSS feeds, a JSON endpoint, half a dozen webfont options, and the streams.place domain is purchased and ready to go.

All that’s left is to write a guide, and deploy this thing.

Finally set up a local environment for the bot, time to start fine-tuning the themes.

I can’t seem to stop thinking of, and wanting to create, software products.

RIP my Subtack.

How does time-based search work on a UI level?

With a text input box, I guess.

“It’s almost as if a website is stuck in this limbo where you’ll either have to acquire some tech skills to run it or you’ll have to depend on a platform. It’s honestly a bit depressing.”

Website Complexities, Manuel

While I respect the design choices, Gwern’s site actually has pretty poor UX (weird links, async loading)

“Set your own constraints: “I won’t use circles”. “I’ll only use 2 colors”. “ I’ll only use one typeface”. Keep it for yourself. Your client doesn’t have to know. You will push yourself out of your comfort zone, and have to be creative to solve your designs. Constraints will make you more creative.”

Practical Advice for Designers

There’s a quote attributed to J. Paul Getty that acknowledges the limits of advice from people who succeeded in just one field: “My formula for success is rise early, work late, and strike oil.”

“The prototypes are the work, which means they are part of the final product even if you threw them away materially.”

the production of cheap literature, whether daily newspapers or books, is without doubt the affair not of those interested in books but of men of business interested in money. They do not ask themselves: how well can this thing be done? but: how large a market can we ‘tap’?

An Essay on Typography

There’s a class of beliefs that are really useful to a small subset of people, usually at the cost of hurting everyone else. Not exactly “rich people deserve their wealth” but more like “you can get things by trying harder”.

Just realised that I can write a massive essay explaining all of economics from the ground up and nobody can stop me

I should go back to working on my website, I could do that shit for days on end.

What should I do with inline images?

If I put them within a long paragraph, they look like this.

Tufte CSS provides tools to style web articles using the ideas demonstrated by Edward Tufte’s books and handouts. alt Tufte’s style is known for its simplicity, extensive use of sidenotes, tight integration of graphics with text, and carefully chosen typography.

sigh guess I’m only 15 tasks away from the beta launch

Live log #3

Can i afford to host high-quality images?

Turns out the answer is yes, a 5.2MB image gets stored as 200KB on Telegram

another way to delete messages: edit them to be a single character (like “.”)

Live log #1

Finally got images working, time to bring in more beta testers.

Someday I should make a list of the dozens of Contents page designs I’ve gone through while designing my site.

But meanwhile, you can find most of them here.

A Text Renaissance

There is a renaissance underway in online text as a medium. The Four Horsemen of this emerging Textopia are:

  • Roam, a hypertext publishing platform best understood as a medium for composing conspiracy theories and extended universes.

  • Substack, a careful and thorough ground-up neoclassical reconstruction of the age-old email newsletter.

  • Static websites, built out of frameworks like Jekyll or Gatsby (full disclosure: a consulting client).

  • Threaded Twitter, a user-pioneered hack-turned-supported feature that has wonderfully revitalized the platform.