Skip to content

Instantly share code, notes, and snippets.

@idudinov
idudinov / prerenderPlugin.js
Last active Jun 16, 2021
PrerenderPlugin for HtmlWebpackPlugin – Pre-renders html during Webpack build phase
View prerenderPlugin.js
const HtmlWebpackPlugin = require('html-webpack-plugin');
const jsdom = require('jsdom');
/** @typedef {import("webpack/lib/Compiler.js")} WebpackCompiler */
/** @typedef {import("webpack/lib/Compilation.js")} WebpackCompilation */
/** @typedef {(import 'jsdom').ResourceLoaderConstructorOptions} ResourceLoaderConstructorOptions */
class PrerenderHtmlPlugin {
constructor(options) {
this._options = options || { };
View Infrastructure.js
let cache = new Map();
let pending = new Map();
function fetchTextSync(url) {
if (cache.has(url)) {
return cache.get(url);
}
if (pending.has(url)) {
throw pending.get(url);
}
@tcnksm
tcnksm / NOTE.md
Last active Dec 14, 2021
Small note of gRPC Best Practice @ CoreOSFest 2017
View NOTE.md
View PDO FETCH_ASSOC vs PDO FETCH_FUNC
PDO::FETCH_FUNC without validation
10: 0.001568078994751
0.00071001052856445
0.00085306167602539
0.00087618827819824
0.00083112716674805
100: 0.0012631416320801
0.0014598369598389
@CMCDragonkai
CMCDragonkai / flock_timeout.php
Last active Sep 23, 2021
PHP: Simulating Lock Timeout with PHP's Flock
View flock_timeout.php
<?php
/**
* Acquires a lock using flock, provide it a file stream, the
* lock type, a timeout in microseconds, and a sleep_by in microseconds.
* PHP's flock does not currently have a timeout or queuing mechanism.
* So we have to hack a optimistic method of continuously sleeping
* and retrying to acquire the lock until we reach a timeout.
* Doing this in microseconds is a good idea, as seconds are too
* granular and can allow a new thread to cheat the queue.
View chromium-os-docker.md
View ConfigController.php
<?php
class ConfigController {
const MODEL = 'App\Models\Config';
// see RestControllerTrait. sends less data on indexing the list of the model
// protected $indexFields = [ 'name' ];
protected $triggers = [
// 'show' => 'extendObject',
// 'update' => 'dataFormatFix',
View RFC 3339 regex
^([0-9]+)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])[Tt]([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\.[0-9]+)?(([Zz])|([\+|\-]([01][0-9]|2[0-3]):[0-5][0-9]))$
@JamesMessinger
JamesMessinger / circular-refs.js
Created Jul 16, 2015
JSON Schema Circular $Refs
View circular-refs.js
{
"definitions": {
"thing": {
"$ref": "#/definitions/thing" // circular reference to self
},
"person": {
"properties": {
"name": {
"type": "string"
},
@CMCDragonkai
CMCDragonkai / http_streaming.md
Last active Jan 8, 2022
HTTP Streaming (or Chunked vs Store & Forward)
View http_streaming.md

HTTP Streaming (or Chunked vs Store & Forward)

The standard way of understanding the HTTP protocol is via the request reply pattern. Each HTTP transaction consists of a finitely bounded HTTP request and a finitely bounded HTTP response.

However it's also possible for both parts of an HTTP 1.1 transaction to stream their possibly infinitely bounded data. The advantages is that the sender can send data that is beyond the sender's memory limit, and the receiver can act on