Skip to content

Instantly share code, notes, and snippets.

View ichramm's full-sized avatar

Juan Ramirez ichramm

View GitHub Profile
@VictorTaelin
VictorTaelin / collapse_monad.hs
Last active August 21, 2025 14:57
The Collapse Monad
import Control.Monad (ap, forM_)
import qualified Data.Map as M
-- The Collapse Monad
-- ------------------
-- The Collapse Monad allows collapsing a value with labelled superpositions
-- into a flat list of superposition-free values. It is like the List Monad,
-- except that, instead of always doing a cartesian product, it will perform
-- pairwise merges of distant parts of your program that are "entangled"
-- under the same label. Examples:
@kconner
kconner / macOS Internals.md
Last active October 8, 2025 16:45
macOS Internals

macOS Internals

Understand your Mac and iPhone more deeply by tracing the evolution of Mac OS X from prelease to Swift. John Siracusa delivers the details.

Starting Points

How to use this gist

You've got two main options:

@brunocascio
brunocascio / README.md
Last active July 4, 2024 21:37
Conceptos de Normalización de Bases de datos
@brunocascio
brunocascio / requerimientos-tecnicas-agiles.md
Last active August 9, 2024 23:23
Requerimientos, Técnicas de Especificación y metodologías Ágiles

Ingeniería de Software I (Resúmen)

  • Requerimientos
    • Introducción
    • Ingeniería de requerimientos
      • Introducción
      • Estudio de viabilidad
      • Obtención y análisis de requerimientos
      • Especificación de requerimientos
  • Validación de requerimientos
@hellerbarde
hellerbarde / latency.markdown
Created May 31, 2012 13:16 — forked from jboner/latency.txt
Latency numbers every programmer should know

Latency numbers every programmer should know

L1 cache reference ......................... 0.5 ns
Branch mispredict ............................ 5 ns
L2 cache reference ........................... 7 ns
Mutex lock/unlock ........................... 25 ns
Main memory reference ...................... 100 ns             
Compress 1K bytes with Zippy ............. 3,000 ns  =   3 µs
Send 2K bytes over 1 Gbps network ....... 20,000 ns  =  20 µs
SSD random read ........................ 150,000 ns  = 150 µs

Read 1 MB sequentially from memory ..... 250,000 ns = 250 µs