4-20 Blaze it

303 Cush is lit rn fam.

Except, there’s a bunch of chegs or something here, and they’re being loud and annoying.


Otherwise, today was a good day - the DH was good, Hackers was fun, OS was fun, and I won at pocket tanks. Oh, and I got i3 working!


OK, seriously, there are 4 chegs here sitting in opposite corners of the lab screaming to each other. I might crash their computers to spite them. And they just called Catholicism a cult.


Describe Linus Torvalds’s upbringing. In what ways did it resemeble yours? In what ways was it different? What elements of his childhood contributed to his development as a hacker? Are [hackers] born or raised?

Strangely enough, I wrote a blog post on Linux Torvalds before. But anyway, I, too, was ugly - I had one of them night braces, acne since I was like 7, and glasses. Wait. He wore jeans? The worst article of clothing?!? And the youngest in his class? I’m the oldest in my class (plus or minus like 3 people) and always wear shorts. Oh, he didn’t work at grades either. Neat. I guess I’m not the anti-tarball after all.

Anyway, he seemed to have an experience similar to many of my friends and I - nerdy, but not bad at sports. Fascinated by electrons. I myself loved typewriters and other mechanical things. AND FINLAND HAS PERMACLOUD TOOOOO! Except I don’t know any lutherans. That’s not true. I took two classes with one here. Weird.

Wait, I think my crashing might have gone away. I gotta go find some wood to knock on.

Hackers are born and raised, in south Detroit.

Linus Tarballs got introduced by old man computer. It’s such a shame Linus didn’t stay a journalist. Maybe he would have become a contributor to OrphanSource instead of OpenSource.

OK, I feel a little guilty about not answering this rightly. I’ll just post some thoughts, I guess. I agree about how less complex computers are good. The one good thing about modern computers and technology though is you can literally make them yourself from scratch for dirt cheap. Like, I bought a Z80 processor for $3. Since it has no minimum clock frequency required to be stable, I can single-step instructions by hand with a button - I can even use wires to set the individual memory bits as they should be read in. For just a couple of more moneys you can buy all the address decoders, serial UARTs, RAM, ROM, and clock oscillator things you need to make a great 1980’s style PC. You can even just buy an Arduino and have it pretend to be all your peripherals and still learn a lot about how CPUs do the thing. I guess that’s one thought. To quote the guy making me write this, “w/e”.

Describe what drove Linus Torvalds to create his own operating system. What as his original motivation? What resources did he have? Who did he work with? How much planning or how serious did he take his endeavor?

It’s funny. Linus remembers his time with his computers. I guess I remember my time with whatever programming language I’m using the most, or even what operating system I’m using.

44 minutes without a crash!

I feel like OpenBSD!

He seems like he wanted a floppy drive, and was mad that floppy drive drivers sucked, so he started writing his own, and then the OS lied to him, so he disassembled it.

I really want a vector display asteroids game. I’ve been considering re-yoking a CRT for it.

Then he started liking Unix because of Professor Christmas Tree and his Minix. Wait. Maybe that’s why all of the Pokemon professors are named after trees.

OK, I’m going to go help Breezy with her Algs.

What itch do you currently have? That is, what sort of problem or project do you wish you could solve… just for fun?

Um, ooh! I actually have an answer for this! So, for the past little while I have wanted to do a thing. It’s related to one of my other projects. Basically, what I want to do is to build a 2D toy robot simulator with lego-like pieces. Users could snap together 2D blocks of components such as structural pieces, wheels, motors, sensors (such as range finders which report distance to nearest anything within a cone, point cloud sensors which do the same but over a sweep of angles, color sensors, 2D cameras which give colors over a sweep of angles, “gps”es which give inaccurate absolute position measurements, accelerometers, gyroscopes, etc.), batteries, radios, and others. The structure of the robots would be stored as a tree, because trees are cool.

Users would also write code for their robots, which would would run autonomously. I’m thinking that the robots would be placed into some sort of arena where they have to do some task. Users would write a setup function (which is run once) and a loop function (which is run periodically, say at 10-50Hz), similar to how Arduino does it. However, I have a twist - the robots would be coded in a LISP, because they’re easier to process. User code would have access to the robot tree, and each component in the tree would be a function. As a tree, each component is the car of a list, with the components attached to it in order as its cdr.

For instance, say we have the main chasis (a square with 4 places to put things), a structure (another square with 4 places to put things), and on that structure we have a light sensor and a wheel. The robot tree would look like this:

'(chasis '(struct '(sensor) '(wheel) '() '()) '() '() '())

The components in the list would act as functions and take different arguments depending on what the do, as well as return different things. For instance, a wheel might take a power setting between -1 for full reverse and 1 for full forward (with 0 as stop, .5 as half forward, etc) and the light sensor might take no arguments but return a floating point luminosity value. Say we want to run the wheel at the power of the light sensor - we could do:

((caaddadr robot) ((caadadr robot)))

But obviously you could do things like:

(let [WHEEL (caaddadr robot)
      LIGHT (caadadr robot)]
    (WHEEL (LIGHT))
)

And things like

(let [WHEEL (caaddadr robot)
      LIGHT (caadadr robot)]
    (WHEEL (* 2 (LIGHT)))
)

Additionally, users could do this as a multiplayer experience. Users could design and program their robots (and obviously save them and edit them later), then when they feel like it, they could enter them online to play different games. For instance, there could be a soccer server where two teams of three players upload their robots and they place 2D soccer against each other. All programs would be made deterministic, so for people to play with / against each other all they would need to do is have copies of the other users’ robot trees and code. So, the server could be very simple as it would just have to forward the initial messages, then the clients run all the things on their own.

That’s my idea. DO NOT STEAL


Leave a comment below! For issues with this website itself, please describe the problem to issues at johnwesthoff dot com.
For urgent questions or comments, shoot me an email (address provided on my GitHub profile).