Recent comments in /f/programming
twovests OP wrote
Reply to comment by eep in Game of Life with three species (gif) by twovests
this sounds like it'd be a fun project, are you willing to share the details? :0
twovests OP wrote
Reply to comment by voxpoplar in Game of Life with three species (gif) by twovests
:3333
eep wrote
Reply to Game of Life with three species (gif) by twovests
oh this is really cool
we were designing buildings based on 3D cellular automata a few years back but could never get the coding right so we just flubbed most of it
voxpoplar wrote
Reply to Game of Life with three species (gif) by twovests
Oh I love Life this is really cool
twovests OP wrote (edited )
Reply to comment by toasthaste in Game of Life with three species (gif) by twovests
https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life
It's an old thing that's relevant in computer science theory and is popular among nerds.
The rules:
-
There's a grid of cells. Each cell can be either alive or dead.
-
Each cell has eight neighbours.
-
Any live cell with two or three live neighbours survives to the next generation. Else, it dies.
-
Any dead cell with exactly three live neighbours becomes a live cell.
Different combinations of cells do different cool things. A game of life is turing complete, meaning it can (theoretically) be used to do any algorithm "real" computers can do.
My addition doesn't mean anything much, it's just shitty fanfiction. :D
toasthaste wrote
Reply to Game of Life with three species (gif) by twovests
how does the normal game of life work? I've never heard of it before, it sounds neat :0
Moonside OP wrote
Reply to comment by twovests in So what project are you working on? by Moonside
I was mostly joking, but I'm halfway done with the 1st of these books. It's definitely laborious, but interesting. It seems like things are faraway from production and changing pretty fast in that space. Some others: Agda, Idris, ATS (this seems scary). The most impressive Coq project I've seen is this C compiler: http://compcert.inria.fr .
Btw, juggling with proofs is very video game like though, I played with them too late into the night. That constant feedback! The triumph of writing Qed.
twovests wrote (edited )
Reply to comment by Moonside in So what project are you working on? by Moonside
Ooh I never heard of Coq, I'll definitely need to check that out eventually! Googled it a bit, it seems neat but it'll be too much for me to get into rn
twovests wrote
Reply to comment by voxpoplar in So what project are you working on? by Moonside
ooh i like this, it'll be interesting to see more!
twovests wrote
Reply to comment by lainproliant in So what project are you working on? by Moonside
Ooh is lost-levels published? It'd be cool to check that out
Moonside OP wrote
Reply to comment by twovests in So what project are you working on? by Moonside
I'm doing it in Python and following ~TDD~
Reimplement in Coq and automatically derive it from specification. Actually I've tried to learn proper testing habits in Haskell, but I think that I don't even have a specification atm so yeah haha.
Godot looks pretty good.
I've been meaning to look at the Postmill source code and learn about that too
Me too! I've been itching to Fix a thing or two there.
Moonside OP wrote
Reply to comment by twovests in So what project are you working on? by Moonside
Arbitrary precision integer arithmetic is just a mouthful for what is in Python long
and in Java BigInteger. Just integers that go arbitrarily big in absolute value. I literally had to google for the official name!
It might be that I don't understand enough about the music theory behind it, but why don't you trust ints? Is that distrust just for this application, or more general?
It was a bit of hyperbole, it's mostly that I've gotten a bit bored with the tricks we have to do in software to make things palatable for computers, instead of doing the most straightforwardly correct thing at first and then making it hairy in the name of efficiency. It's like we have a computer brain or binary fog or what you call it!
The big problem was representing notes so that they have correct letter names, the correct amount of accidentals and octave; this is enough to name them correctly and also play the pitch. I wrote convoluted and buggy versions of this, so I was motivated to do it Right. The original version was just storing these directly, but calculating intervals between them was convoluted, but I noticed that each note is some distance (interval) away from middle C. Notes can be represented as rewrapped intervals.
I represented intervals as pairs of integers (I can distinguish between augmented fourths and diminished fifths that way). I defined addition and inverse on them so it turns out that they are isomorphic to the additive group of integer points on a XY-plane, or Z². And as notes are just intervals from middle C in disguise, naming all of them correctly is easy since the bookkeeping is done by underlying presentation. It's about ten lines of code and half of that are signatures.
So it was just an easy thing to do, because the innermost representation really is infinite in two directions. That said, it doesn't matter much, because the largest integer is 9223372036854775807 and basically for my purposes about 1000 is enough, without doing a bunch of renormalizations.
lainproliant wrote
Reply to So what project are you working on? by Moonside
I'm working on a few different things, balancing load across them based on whatever I feel like working on at any given time.
-
moonlight
: A set of utilities for everyday C++ coding that make life easier, used in almost all of my C++ projects. It's effectively an overhaul of this which I wrote a few years ago: https://github.com/lainproliant/toolbox-cpp -
lost-levels
: A 2D game engine. -
bakery
: A python-based dependency driven build system: https://github.com/lainproliant/python3-bakery -
pixart-queue
: Part of a RPi project where the RPi is mounted in a shadowbox frame along with a 16x16 RGB LED grid.pixart-queue
is an agent running on the RPi which will respond to requests in a Slack channel and will add images, animations, or printouts to its circular display queue. -
jotdown
: An extension for annotating notes, tasks, and appointments on top of Markdown, along with some helpful self-organization utilities to go along with it.
twovests wrote
Reply to comment by Moonside in So what project are you working on? by Moonside
I don't know a lot about music theory but the arbitrary precision integer arithmetic sounds interesting.
It might be that I don't understand enough about the music theory behind it, but why don't you trust ints? Is that distrust just for this application, or more general?
twovests wrote
Reply to So what project are you working on? by Moonside
Current project:
- Conway's Game of Life with three different species. I was actually coming to this sub to post about this and complain about my mistakes lol. I'm doing it in Python and following ~TDD~, but I made the mistake of not considering diagonal neighbors, which, stupid of me?? I'll probably post more about it once I fix it up. I started it yesterday and meant to be finished today.
Games: I have a lot of game ideas that I want to write. I'm going to be using the Godot engine (https://godotengine.org/) and am waiting for it to hit version 3.
- Morph-ball game; a physics platformer where you use an assortment of bombs to maneuver.
- Weird dimension fuckiness; a puzzle game based in 5 spatial dimensions and 2 time dimensions.
- 2D-Time bullet hell; a bullet hell expanding on the 2D time concept
Learning:
- I want to learn Rust, so I'm going to create a Library-of-Babel sorta thing in it.
- I want to create a circuit design educational language that the Game of Life thing is sort of practice for. It'll be turing complete and a bit like Minecraft
- I've been meaning to look at the Postmill source code and learn about that too
School is starting soon though so I won't be making lot's of progress.
Moonside OP wrote
Reply to comment by hollyhoppet in So what project are you working on? by Moonside
Nah
hollyhoppet wrote
Reply to So what project are you working on? by Moonside
would it be cheating to say jstpst lol?
kleril wrote
Reply to So what project are you working on? by Moonside
Videogame. Think Zeldy / Majora's Mask.
Been working on it for a while, but it should be pretty clear I'm more coder than artist. Unfortunately all the interesting things are the underlying systems - which are in, so it's a matter of adding content & polish - so showing it off visually is... challenging? Hopefully the demo will end up being done Soon (TM), and actually have models & textures that aren't just explicitly placeholder.
voxpoplar wrote
Reply to comment by Moonside in So what project are you working on? by Moonside
On indefinite hold for being a bit too tricky for me. I have some other stuff I want to try out before I go back to it.
Moonside OP wrote
Reply to comment by voxpoplar in So what project are you working on? by Moonside
how's sonic
Moonside OP wrote
Reply to comment by musou in So what project are you working on? by Moonside
this sounds really neat! i love making music and i also love haskell (although i am only a hobbyist at either one).
It's nice to see another person in this intersection of interests, I wouldn't have guessed! I'm not a career programmer by any means, so Haskell is a hobby for me too.
have you picked a web framework yet? i've seen a few for haskell but haven't tried any.
No I haven't and this has been a point of procrastination for me. I think I should pick one, make something that outputs on the page the same [e♭,F,g,b♭,e♭,c,e♭,b,E,d] kinda string as my current program does, and refreshes it every time you click a button. Pimintel's app isn't much more fancy than that in the big picture, after all.
A problem is that there are lots of choices, but the situation keeps developing so I can't what's good. Year old blog posts are outdated at this point afaik.
voxpoplar wrote
Reply to So what project are you working on? by Moonside
It's been on hold since before christmas for various reasons but my current project is a little PICO-8 game you can play a very very unfinished version of here
https://oakreef.itch.io/hunter-wip?secret=N3Md4tiwDRa5e9N43HybE14tSbE
there's only 2 screens, 1 creature type and little to do
musou wrote
Reply to So what project are you working on? by Moonside
right now i'm in the early stages of writing a go (aka weiqi/baduk) server in the vein of online-go.com. i want to learn how to make game servers, and go is the simplest game that i play regularly so it seemed like a good choice. it also seemed like a good choice for Elixir, the language i use at work. i know a lot of other online game services use it. and when it comes time to write the front end i would like to try Elm again, but it's still a long road before i get to that point.
musou wrote
Reply to comment by Moonside in So what project are you working on? by Moonside
this sounds really neat! i love making music and i also love haskell (although i am only a hobbyist at either one).
have you picked a web framework yet? i've seen a few for haskell but haven't tried any.
musou wrote
Reply to Game of Life with three species (gif) by twovests
this is so neat. i haven't seen CGOL with multiple cell types before.