Fork me on GitHub

I had heard of sqlite, but only passingly. I thought the podcast about it's history was great!


Great podcast


nice there is a transcript too

Ben Sless12:08:26

Interesting discussion, touches a lot on complexity and its consequences


I love those games :)

Ben Sless12:08:10

To my shame I've never played any of them, but he touches many subjects - complexity, efficiency (work efficiency), hiring, computing

👍 2

If you play one of his games, Braid or The Witness, you’ll notice that he is both a fascinating artist and engineer, with a deep respect for his players. Everything is placed just right, the engines are handwritten, there is subtlety everywhere, but no noise.


He has strong opinions about things, probably a side-effect of being an artist. And some of them I very much disagree with. But playing his games and watching him talk and program has taught me about the value of deep consideration of our craft.

Ben Sless15:08:57

This bit has come up repeatedly recently People who build groundbreaking and new things will have weird and unacceptable opinions on other subjects as well


Braid is maybe my favourite game of all time. It's wonderful.

sheepy 5
ℹ️ 5

I’m going to coin a term called “Designer Magic”. Likely every programmer who builds UIs from bespoke designs/prototypes has experienced this: Prototypes always magically have the exact right sizing so everything from type to rythm is just perfectly aligned and has just the right proportions. And sometimes they do a thing that is even more magical, when something wouldn’t fit well, the layout inexplicably re-aligns itself or a font shrinks just enough for that particular case. It’s truly remarkable!


Make them build a version with English content and a version with the same content translated into German. That will mostly solve that problem 🙂

😄 4

Or Arabic.

😆 6
Ben Sless17:08:37

They'll probably not even render it correctly


We have to dynamically support switching between about a dozen languages, including German and Arabic, with the latter switching the entire UI around (so form fields are to the left of their label, as well as text displaying right-to-left). That has some "interesting" challenges for designers 🙂


I'm getting traumatized just reading that


That’s really neat that you get to work in a context that forces your team to think through internationalization/localization carefully.


Haha 🙂 I mean is it also on me, or us as implementers, to communicate design system ideas and the constraints and assumptions we have, and what leads to hacky workarounds and such. I’m trying to attack this from different angles, for one, teaching coding (web) to designers, secondly to work more closely with them and really going through the designs systematically to expose the nitty gritty and to learn how they think about a given design (what is important and what is the reason behind things), and last I’m also trying to learn some of the fundamentals of UI/graphic design and visualisation. So the above comment is more of a little tongue in cheek rant. I’m a big fan of graphic and UI designers. There is just this gap in terms of how we think that sometimes leads to funny stuff like this. Thinking about your @seancorfield suggestion: I might actually try and implement something like this! A set of “design debugging” questions that are tests for the robustness and system of a design. And secondly some method to separate regularities from irregularities to make the implementation go smoother.


One thing we did recently to help our designers was to write a small, standalone "template renderer", that takes their HTML/CSS/JS files and a JSON file with data in it and runs a local web server for them. We use Selmer for all our SSR web pages (our main app is React.js but we have several small apps that are SSR), so this lets the designers work with Selmer templates as their source and they can easily edit the JSON to see how short and long strings work in the UI, as well as being able to isolate all the "content" into the JSON file -- which then gives us backend devs a blueprint for how to generate the data (and what data is needed) as well as making localization easier (since there's no hardcoded English content in the templates).


That allows them to use whatever tooling pipeline they want (some giant Gulp thing) to produce optimized static assets that will work with our SSR model, and then they run a script to update the backend repo with those HTML files (and they upload the CSS/JS to S3 for serving via our normal frontend pipeline).


That’s beautiful!


is there a channel dedicated to the above conversations? imho clojure(script)’s simplicity is a great asset in bridging the designer/developer conceptual model gap. i am personally working on tools to bridge that gap.


Wow, some people say sometimes the Clojure core team is direct and harsh, but the homebrew team is a step above haha:


Yeah, I was pretty surprised by that but I understand their point of view. It essentially makes HomeBrew/core unusable for any JVM-based package that requires a specific range of Java versions that doesn't happen to include whatever "random" version of Java the HomeBrew/core team chooses to support.


And I was certainly unhappy to see HomeBrew install a non-LTS version of the JDK on my dev system! 😠


Do many folks use Clojure installed via homebrew? Looking at the above issues, I can see both points of view and I can't really see a way that they could be reconciled.


It reminds of the situation back when I used to run Linux. It was possible to install things like Eclipse or Tomcat via apt or yum, but I tended not to do it because Java stuff never really fitted well into the package manager's model of how dependencies worked. I wanted my choice of JDK to be completely separate from my choice of Eclipse/Tomcat etc.


i use homebrew for it yes. but there is (as mentioned in that thread) a formula? tap? that doesn't have the random jvm in it

👍 2

I use brew on macOS and Linux for the Clojure CLI -- and I use the official Clojure tap, specifically because of the way the HomeBrew/core manage Java-based stuff.

👍 5

brew tap clojure/tools/clojure something like that?


brew install clojure/tools/clojure


(that clojure/ folder was for the two early stable versions I installed without @...)


"The fact that other Java versions were previously possible was an unfortunate side-effect of java not being build from source as a formula." (laughs out loud) oh yes that's certainly it


Wow this is a really fun read. Haha. What a thread. It's time to infiltrate the homebrew team and fix this 😈


I guess we have to wait until the queue of errors is very long and the homebrew people yield to the very reasonable request of asking people which JDK they want and which is recommended when installing clojure via brew. =/


please don't treat this as a call to arms. there is a clojure core maintained version of this without the requirement


No action is needed. We have a well-maintained, official tap for Clojure and that's what is described on


the homebrew people have to deal with an enormous amount of different projects with different deps and build requirements. and trying to help out beginners in all of that is quite admirable. I think everything came to a successful conclusion for both sides and this really shouldn't be some rallying point

👍 3
Ben Sless05:08:24

For some reason I always felt dissatisfied with Brew. Having to refresh the cache for minutes at a time every time I want to install a small program was the bottom of UX IMO On another note, have you heard of Nix?


What I'm confused about is if that means they now build Java from source?

Jakub Šťastný15:08:14

@UK0810AQ2 nix is interesting, I've been tempted for a while, but didn't get to it yet. Would love to hear any experience from the community if anyone's got anything to share on that front.

Jakub Šťastný15:08:44

@U0K064KQV means you won't have to turn the heating on.

Ben Sless19:08:02

@U024VBA4FD5 I don't have experience with it, but it works for distributing immutable reproducible builds, which is nice


Quite thankful for the pass to make all the contrib libraries 1.0. Don't know why but just enjoy that

👍 3

Hey I got an unrelated question, not sure if I should post in #unrelated or here 🤓 I want to take video and subtitle files and chop the video up according to the timestamps in the subtitle files... I think ffmpeg can do the "chopping" stuff. Would the right (only?) way to do it with Clojure involve ze shell?


I vaguely recall someone recently releasing a lib that does the shelling out to ffmpeg... :thinking_face:


Also, it has babashka support babashka


Chris recently shared this library here on slack:

👍 3