Monthly Shaarli

All links of one month in a single page.

August, 2017

The Semantic Grid System (AKA semantic.gs)

This is a little framework (just a collection of LESS/SCSS/Stylus mixins) by Tyler Tate for creating responsive grid-based CSS layouts: you declare the layout with variables in a CSS pre-processor, and then it calculates the actual pixel widths. It is what I've used for my few designs, but I might try out CSS flexbox in the future...

Here's the project's github (there are several pending PRs, and Tyler hasn't made any merges since July 2015): https://github.com/tylertate/semantic.gs

Ingemar's home page

Home page of Ingemar Ragnemalm, the author of the Sprite Animation Toolkit and several games for MacOS, and a major contributor to the book "Tricks of the Mac Game Programming Gurus" (1995).

How it feels to learn JavaScript in 2016 – Hacker Noon
thumbnail
The History of Python: Origins of Python's "Functional" Features

Guido recounts some of the history of adding closures to Python.

The Normal Equation and matrix calculus - Eli Bendersky's website

Eli Bendersky takes the derivative of a matrix.

Interview with Ryan Dahl, Creator of Node.js | Mapping The Journey | Pramod Shashidhara | Podcast
thumbnail
Javascript unit testing tools

molsson compares several JavaScript testing frameworks.

Don Lancaster's Guru's Lair

I just discovered Don Lancaster's website (of TTL Cookbook fame). This could keep me busy for a while.

He even keeps an active weblog: http://www.tinaja.com/whtnu17.shtml

Inside a super fast CSS engine: Quantum CSS (aka Stylo) ★ Mozilla Hacks – the Web developer blog
thumbnail

A nice writeup (with illustrations) on some CSS rendering optimizations.

How the heck does async/await work in Python 3.5?
thumbnail

Brett Cannon traces the evolutionary path from Python 2's generators to Python 3.5's async/await coroutines.

Flexbox Froggy - A game for learning CSS flexbox
thumbnail
More Dots: Syntactic Loop Fusion in Julia

I haven't used Julia for anything yet, but I like that it not only optimizes explicit for-loops, but it also fuses code using vectorized-syntax even for user-defined functions and types. Compared to Matlab/Octave, Python, and R where loops are very (very)* slow and vectorized code is only fast for certain operations and library functions, it is appealing.

Julia also has annotations that can be use to explicitly tell the compiler to turn off bounds checking and emit SIMD instructions for loops.

  • The Numba package brings JIT capability to CPython (and so numpy), and probably compares most favorably to Julia than the other languages. Octave also has an experimental JIT compiler (seems like a lot of overhead going from interpreter to machine code), as do recent versions of Matlab (since R2015b). R since 2.14.0 includes the 'compiler' package, a bytecode interpreter and JIT (which compiles to bytecode, not machine code), which probably helps for long-running loops.
Examining a vintage RAM chip, I find a counterfeit with an entirely different die inside
thumbnail

Another good die-exploring post from Ken Shirriff. This time he identifies a counterfeit/mis-labeled chip by examining its die photos.