I try and install it, almost two hours later, I can’t get the f***ing thing to run. I get paid to do this for a living, that’s how good at least some people consider me, and yet I can’t draw a picture on the screen because of build errors so complicated I can’t even begin to understand what’s causing them. How did we get here? Why can’t I use my computer to do almost anything that isn’t bootstrapping a web application?!

@neauoire @jcmorrow Because you chose a new stack, perhaps? If my goal was to just draw a picture, I could easily use Processing, but I would have a hard time if I decided to do the same thing with a language I had never used.

@neauoire @jcmorrow I guess my more general point is: you will become accustomed to the trade-offs and quirks of your day-to-day interfaces and languages. To an outsider, they are likely arcane.

@stephen @neauoire I hear that. Setting things up is always a bit of a struggle. Perhaps this is horribly misguided, but I'd make a comparison: a crayon can be used by a four year old as well as by a master artist. I don't need software that can be used by a four year old, but I'm upset that it requires an advanced degree to express yourself artistically using software.

@neauoire @stephen @jcmorrow I think we should discard linux and make a new lisp machine like operating system

@neauoire @jcmorrow I don't agree. To do it in the exact way you want might be a challenge, but to use the given analogy, you can't use a crayon to make an oil painting. Execution requires time and skill regardless of medium.

@neauoire @jcmorrow

function setup() {
createCanvas(400, 400);

function draw() {
point(width/2, height/2);

@stephen @jcmorrow It doesn't work for me, it's stuck downloading assets that returned 404, my internet is a bit crappy.

But I'm taking that what you mean would be to clone that p5js repo, spin a localhost, and run that processing code?

I hope it doesn't require too many weird dependencies, but let's say I went through that process, it's not what I would call painlessly drawing a pixel on a screen.

@stephen @jcmorrow Well, I do plenty of that, all my tool relies on the canvas.

I was recently invited to meet with Google's canvas team. They've showed me the megacluster of computers that is required to build and test Chrome.

I've been trying to find a dev solution that isn't so catastrophically energy hungry, so I can draw some pixels on my screen.

@neauoire It sounds to me like you should take a stick out onto the beach. It's the best and most relaxing way to draw.

It also doesn't require child slaves cobalt mining in the global south.

@neauoire @stephen Yep. I agree that processing and p5.js is an impressive thing, and is probably the best answer to this question right now. That said, something that requires a modern browser to run can not IMO be considered "dependency free". That's a massive dependency!

@stephen A piece of software required to run another piece of software?

@jcmorrow Then you can follow that logic all the way down to the kernel for any implementation of "draw a pixel to the screen".

@stephen That's true! I completely agree. An OS is, generally, a giant dependency. If I could make it not that way, and still write code that produced art, I would be over the moon! I realize that that is a weird thing to say in a conversation about software, but that's how I think about the problem.

@jcmorrow Knitting is code which produces art – maybe try that? 😅

Alright, well, I guess I'll stop feeding this particular troll then 🤷

@TeddyDD @neauoire @stephen @jcmorrow I made a little library for myself to draw pixels on canvas

Not sure if this is relevant, but this is what I use for many of my projects

@neauoire @stephen @jcmorrow legacy method that still works on linux (virtual terminal) today: writing to /dev/fb0

for i in $(seq 1000000)
echo -e "\xff\x00"
done > /dev/fb0

@neauoire @eel @stephen @jcmorrow

This, btw, is essentially how you can draw stuff on the #norns. It's just a plain ol framebuffer /dev/fb0. Nothing fancy about it. Here's a small example for the norns that I wrote in C:

There's no "modern" way to draw pixels on screens, because most people want to draw a shitload of triangles instead. That's really slow to do pixel-by-pixel. So slow, that we've collectively built special silicon (GPUs) and lots of specialized pipelines to accommodate drawing tons-o pretty triangles.

@paul @neauoire @eel @stephen @jcmorrow To be fair, the challenge is to compute every pixel onscreen 60+ times a second.

From what I've seen that requires extensive low-level and high-level optimizations, whether or not you do so by creating special hardware to parallelise it. Computer graphics is fundamentally slow.

@alcinnz @paul @neauoire @eel @stephen @jcmorrow You can mmap() that device into your local address space to gain raw read/write access. That's how most console graphics programs worked back in the day.

@alcinnz @neauoire @eel @stephen @jcmorrow I find the fact that computer graphics fundamentally slow to be one of the best parts of the field. You get to actually use and throw cool algos + data structures at your program, see dramatic improvements, and get a pretty picture at the end of it! With audio DSP, I've found it more challenging to utilize concepts more rooted in CS. It's more focus on EE than anything. As a colleague of mine once said, "it's all multiplies and adds eventually".

Another neat thing about computer graphics is it's pretty "full stack", it concerns itself with everything from the wave equation to low level computer architectures that the programs run on. It's made me appreciate Toy Story way more.

@paul @alcinnz @neauoire @eel @stephen that's a fair point! As a programmer, the complexity of graphics is alluring (I've built a ray tracer for fun, I get it!). What's *not* alluring is coming at it from the angle of someone who wants to use language to create visual art. There, it feels like a slog more than I think it should.

@eel @neauoire @jcmorrow That's awesome. I was very tempted to say during this conversation, "make ASCII art."

i am waiting to test an mpeg video player written entirely in bash now! 😁😎😉
@neauoire @stephen @jcmorrow

Sign in to participate in the conversation

Merveilles is a community project aimed at the establishment of new ways of speaking, seeing and organizing information — A culture that seeks augmentation through the arts of engineering and design. A warm welcome to any like-minded people who feel these ideals resonate with them.