Discover gists
#include <stdint.h> | |
#include <immintrin.h> | |
// credit: YumiYumiYumi | |
// (fixed by aqrit) | |
__m128i _mm_tzcnt_epi32(__m128i v) { | |
__m128i mask = _mm_set1_epi32(0xffffff81); | |
v = _mm_and_si128(v, _mm_sign_epi32(v, mask)); | |
v = _mm_castps_si128(_mm_cvtepi32_ps(v)); |
This is gist. | |
There are many like it, but this one is mine. | |
It is my life. | |
I must master it as I must master my life. | |
Without me gist is useless. | |
Without gist, I am useless. |
If you purchase a textbook from McGraw Hill, the website to view it is clunky and only works on some devices. You can't go to specific page numbers, the search is super slow, etc. That's why I wrote this script to download the textbook as an ePub file for your own viewing.
Using this script is 100% legal. McGraw Hill publicly hosts their ebooks online in order for their web client to download it. Moreover, to use it, you must already have purchased the book you would like to download, so it is legally yours to use as you please. However, it IS illegal to use this for piracy purposes. DO NOT DISTRIBUTE ANY TEXTBOOKS YOU DOWNLOAD USING THIS SCRIPT.
/** | |
* Copyright (c) 2023 Jacob Martin | |
* | |
* Permission is hereby granted, free of charge, to any person obtaining a copy | |
* of this software and associated documentation files (the "Software"), to deal | |
* in the Software without restriction, including without limitation the rights | |
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
* copies of the Software, and to permit persons to whom the Software is | |
* furnished to do so, subject to the following conditions: |
The below is a breakdown / bird's eye view of how a sparse-array backed ECS like EnTT or Shipyard works.
Please see the thanks and references at the bottom - without their help I would not have been able to share this breakdown with you... everything here is really just notes and rephrasing of what they've written already :)
Also, these notes do not cover archetype systems (like unity) nor adaptations of archetypes (like in Flecs). Though there's a couple comparative footnotes at the end.
Here we go!
If you encounter a problem where you cannot commit changes in Git – neither through the terminal nor via the GitHub Desktop application – the issue might be a freeze during the Git commit process. This is often caused by GPG lock issues. Below is a concise and step-by-step guide to resolve this problem.
Open your terminal and try to perform a GPG operation (like signing a test message). If you see repeated messages like gpg: waiting for lock (held by [process_id]) ...
, it indicates a lock issue.
/* | |
* various methods to strip whitespace from text | |
* (aka. despace, leftpack, copy_if) | |
* | |
* 'whitespace' is considered the following bytes: | |
* 0x09 - tab | |
* 0x20 - space | |
* 0x0A - line feed | |
* 0x0D - carriage return | |
*/ |
/** | |
* Place this to ./src/scripts/bump-payload.ts | |
* Then in your package.json add script: | |
* "bump-payload": "tsx ./src/scripts/bump-payload.ts ./package.json && pnpm i" | |
* Run `pnpm bump-payload` | |
*/ | |
import { execSync } from 'child_process'; | |
import fs from 'fs'; | |
import path from 'path'; |