Full Enumeration

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.

Magic Numbers in Microsoft Visual C++

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
  • 0xdeadbeedbeadbeef, 0x1baddead0baddeaf, 0x1baffed00baffedf, 0x1beefdad0beefdaf,0xbadbaddbbadbaddb, 0xbeefdeadbeefdeef, 0xfeed1eaffeed1eaf, 0xdeadbeef, 0xbaddeaf, 0xbaffedf,0xbeefdaf, 0xbeefdeef, 0xbadbaddb, 0xfeed1eaf, 0xbadc0de, 0xca11bac – Memory freed by Google’s V8 Javascript engine. (ref)

See Also


Copy Pasta – Useful Characters

This resource is provided for quick and easy copy-paste of special characters.

Superscript numerals
⁰ ¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹ ⁺ ⁻ ⁼ ⁽ ⁾

Subscript numerals
₀ ₁ ₂ ₃ ₄ ₅ ₆ ₇ ₈ ₉ ₊ ₋ ₌ ₍ ₎

← ↑ → ↓ ↔

Logic Symbols

  • ⇒, ∴ – it follows that (⇒), or therefore (∴)
  • ∵ – because (inverse of “therefore”, ∴)

Greek Letters

Uppercase and lowercase letters, including variants, uninteresting and ambiguous characters excluded.

αβ Γγ Δδ ϵε Ϝϝ ζ η Θθϑ κϰ Λλ μ Ξξ Ππϖ ρϱ Σσς τ Φϕφ Ψψ Ωω

See Also

Remove unwanted blobs from your GIT history

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.

Google V8 Javascript Engine: Platform, Isolate and Context. What are they for?

This is a question I found myself asking again and again while finding my way around Google’s V8 Javascript engine.

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.

See also:

Stochastic Optimization

adjective (technical)

Further Reading