Skip to content
View JohnAlexINL's full-sized avatar
🐍
bing chillin
🐍
bing chillin

Block or report JohnAlexINL

Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
JohnAlexINL/README.md

👋 Howdy! I'm @JohnAlexINL/ You'll find a bunch of small widgets I've made for myself over the moons, as well as links to bigger projects I'm working on here.

🌱 If you're looking for a dev, I always love an opportunity to do something cool. I know C, JavaScript, BASIC, Python, Lua, a few different assemblers, and I'm teaching myself C# too!



Blood Rose Records

❤️ I help run an indie record label! Here's a couple of our artists

Projects

Work-in-Progress

  • 🔮 Moongin, C+Lua Game Engine w/ lightweight 2D and 3D Support
  • 🐍 Garter, straightforward procedural programming language
  • 🛠️ gasm, portable platform-agnostic assembler

Style Preferences

Code should be based around and implement interfaces in a way that our logic can be plugged in and out with other code implementing that same interface.

Code Logic

  • Avoid additional external dependencies; if you do not need it, do not depend on it
  • Complicated build chains mean code that is not portable and has points of failure that are hard to hunt down
  • Code with less surface area is more performant, easier to maintain, and easier to extend
  • Don't Repeat Yourself; reused logic should get factored out
  • Fail early & fail often; instead of nesting ifs, invert the logic and break out on failure.
  • If code needs lots of comments, it probably isn't very good code
  • If code cannot be reasonably read by one single person in a single sitting, it's going to suck to maintain
  • Looking at a variable's name, it should be immediately obvious what it is: a function, a number, an iterator, a string, ...
  • Code being readable and logically coherent is more important than "optimizations" your compiler is going to replace anyway
  • If code matter-of-factly describes what it does, documentation and commentary becomes redundant

Libraries and APIs

  • Source distribution is always preferable; blobs cannot be ported, cannot be audited, and cannot be maintained
  • Single-file source libraries are easier to include, easier to build, and easier to ship
  • Definitions and interfaces should go at the top after any copyright notice
  • Implementations should go in the middle, followed at the end by the full license agreement
  • Platform-specific implementation should be factored out of the API functions and interfaces themselves
  • Our libraries should do one thing and do them well

Licensing and Requirements

  • Short licenses are licenses that actually get read
  • As much as reasonably can-be, code should be open-sourced for its own longevity and for the community good
  • Subscriptions suck. I do not want to "subscribe" or pay for a "license", I want to purchase and own.
  • BSD-style licenses are based because they're straightforward
  • Putting code into the Public Domain is even more based

Important

I do not know C++. I do not want to know C++. You cannot pay me a large enough amount of money to learn C++. I have lived my entire life below the poverty line, and yet, if you were to offer me a literal billion dollars to learn C++, I would decline, because if there is to be any one hill I must die on, one folly that must befell me, a "hot take" I am ok with being my ruin, I want it to be that I am, through-and-through, the biggest hater of C++

Pinned Loading

  1. BloodRoseorg/garter BloodRoseorg/garter Public

    A tiny low-level / high-level hybrid compiled language

    23

  2. BloodRoseorg/weaver BloodRoseorg/weaver Public

    A simple library for rapid website development, designed primarily for use with cPanel.

    JavaScript 3

  3. styleless styleless Public

    Stop getting flashbanged by <style>less websites!

    JavaScript 1

  4. BloodRoseorg/nex BloodRoseorg/nex Public

    A little hex editor inspired by nano

    C 1