Skip to content

Instantly share code, notes, and snippets.

@JoshuaGross
Last active April 15, 2019 04:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save JoshuaGross/708ae23854678509370a52405988cdaa to your computer and use it in GitHub Desktop.
Save JoshuaGross/708ae23854678509370a52405988cdaa to your computer and use it in GitHub Desktop.
Cool URLs and learnings inside

A list of interesting URLs

... and a short description of interesting things learned within:

  • 2015-12-25: Beautiful Decay of AOL: someone going over old AOL CDs and "reviewing" the contents of AOL pages.
  • 2015-12-25: Specialising Dynamic Techniques for Implementing The Ruby Programming Language: Chris Seaton's PhD thesis - embracing metaprogramming in Ruby to optimize Ruby VMs.
  • 2015-12-25: People around the world are eating banana peels because they know something that Westerners do not: basically eating banana peels is better for you and the environment.
  • 2015-12-26: Amateur Hour: a guide to how training for beating amateur cycling records works. tl;dr: excruciating, requires intense focus. Train things at 90% of maximum for shorter intervals.
  • 2015-12-26: Attritional Interfaces: Attritional interfaces: interfaces designed for humans sometimes need to forget information. RSS, browser tabs, mobile notifications - things that accumulate without end until the user declares bankruptcy and starts fresh. Email also falls into this category and gmail is helpful (but doesn't completely solve the problem) in that it will automatically bury non-important emails.
  • 2015-12-27: A tmux Primer:
  • 2015-12-30: A modern architecture for FP: a description of free monads and how they can be used to separate concerns in functional programming. It describes a new paradigm, a new architecture, for FP.
  • 2016-01-02: Refragmentation: the refragmentation of society - the increase of income inequality as society moves away from the great conformism of mid-century America.
  • 2016-01-04: What I wish I had known starting Haskell: Lots of details about starting out with Haskell.
  • 2016-01-05: Compiling Lambda: a simple compiler for the lambda-calculus in Haskell.
  • 2016-04-11: Using Hilbert curves for Geo-Indexing: using Hilbert curves for geo-indexing. Used in the AvocadoDB engine.
  • 2016-05-13: Satellite Constellation: article about different types of satellite constellations. Also describes Walker constellations, which is a notation for describing a popular family of constellations.
  • 2016-05-13: HGP2: scientists discussing ways of synthesizing entire sequences of genes, like synthesizing an entire human DNA strand/genome.
  • 2016-05-13: Get over Qwerty - Mullaney on Chinese and input: Chinese took over the alphabet, and not vice-versa.
  • 2016-05-13: Interesting features of Haskell's Type System: an overview of types and kinds, and what can be done with kinds.
  • 2016-05-13: A Neighborhood of Infinities: Yoneda Lemma: one of many overviews of the Yoneda Lemma as it relates to Haskell, written by Dan Piponi.
  • 2016-05-13: More Fun With Futamura Projections: Futamura projections to N
  • 2016-05-13: Compilers for free: more pontification on the Futamura projections. This one points out that there are only 3 projections; everything above 3 reduces to 3: a partial applicator applied to itself produces itself as the residual. "The Futamura projections are fun and surprising, but their existence doesn’t make compiler authors redundant" - but maybe they could!
  • 2016-05-13: C++ templates: an overview: templates are a powerful, statically typed language feature that allow various types of inferred polymorphism and in general "templatization" of C++ code. Generic metaprogramming (Java generics, C# generics) is a subset of templates. Lisp macros are notably similar and perhaps "more powerful" but are different from templates.
  • 2016-05-13: C++ template history, examples: A good overview of the accidental history of how TMP was discovered to be turing complete, and how to do some basic things like construct adders, alternatives, type-comparators and recursion.
  • 2016-05-13: Substitution Failure is Not an Error: an important feature of C++ templates, SFINAE will pass-over initial errors caused by duplicate possible substitutions until one is found that works (I think - sort of - this makes sense to me.)
  • 2016-05-13: Flipping Arrows in coBurger King: a great overview of comonads: what they mean and basically how cobind and coreturn (or duplicate and extract) are derived and used. Notably extract is just (<-). "Co" loosely and flippantly means "flip the arrows".
  • 2016-05-13: Comonads are objects: Gabriel Gonzales asserts that comonads are objects / using them is an object-oriented style.
  • 2016-05-13: What does a nontrivial comonoid look like?
  • 2016-05-14: He who does not know Lisp is doomed to reinvent it: fun discussion, list of interesting and important Lisp features that other languages have been getting over the years. Also extremely pedantic and annoying at times, probably.
  • 2016-05-14: Fundamental introduction to x86 programming
  • 2016-05-14: Dumb problems to avoid with C++ smart pointers: C++ has lots of horrifying bugs that can occur with using smart pointers. It doesn't prevent crashes, doesn't prevent over-releasing, doesn't prevent cyclical references. Pretty sloppy.
  • 2016-05-14: What does PPM mean for a crystal oscillator? PPM is parts per million and indicates the typical error characteristics for that type of crystal. For example, 20 ppm for an oscillator could have an error of up to one minute per month.
  • 2016-05-14: Crystal oscillators: describes the basics of crystal-based oscillators, how they are integrated into electronic circuits. They are piezoelectric components that resonate or oscillate at some frequency.
  • 2016-05-14: Atomic clock: oscillators more reliable than crystal oscillators judging by their PPM ratings. Contains chart describing caesium, rubidium, etc. clocks and their accuracy ratings.
  • 2016-05-14: Comparison of different kinds of quartz oscillators: TXCOs, OCXOs, XOs, and VCXOs: TXCOs are temperature compensated, OXCOs are "oven controlled", XO is not compensated at all.
  • 2016-05-14: GPS: Dilution of Precision: DOP, VDOP, TDOP, HDOP, GDOP: A description of the Dilution of Precision (DOP) measurement used in GPS/GNSS.
  • 2016-05-14: Annulus: a region constrained by two concentric circles.
  • 2016-05-14: GNSS and atmospheric scintillation: ionospheric scintillation is caused broadly by diffraction and refraction. These types of effects are caused by "group delay" and "phase advance". TEC: total electron content, measured as a rectangular cross-section one-metre-squared from the satellite to the receiver; TEC is the number of free electrons in that solid. The product of the "group velocity" and "phase velocity" of the GPS signals is equal to the speed of light squared. So if TEC increases, group velocity slows down and phase velocity speeds up. Slower group velocity produces ranging errors; faster phase velocity causes unexpected phase shifts. Refraction: if the
  • 2016-05-14: Total Electron Content, or TEC: An important measurement of free electroncs in the atmosphere between two points; used to measure ionospheric scintillation.
  • 2016-05-14: Group Velocity: the rate of movement of the /envelope/ of a wave.
  • 2016-05-14: Phase: the difference between the peak on two waveforms that have the same frequency. Waves can have vertical or horizontal wave phase shift. Phase difference can be expressed as time, radians, or degrees.
  • 2016-05-14: Cherenkov Radiation: radiation emitted when something exceeds the phase speed of light in a medium (seen in underwater nuclear reactors).
  • 2016-05-16: GPS week rollover: The GPS week is reset (rolls over) every 1024 weeks; roughly every 20 years. The next one is in 2019.
  • 2016-05-19: Look, No Base Station! Precise Point Positioning (PPP): a poor overview of the history of PPP solutions at the time of writing.
  • 2016-11-23: Envelope (waves): A wave envelope is a smoothing over of the extremes of a wave to simplify characterizing it, or to convey units of information by modulating the underlying wave.
  • 2016-11-23: Dirac Delta Function, δ function: a function that is equal to 1 at 0, and zero everywhere else. The integral over the real line of the Dirac Delta Function is equal to 1. The dirac delta is used to correlate GPS signals to satellites using each satellite's gold codes.
  • 2016-11-23: Articles about GNSS carrier phase measurements: Inside GNSS: Generating Carrier Phase Measurements; Code-phase vs Carrier-phase GPS; Why are carrier phase ambiguities integer?
  • 2016-12-13: Lucky Peach's guide to regional ramen in Japan - a great overview of ramen in Japan.
  • 2016-12-13: Lucky Peach's guide to breads of India - another fascinating and delicious overview
  • 2016-12-18: Stephen Biko, martyr of the anti-apartheid movement in South Africa. Notably, he was famous for using the phrase "black is beautiful". Also of interest to North American observers, "black-on-black violence" was a term used during the apartheid days (and surely in present-day South Africa as well).
  • 2018-06-22: Explainable AI: explaining X-rays via image captioning observes that human and AI decisions are both made via black boxes, and the solution is communicating a very small number of significant factors towards making the decision. The write-up recommends using a mix of heatmaps and training from very pithy captions.
  • 2018-08-01: A curated list of engineering blogs
  • 2019-01-17: Strategies for Using C++ in Objective-C Projects (and vice versa): An early look, in 2010, at mixing C++ and Objective-C with Objective-C++, which introduces the Pimpl idiom. As the c2wiki link discusses, Pimpl is evidence of a large design flaw in C++ in general whereby all users of a specific class need to be aware of and compile against private member variables which they cannot access. There is also a followup from 2012.
  • 2019-01-25: auto to stick: Summary of Herb Sutter's conference talk where he argues for using auto (almost) everywhere, and how it can improve readability, maintainability and even correctness.
  • 2019-01-28: Back to the Basics! Essentials of Modern C++ Style: Herb Sutter's 2014 cppcon conference talk about what's good in modern C++ , and what we shouldn't overuse. Shortcuts: how to pass smart pointers
  • 2019-02-04: React as a UI Runtime: Dam Abramov's overview of React as a UI runtime, and a deepdive into various architectural decisions.
  • 2019-02-20: ABA Problem: A (very common) problem that can occur with synchronizing code whereby "read" values not changing are used to determine synchronicity. In particular, some implementations of CAS instructions are vulnerable to the ABA problem according to Cliff Click's odds 'n ends article.
  • 2019-04-14: Value Categories in C++: An absolutely horrifying article on MS devcenter about the different types of C++ values: lvalues, rvalues, xvalues, glvalues, prvalues, etc.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment