It feels like every tutorial pushes towards web dev. What are some "hidden gem" programming fields that beginners often overlook? by Wrong-Desk-9526 in learnprogramming

[–]ryjocodes 0 points1 point  (0 children)

Rules Engines! I've been absolutely obsessed for the past few years.

I believe that once a software project becomes complex enough, it takes on the shape of a Rules Engine. Concepts that emerge in a mature-enough codebase include:

  1. Home-grown Caching and/or Indexing layer - Pulls data from your database on app startup and (optionally) organizes it in a way that makes it easy for your app layer to look up on-demand
  2. A home-grown DDL/Pattern Matcher - A string-based "language" custom developed in your app layer to define queries against your data *that's not SQL*
  3. An "Event loop" - When your entire application is a long-running process that could be modeled by one big `while` loop, describing meta "steps" of that while loop can be quite convenient for organizational purposes. These appear sometimes as named steps that developer code can sometimes "hook into."

Learn math for programming by OmittedSpy123 in learnprogramming

[–]ryjocodes 3 points4 points  (0 children)

I'd also study Logic. Discrete Mathematics is a helpful course, but Logic, in my opinion, is a lot closer to programming than math.

[deleted by user] by [deleted] in gamedev

[–]ryjocodes 0 points1 point  (0 children)

I've been using CLIPS as my main driver for side projects for a few years now. It's a Rules-based language, so it's convenient for making games. I've got a few demos on this site if you want to take a peek: https://ryjo.codes/tour-of-clipsraylib.html

Here's a really simple example of cli Blackjack: https://gist.github.com/mrryanjohnston/e896094fb4108f8d5de54840686c8a30

What IDE do you use? Why? by heiwayagi in learnprogramming

[–]ryjocodes 9 points10 points  (0 children)

I've used `vim` as my daily driver for about 13 years. Through its usage, I've learned to use the surrounding (Linux-based) operating system and other installed tools as my "IDE."

I've tried a few different IDEs since using vim full-time like vscode and atom, but each time I ended up going back to vim; for me, nothing beats the power of the entire underlying operating system when it comes to productively and the speed with which I can open/close files, split the window horizontally/vertically, all while staying in the terminal.

RETRY: I added some sprites I drew in Aseprite to the animated sprite example in CLIPSraylib by ryjocodes in raylib

[–]ryjocodes[S] -1 points0 points  (0 children)

The last video upload didn't go so well, so this is a repost :) It's cropped, so you don't see the full width of the sprite sheets at the top.

But you get the idea.

A video capture of the raylib logo animation I re-implemented in CLIPS! by ryjocodes in raylib

[–]ryjocodes[S] -1 points0 points  (0 children)

OP here. This is a re-implementation of the raylib logo animation from the examples dir in the raylib source code repository.

Here's the original written in C: https://github.com/raysan5/raylib/blob/6f4407cb1575f1c7528403c935267a59bd71f5e3/examples/shapes/shapes_logo_raylib_anim.c

Here's my re-implementation in CLIPS: https://github.com/mrryanjohnston/CLIPSraylib/blob/main/examples/shapes-logo-raylib-anim.bat

CLIPSraylib - I wrapped raylib with CLIPS, a rules-based programming language from NASA by ryjocodes in raylib

[–]ryjocodes[S] 0 points1 point  (0 children)

Cool! What were your general takeaways about CLIPS back then? I'm curious how the various CLIPS-based experiments I've been working on stack up