This list without any logic in its order has been made after a lightning talk I gave at Creative Front-end Belgium.
- Service Workies (free)
- Codelabs PWA training (free)
This list without any logic in its order has been made after a lightning talk I gave at Creative Front-end Belgium.
ffmpeg -i smb-bump.wav -c:a flac -compression_level 8 -map_metadata -1 smb-bump.flac
-c:a flac
for FLAC.-compression_level 8
: 0 is low compression (faster to decode), 12 is highest, but following this thread, you should never go above 8.<!-- « un neu concepteurice », says Voice Over --> | |
<p>Test 1 : nous recherchons un•e concepteur•rice & rédacteur•rice francophone.</p> | |
<!-- « une concepteurice », says Voice Over `(content: '•'` is ignored) --> | |
<p>Test 2 : nous recherchons un<span class="content-middot"></span>e concepteur<span class="content-middot"></span>rice & rédacteur<span class="content-middot"></span>rice francophone.</p> | |
<!-- `alt is ignored by macOS Voice Over --> | |
<p>Test 3 : nous recherchons <span alt="un concepteur et rédacteur, ou une conceptrice et rédactrice">un•e concepteur•rice & rédacteur•rice</span> francophone.</p> | |
<!-- `aria-label` or `aria-labelledby` is ignored by macOS Voice Over --> |
Spatie’s Media Library requires FFmpeg in order to create video poster images.
sudo apt update
;sudo apt install ffmpeg
;ffmpeg -version
should output FFmpeg version.{ | |
"label": "Français", | |
"keys": { | |
"answer_no": "Non", | |
"answer_region_no": "Je ne me suis rendu dans aucune des régions mentionnées ci-dessus", | |
"answer_unknown": "Je ne sais pas", | |
"answer_yes": "Oui", | |
"answers_table_headline": "Vos réponses", | |
"answers_table_hide_answers": "Cacher les réponses", | |
"answers_table_print": "Imprimer", |
if('serviceWorker' in navigator) { | |
navigator.serviceWorker.getRegistrations().then(function(registrations) { | |
for(let registration of registrations) { | |
registration.unregister() | |
} | |
}) | |
} |
const MILLISECONDS_PER_MINUTES = 1000 * 60; | |
const state = { | |
now: (new Date()), | |
intervalTimer: null, | |
}; | |
const mutations = { | |
now(state) { | |
state.now = new Date(); |
// Embedded in https://twitter.com/meduzen/status/1369679118992871428 | |
// OMG, lot of duplicated entries! | |
const stepsNames = [ | |
"step-basic", | |
"step-basic", | |
"step-basic", | |
"step-specification", | |
"step-specification", | |
"step-specification", |
Array
.from(document.querySelectorAll('.js-file'))
.filter(el => !('fileUserViewed' in el.dataset) && el.dataset.fileDeleted == 'false')
.map(el => el.querySelector('.file-header').dataset.path)