A non-exhaustive list of WebGL and WebGPU frameworks and libraries. It is mostly for learning purposes as some of the libraries listed are wip/outdated/not maintained anymore.
| Name | Stars | Last Commit | Description |
|---|---|---|---|
| three.js | ![GitH |
| const puppeteer = require('puppeteer'); | |
| (async () => { | |
| const browser = await puppeteer.launch(); | |
| const page = await browser.newPage(); | |
| // Adjustments particular to this page to ensure we hit desktop breakpoint. | |
| page.setViewport({width: 1000, height: 600, deviceScaleFactor: 1}); | |
| await page.goto('https://www.chromestatus.com/samples', {waitUntil: 'networkidle'}); |
A non-exhaustive list of WebGL and WebGPU frameworks and libraries. It is mostly for learning purposes as some of the libraries listed are wip/outdated/not maintained anymore.
| Name | Stars | Last Commit | Description |
|---|---|---|---|
| three.js | ![GitH |
I recently happened upon a very interesting implementation of popen() (different API, same idea) called popen-noshell using clone(2), and so I opened an issue requesting use of vfork(2) or posix_spawn() for portability. It turns out that on Linux there's an important advantage to using clone(2). I think I should capture the things I wrote there in a better place. A gist, a blog, whatever.
This is not a paper. I assume reader familiarity with
fork()in particular and Unix in general, though, of course, I link to relevant wiki pages, so if the unfamiliar reader is willing to go down the rabbit hole, they should be able to come ou
Direct copy of pre-encoded file:
$ ffmpeg -i filename.mp4 -codec: copy -start_number 0 -hls_time 10 -hls_list_size 0 -f hls filename.m3u8
| /play | |
| /*.png | |
| /*.bmp | |
| /solitaire |
| import soap from 'soap'; | |
| import moment from 'moment'; | |
| const taxServiceUrl = 'http://hehexd.com/services/1.2/taxservice.asmx?WSDL' | |
| export function generateJsonForTaxRate(json) { | |
| const EffectiveDate = moment().toISOString(); | |
| const { | |
| city: City, | |
| state: State, | |
| addressLineOne: Street1, |
| function sharpen(ctx, w, h, mix) { | |
| var x, sx, sy, r, g, b, a, dstOff, srcOff, wt, cx, cy, scy, scx, | |
| weights = [0, -1, 0, -1, 5, -1, 0, -1, 0], | |
| katet = Math.round(Math.sqrt(weights.length)), | |
| half = (katet * 0.5) | 0, | |
| dstData = ctx.createImageData(w, h), | |
| dstBuff = dstData.data, | |
| srcBuff = ctx.getImageData(0, 0, w, h).data, | |
| y = h; |
| var Fn = { | |
| // Valida el rut con su cadena completa "XXXXXXXX-X" | |
| validaRut : function (rutCompleto) { | |
| if (!/^[0-9]+[-|‐]{1}[0-9kK]{1}$/.test( rutCompleto )) | |
| return false; | |
| var tmp = rutCompleto.split('-'); | |
| var digv = tmp[1]; | |
| var rut = tmp[0]; | |
| if ( digv == 'K' ) digv = 'k' ; | |
| return (Fn.dv(rut) == digv ); |
All of the below properties or methods, when requested/called in JavaScript, will trigger the browser to synchronously calculate the style and layout*. This is also called reflow or layout thrashing, and is common performance bottleneck.
Generally, all APIs that synchronously provide layout metrics will trigger forced reflow / layout. Read on for additional cases and details.
elem.offsetLeft, elem.offsetTop, elem.offsetWidth, elem.offsetHeight, elem.offsetParentOne file for each domain, both www.example.com and example.com need separate files:
{
"applinks": {
"apps": [],
"details": {
"9JA89QQLNQ.com.apple.wwdc": {