Skip to content

Instantly share code, notes, and snippets.

@DavidBruant
DavidBruant / gist:1016007
Created June 9, 2011 03:41
(document.querySelectorAll('*')).forEach ?
var els = document.querySelectorAll('a');
els.forEach(function(e){console.log(e.href);}); // TypeError: els.forEach is not a function
// Why?
// document.querySelectorAll returns a NodeList.
// First thing first, as opposed to other NodeList, this one is not live, mostly because the
// implementation of a live object would be terribly complicated for some selectors
// NodeList are a DOM interface introduced in DOM core level 1 (random guess)
### Keybase proof
I hereby claim:
* I am davidbruant on github.
* I am davidbruant (https://keybase.io/davidbruant) on keybase.
* I have a public key ASDRtwtQ7KodaLuXjvmeKe3ZfuK4e1n8JHa0oTbq2LbgYgo
To claim this, I am signing this object:
@DavidBruant
DavidBruant / gist:2815846
Created May 27, 2012 20:43
Dynamic DOM prototype
var originalNodeListProto = NodeList.prototype;
var temporaryNodeListProto = Object.create(NodeList.prototype);
temporaryNodeListProto.a = 1;
NodeList.prototype = temporaryNodeListProto;
var l = document.querySelectorAll('a');
console.log(l.a); // inherited from which prototype?
NodeList.prototype = originalNodeListProto;
@DavidBruant
DavidBruant / yo.md
Created October 29, 2018 10:29
Github issue as problems

Github issues should be the description of a problem + optionnally a solution suggestion ( ^ this is the description of a solution. To which problem? ^ )

Only if someone else agrees on the problem a solution should be worked on

If an issue isn't a problem, someone helps reformulate the issue until :

  • it's the description of a problem
  • it's realized it's not a problem (or a duplicate problem)

Maybe nobody wants to spend time help reformulate

@DavidBruant
DavidBruant / gist:1306146
Created October 22, 2011 16:06
Link checker
var links = document.getElementsByTagName('a');
console.log(links.length);
var workingUrls = [],
brokenUrls = [];
function l(e){
var t = e.target;
var url = t.src;
console.log(url, e.type);
@DavidBruant
DavidBruant / gist:8519103
Last active June 3, 2018 22:08
Guide pratique à destination des preneurs de décisions pour faire des applications partagées pérennes disponibles sur une majorité de plateformes

Problème

Créer des applications partagées pérennes qui peuvent être déployées à grande échelle.

Partagées signifie que différents utilisateurs vont pouvoir interagir et "travailler" ensemble sur l'application

Grande échelle, en 2013, signifie que des dizaines à des millions de personnes peuvent utiliser l'application. Une majorité de plateforme doit être accessibles (ordis de bureaux, portables, tablettes, téléphones mobiles) de préférence à moindre coût et donc sans avoir à tout refaire pour chaque appareil. Vivant dans un monde régit par certaines lois physiques, il sera raisonnable de supposer que le réseau de communication est au pire ouvert. La sécurité de l'application ne devra pas supposer le contrôle du réseau, même dans si l'environnement de déploiement est considéré contrôlé.

Pérennes signifie que l'arrivée de nouveaux appareils sur le marché ne remet pas en cause plus de 1% du temps de développement. Personne ne peut prévoir le futur ; il conviendra de garder un œil ouvert sur les ten

Potential topics to talk about at Seneca

  • Contributing in standards
    • ECMAScript 2015 and es-discuss
    • WHATWG, making @sandbox parallelizable
  • Contributing to the JS doc of MDN
  • Finance Transparence in Gironde
    • Front-end makes deployment easier
    • The complicated entrance of Open source and Open data in France Public Service
  • Open source in not enough: applying the code to all local administration
@DavidBruant
DavidBruant / g.sh
Created December 25, 2017 15:00
Installing gnome-calculator from source
git clone git://git.gnome.org/gnome-calculator
cd gnome-calculator/
sudo apt-get install automake
sudo apt-get install intltool
2019 sudo apt-get install autopoint
2021 sudo apt-get install libtool
2023 sudo apt-get install mpfr
2025 sudo apt-get install libmpfr4-dev
2026 sudo apt-get install libmpfr-dev