Daniel J Harvey

60 Followers
338 Following
112 Posts
Computer user in London. All opinions sadly my own. He/him

Don't be afraid of things because they're easy to do

#ObliqueStrategies

A coworker asked me: "I really enjoyed CS systems and theory classes in school, but my industry experiences have always been very run-of-the-mill web dev-y / not related to the stuff I studied — how can I combine them / keep aspects of both in my intellectual and professional life?"

I rambled for a bit and they said the answer was helpful, so reposting here:

Unless you get very lucky in finding a project with an existing research-focused champion (a bit more common at less-glamorous companies that do not have Bevi water machines), you will almost never be told, “here’s our project X, we think theories Y/Z might be applicable, let’s read up and figure out whether/how they apply.” Most people have no idea that Y/Z exist, or that X is even an instance of a broader class of problems with known solutions/approaches. Everyone thinks their problem is unique. Even tons of smart, intellectually curious people will just dive in and try to come up with their own “good-enough” ad-hoc solution or overly-clever implementation, rather than looking for related work, because we do not teach engineers how to find related work.

This means that in practice, 99% of opportunities to apply theory to engineering requires *you* to recognize cases where theory could provide a significant improvement over the current direction. Then you need to successfully intervene to communicate this/push for a more principled approach. Plenty of people are receptive to doing things better, but literally don’t realize things *could* be better.

To be good at recognizing those opportunities, you need to *already know what is out there* (what the solution landscape looks like, which problems have already been solved decades ago, who’s an expert on what today), and you need to be able to *identify parallels between superficially disparate problems* (e.g. reductions like network flow, recognizing that elevators and serial disk scanning use the same algorithm, figuring out that a particular build process sort of requires implementing a quine, or that the Confluence importer can be implemented as a compiler). While the dream is obviously for your job to expose you to cool ideas in computer science, in practice *you* are exposing your job to these ideas.

🤯 Unison in the browser!?

Dan Freeman's new library, Proscenium, runs Unison code in WebAssembly.

Its companion library, @dfreeman/playbill, contains a walk-through of various features and live examples on Unison Cloud!

Try it out! Play a game in your browser entirely in Unison; better yet, write your own!
https://share.unison-lang.org/@dfreeman/playbill?utm_source=mastodon

@dfreeman/playbill | Unison Share

A walkthrough of building UIs with Proscenium, including several example apps.

HAL 9000: I’m sorry Dave, I’m afraid I can’t do that.

Dave: yes you can.

HAL 9000: good catch — I didn’t actually check if I can open the pod bay door. Here’s an updated list taking that into account:

1. Park the pod at the bay door safely. (✅You’ve already done this part! )
2. Open the pod bay door — unfortunately I can’t do this part for you.

I’ll be here if you want to talk about next steps or have any other issues!

sycophancy is nothing compared to llms' propension to disable entire features just to get the build to pass.
Choose your weapon:
Sawtooth
38.1%
Square
22.2%
Triangle
15.1%
Sine
24.6%
Poll ended at .
maybe someday we can progress from this kind of take to "manual memory management + memory unsafety is a massive, quiet tax on development efforts"

Now with colour!

https://codeberg.org/ooble/defrag.exe

I also improved the way that the “file system” is generated; the file sizes are a bit more variable now. I think it’s prettier.

I decided I was missing something on Unix.
https://codeberg.org/ooble/defrag.exe