The idea of fully enumerating the solution space. In the case of a real-values solution space, full enumeration must be approximated by dividing each dimension into parcels. The size of such divisions must be chosen by the user.
We can generally think of “full enumeration” as being the worst case for performance. However there are a few exceptions. If the solution space is very small, it might make sense to simply fully enumerate the solution space.
A full enumeration search may be trivially performed in a “steady state” fashion, as the results from the search do not affect the search behaviour at all. Full enumeration may outperform some algorithms (such as Random Search) where the algorithm does not benefit from any form of search memory.
Microsoft Visual C++, in Debug mode, uses some magic numbers to make our lives easier when we attempt to dereference invalid memory. Here’s a list of the ones I’ve found useful. I’ve included some from Google’s V8, since I ran into 0x1baddead0baddeaf this one time.
- 0xabababab – Marks “no man’s land” guard bytes surrounding heap memory allocated by HeapAlloc().
- 0xcccccccc – Uninitialized stack memory.
- 0xcdcdcdcd – Uninitialized heap memory allocated by malloc().
- 0xbaadf00d – Uninitialized heap memory.
- 0xfdfdfdfd – Marks “no man’s land” guard bytes surrounding allocated heap memory.
- 0xfeeefeee – Used by HeapFree() to mark freed heap memory
- 0xdddddddd – Freed heap memory
This resource is provided for quick and easy copy-paste of special characters.
⁰ ¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹ ⁺ ⁻ ⁼ ⁽ ⁾
₀ ₁ ₂ ₃ ₄ ₅ ₆ ₇ ₈ ₉ ₊ ₋ ₌ ₍ ₎
← ↑ → ↓ ↔
- ⇒, ∴ – it follows that (⇒), or therefore (∴)
- ∵ – because (inverse of “therefore”, ∴)
Uppercase and lowercase letters, including variants, uninteresting and ambiguous characters excluded.
αβ Γγ Δδ ϵε Ϝϝ ζ η Θθϑ κϰ Λλ μ Ξξ Ππϖ ρϱ Σσς τ Φϕφ Ψψ Ωω
If you have some large binary files in your GIT history, you probably want to kill/maim/destroy them to bring down the size of your repository. Here’s how.
This command removes all blobs matching the specified pattern from all commits in your history. If any commits end up empty, those commits are removed too. In my case, I wanted to remove all files matching the pattern “data/binary/big/*.dbt”.
git filter-branch --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch data/binary/big/*.dbt' --tag-name-filter cat -- --all
Now let’s do some garbage collection.
git pack-refs --all --prune
git reflog expire --expire-unreachable=now --all
git repack -A -d
git gc --aggressive --prune=now
Then push your changes to the upstream repository.
git push origin --force --all
Ted Naleid has a great write-up if you want to better understand exactly what’s going on here.
The GC commands I got from Drew Powers.
What’s the difference between an Isolate and a Context? (and, for that matter, a Platform?)
A Platform captures the global initialization for V8. You need one, and you only ever need exactly one.
An Isolate can only be accessed by one thread at a time. If you are writing a single-threaded application, you can get away with only one Isolate. Objects from one Isolate must not be used in another Isolate.
A Context keeps each distinct “application” in it’s own “namespace”. You can freely pass objects between Contexts.