Bookmarks

From miki
Revision as of 09:39, 30 September 2019 by Mip (talk | contribs) (→‎Miscellaneous)
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 / ML

Student's post about replicating OpenAI's GPT2 1.5B dataset, and is about to release it, and long explanation why. GPT2 generates very interesting samples. Humanity success is more because of collaboration / trust, than intelligence, and our ability has human to identify trustable information. If we have a system charged with detecting what we can and can’t trust, we aren’t removing our need to invest trust, we are only moving our trust from our own faculties to those of the machine.
A book praised by HN [1].
Amazing page detailing the mathematics behind gaussian processes.

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

Apps

  • Krita 4.0 released, Krita is a professional FREE and open source painting program.
  • Draw.io — a free alternative to Visio, very powerful and that integrates nicely in many online platforms (GitLab...). Available offline, and as stand-alone executable as well.

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.

Recommended books for development (source HN):

  • The Practical Programmer,
  • Code Complete,
  • Design Patterns, from the Gang of Four,
  • Refactoring, from Martin Flower,
  • The Practice of Programming, from Kernighan and Pike’s,

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.
Don't reinvent the wheels. Reference solutions to common problems in *many* languages.

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.
Nice write-up from a designer at Uber on why simple and clean design is better than applying patterns or using architecture tools.
Many nice quotes:
  • "I no longer think about code lines as an asset to be accumulated, but rather as an expenditure to be avoided."
  • Edsger Djikstra: If we wish to count lines of code, we should not regard them as “lines produced” but as “lines spent”: the current conventional wisdom is so foolish as to book that count on the wrong side of the ledger.
  • Bill Gates: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight."
  • Old military saying: “Slow is smooth, and smooth is fast”
  • A mom / Lewis Caroll: "The hurrie(de)r I go, the behinder I get!", aka "more haste, less speed".
  • Motorcycle racing: "a fast rider has slow hands".

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.
With lots of links, recommended books, languages (Racket, C, Javascript...), discrete mathematics...
A technique to learn complex concepts in record time, retain knowledge, and study more efficiently. First, write the name of the concept. Second, write out an explanation of the concept, as if explaining to a layman. Then pinpoint gaps into the explanation, and go back to source material, and repeat previous step. Finally, put the editor's hat, and rewrite the whole (filter wordy / confusing / complex language).

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.
A language for pipe-based programming. Amazing master thesis, clearly written!

Design

  1. Contrast — Elements of your design (colour, size, weight, style) should be either exactly the same, or significantly different.
  2. Consistency — Make sure similar elements appear in similar ways.
  3. Occam's Razors (aka Reduce Visual Noise) — The fewer the number of elements you use in your design, the better.
  4. Space — The way things are positioned sends a meta-level message about their meaning. This deals with proximity (= relatedness), with negative space, and with importance and order.
What’s faster, incrementing a std::vector of uint8_t or of uint32_t? This is analyzed carefully, with surprising results. It turns out that uint8_t is much slower because of pointer aliasing issues that prevent the compiler to use vector instructions. To fix it, one much avoid any reference to std::vector data in the loop:
for (auto i = v.begin(), e = v.end(); i != e; ++i) {
    (*i)++;
}
Or another solution is to use keyword __restrict.
"Good design is as little design as possible." - some German motherfucker

Tools

Inline tool to analyze / compare the assembly code produced by many compilers in many languages.
Nice and very detailed write-up on how to use GitHub actions, that can trigger on various events (push, issue creation). Using Typescript, YAML, Node.js...

Functional programming

Detailed post on the differences between functor, applicative and monad (using OCaml and Haskell).

Concurrency / multi-threading

Clear description of locking issues (incl. priority inversion), and tips on concurrency when using an audio thread: Don't lock, don't call lib with unbounded exec time (like malloc), use only (aligned) byte/half-word/word assiment (which are atomic), use lock-less data structures (eg. TPCircularBuffer). And a goodies: Billy Joel and Jimmy Fallon Form 2-Man Doo-Wop Group Using iPad App.
More advices on real-time programming techniques.

Security

Detailed description of Trinity, a fully chained exploit for the PS Vita consisting of six unique vulnerabilities, describing how it works, how it was found and built.
Summary of issues around PGP, and alternatives (Signal, Whatsapp, magic wormhole, tarsnap).

Science & Tech

The most complete and detailed description on how our eyes perceive colors.
Just wow.
A nice dynamic periodic table of elements.

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.
Example on how to deploy / develop a successful web application, by one person.

Miscellaneous

A detailed explanation about color harmony, what makes some painting rich in colors...
A repository of fonts patched with lots of glyphs (icons). Include patches for Fantasque Sans Mono, Iosevka...
... animated for the internet.
Beautiful animated pages explaining how various things work, like sewing machine, engines, human eye, lcd screen...
Amazing set of interactive pages to learn how synthesizers work.
Example: shop with one cashier, 10 min processing time, 5.8 job/hour will have an average waiting time of 5 hours! This document explains why and tips to improve. And explains why it is very hard to use the last 15% of anything (wait time double at 50% capacity, and double again at 75%, and so on).
A phonic-based reading method, with direct instructions. Much more efficient than whole-word system, at least on kids of all backgrounds [2].
Elegant Python programs to generate 3D objects in SVG.
An alternate floating points representation, claimed to be better than IEEE 754 [3].
On how Netflix and Disney are reproducing the old schema of consolidation that happened before with movie studio, and that we should go again for a split into separate production, distribution, and retailing.
The idea is that there is lot of overlap with previous users. But some concerns on HN.
All tags in the browser are editable with attribute contenteditable="true".
Some insights from someone at Uber who've been building and operating a large distributed system (basically: monitoring not average but 99% percentile, monitor *business* metrics, mitigate first and fix later...)
A mere wrapper around Google, but the only website that returned as 2nd hit the correct song matching paradise "you and me" (ie. Gangsta's Paradise from Coolio).
Article on using statistics in medicine / police investigation. On average, every human has one breast and one testicle! Besides looking at statistical significance, we must also look at the size of the effect (Like save 1 in 130 lives with p=0.001, high significance but risk of adverse side effects may compensate occurence of the wanted effect)
  • Greta Thunberg:
Impressive talk from 16-year old Greta Thunberg on the urge to act now to face the climate crisis.
Greta receiving a prize and calling celebrities for action.
Another powerful speech by Greta Thunberg. In presence of UN Secretary General António Guterres, Arnold Schwarzenegger and a great number of heads of states.
Interview of Greta Thunberg by Democracy Now! during the 24th U.N. climate summit, explaining a bit how she came aware of climate changes issue. We are also joined by her father, Svante Thunberg, a Swedish actor.
Speech of Greta at the UN summit 2019.
Greta urging MEPs to “start panicking about climate change” rather than “waste time arguing about Brexit”.
Another great interview with Greta and how she deals with criticisms.
Great speech, also about the opposition Greta's movement is getting by some people not liking her.
Greta at EU saying EU ‘sweeping their mess under the carpet for our generation to clean up. [...] If you say we are wasting valuable lesson time, let me remind you, our political leaders have wasted decades through denial and inaction and since our time is running out we have started to take action.’
News on The Guardian, where Greta also answers a few questions.
An interview describing the life of Greta, how she started the movement...
20190927 - Summary of various speeches Greta made.
Greta joining strike in Canada, and answering a few questions from the media.
Interview in New York by Scandinavian talk show Skavlan, covering her last speech at U.N, how she lives...
Interview follow up with Michael Moore.
16 year old climate activist Greta Thunberg explains why her Asperger's is helpful in her fight to save the world.
Greta's speech during the global climate strike in New York, Sep. 20th 2019.
Greta's speech during the global climate strike in Montreal, Sep. 27th 2019.
This is the year 2019. This is not the time and place for dreams. This is the time to wake up' — Here's every statement Greta Thunberg made during Climate Week.
Speech from Greta at Davos (January 2019)
Short interview of Greta about the movement started (March 2019).
Interview with Greta and climate scientist, by Democracy Now! (December 2018)
Millions around the world took part in a global climate strike, all following the lead of 16-year-old Greta Thunberg. The Swedish teenager spoke to Kelly Cobiella before she sailed to New York City. “When a child says, ‘You are stealing my future,’ then people feel very guilty,” Thunberg said.
May 2019 - Upon realizing her generation won’t have a future unless the world’s politicians act now on climate change, then 15-year-old Greta Thunberg skipped school in August 2018 to protest outside the Swedish parliament. What started as a one person strike soon gained global momentum.
Dec 2018 - Fifteen-year-old activist Greta Thunberg talks to CNN's Fareed Zakaria about her speech at the UN climate change conference, her protest at the Swedish parliament, and what she is planning to do going forward.
Apr 2019 - Yet another (short) documentary on Greta Thunberg.
Feb 2019 - Speech from Greta at event "Civil Society for rEUnaissance" on 21/02/2019.
Sep 2019 - There is a natural solution to the climate breakdown: protecting forests. Climate activist Greta Thunberg and writer and climate activist George Monbiot explain.
Apr 2019 - The 16-year-old Swedish climate activist Greta Thunberg and Anna Taylor from the UK Student Climate Network join the Green party MP, Caroline Lucas, and the Guardian's Zoe Williams to discuss how to address the climate crisis and where to go from here for Guardian Live

Courses

Learn jQuery. Recommended here.
Teach you how to manage state in your React application with Redux. Recommended here as a good introduction to functional programming.

Talks

Talk from Joe Armstrong, co-author of Erlang language, about the complexity of SW and how to fix it.