Bookmarks

From miki
Jump to navigation Jump to search
Show how many times frustrated Linux kernel developers have put four letter words into the source code.
An online tool to provide custom-sized placeholder images of Bill Murray! http://fillmurray.com/200/300.
I like the humor and layout of the page. Images are superb.
Check also PlaceCage (Nick Cage Filler Images) and Steven SeGALLERY (Steven Segal Filler Images) :-D
An amazing video from A Capella Science on biology science. Amazing song. More to see on the YouTube channel.

AI

Mathemathics

Correlation is not causation.
  • Tangente n°182, p34-35, "Les excès de la corrélation".
Nous allons vers un changement épistémologique majeur. S'en remettre à ce type de calcul traduit un renoncement aux ambitions de la raison moderne, qui liait les phénomènes à leurs causes. Ces ambitions de la raison permettaient d'envisager la prévention, d'agir sur les causes pour changes les effets. Au lieu de cela, on se dirige vers un système de pures corrélations. [...] On ne cherche plus à comprendre l'environnement, on cherche à le prédire. Notre rapport au savoir change, mais aussi notre rapport au monde: on se focalise davantage qu'auparavant sur les risques. "Voir et comprendre" sont supplantés par détecter et prévenir". On passe d'une civilisation du signe, qui était porteur de sens, à une civilisation du signal, qui est une donnée qui ne signifie rien en soi..
How to cut fairly a cake in three (and more) pieces.
The evolution of trust — a fun lecture for understanding game theory in a broader context.

Tools

Books

A book on algorithmic problem solving, the art of formulating efficient methods that solve problems of a mathematical nature.
Online digital book on typography from Matthew Butterick, including tips to learn typography in ten minutes.

Dev

Crystal-clear tutorial on how to use strace, lsof and gdb to debug inter-process issues on Linux.
open source Python graphing library, with Javascript interaction.
An optimization guide for assembly programmers and compiler makers By Agner Fog. Technical University of Denmar.
Nine reasons why Lisp and Racket are good programming languages. From Matthew Butterick, author of the book Practical Typography and of Pollen, a digital book publishing system.

Rust

Many interesting comments on RUST, and how to write / debug programs with concurrency/performance in mind.

Methodology

5 reasons not to rewrite an existing code.
About the mistake of full rewrite (Netscape 6, Borland Quattro Pro). Instead refactor, rename,
Instead of rewriting, write a strangler application, that will progressively replace the old system.
Tesler's Law, also known as The Law of Conservation of Complexity, states that for any system there is a certain amount of complexity which cannot be reduced.
About Semantic Versioning and tips / pits to introduce new functionality, and fixing security bugs.
Don't build technology unless you feel the pain of not having it. Then: First make it possible. Then make it beautiful. Then make it fast. Use cases are everything in suffering-oriented programming.

Learn

From Xv6, a simple Unix-like teaching operating system
All participants spent most of their time studying examples, rather than reading the language documentation.
Illustrate the Shlemiel the painter’s algorithm when concatenating C strings where performance is n^2 because of the lack of efficient strlen() operator.

Web

Delay non-critical task to idle thread, while forcing their execution if some user event depend on that task being executed first.

Network

Every byte of a TLS connection explained and reproduced.

Game

Detailed explanation on how to make a fast tile-based game engine. Tricks used:
  • Use LEA instruction, most efficient to move bytes, but requiring modifying the stack pointer.
  • Pre-process the tiles to cancel effect of fast rendering loop
  • Reverse display order to cancel graphical corruption when interrupt occurs and load registers on the stack.
Detailed explanation on 2D game optimization for a Super-Mario-like game. Various tricks are explained about fast scrolling, fast sprite handling...
  • Background is generated by a LEA-field, basically a sequence of code generated by the game engine, and when executed, draw pixel to the screen buffer. The LEA-field is organized into sequence of code, each drawing a given scanline.
  • Scrolling is obtained by a different offset in the scanline.
  • When scrolling, the code in leftmost/rightmost columns of the LEA-field must be updated. This update is done by a code, which is also generated by the engine. This column-update code is generated to avoid duplicate register loading (typ. occurs when the scene has many duplicated pixels, like a blue sky).
  • Sprite is also generated by a code, generated from sprite data.
A very fast tile engine for the Apple IIGS, using advanced techniques to achieve 1 pixels every 1.25 cycles.

CVS

Explain how to obtain perfect patch using digle (directed graph file) instead of files, as used in pijul, with some mathematical background.

Languages

A Scheme/Lisp language.

Science & Tech

The most complete and detailed description on how our eyes perceive colors.
Just wow.

Success stories

With good tips about launching new business online.
The success story on how a grad student and his professor worked together to write a 500p text book, and the tools and methodology they used.

Miscellaneous

A detailed explanation about color harmony, what makes some painting rich in colors...