Skip to content

Instantly share code, notes, and snippets.

Avatar

Dmitrii 'Mamut' Dimandt dmitriid

View GitHub Profile
View gist:f64fa7c3a6000e0170a9d911445bc1f3
scheme:[//[user:password@]host[:port]][/]path[?query][#fragment]
(file|ftp|https|http|irc|mailto):\/\/((\w+(:\w+)?@)?\w(\w\.?)*(:\d{1,5})?\/?)?(\w(\w+\/)*)?(#\w+)?
---
scheme = (file|ftp|https|http|irc|mailto):\/\/
optional username followed by optional :password. Username and password ar alphanumeric
|
View clipboard.ts
const setUpClipboardHandler = (el) => {
let hasFiles = false;
let counter = 0;
const upload = (fileOrFiles) => {
let fileInput = null;
if (el.dataset.chunkId) {
fileInput = document.querySelector(`form[data-chunk-id="${el.dataset.chunkId}"] input[type="file"]`);
} else {
View a.txt
День уже почти прошел)) предлагаю сделать описание своего дня так, как это делал Лев Толстой 🤓😎🤪
Для начала прошу ознакомиться.
Из дневников Льва Толстого:
«1890 год, 4 июля. Встал поздно. Пью лишний кумыс».
«1889 год, 28 февраля. Встал рано, убрал комнату, записал, иду кофе пить. Объелся кофеем».
«1889 год, 14 ноября. Пошел работать и зашиб глаз».
«1889 год, 11 февраля. Пытался писать, не шло. Пошел в метель ходить».
«1889 год, 13, 14, 15, 16, 17 декабря. Утром хотел писать, но не очень и потому шил сапоги».
«1888 год, 5 декабря. Преступно спал».
«1884 год, 3 сентября. Ходил за грибами. Тосковал. Шил».
View mime
Delivered-To: <REDACTED>.com
Received: by 2002:a05:6214:82:0:0:0:0 with SMTP id n2csp3710665qvr;
Mon, 26 Nov 2018 09:51:22 -0800 (PST)
X-Google-Smtp-Source: AFSGD/VlrgF1kE9G29pn7VPXh6j+bRuznCSJ5cUlVYtXWykQFqK55qck9nUj3/wC2ImnipF6Znw3
X-Received: by 2002:a25:d44:: with SMTP id 65-v6mr28645754ybn.134.1543254682839;
Mon, 26 Nov 2018 09:51:22 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; t=1543254682; cv=none;
d=google.com; s=arc-20160816;
b=kW2ozdsD7cDrF04BZ6k3mA50xcBqx5dnmsnjQHDmmQFjmC5BffeZ1/XdYc9HocxsIq
3/g5C5NQogthzBvLmNBF05OAuI3R5nzseoPEMnIUAATqfkDSkNiq3yPO5gq7+VaLs4UF
View docker-compose.yml
version: '3'
networks:
gaia:
driver: bridge
services:
# gaia-postgres:
# container_name: gaia-postgres
# image: postgres:latest
View angular.md

There's nothing great or particularly amazing about Angular and its build processes.

Everything Angular does is fighting against its own architectural decisions. On a high level it's like this:

  • We write in Typescript, we need to compile to Javascript
  • Typescript cannot compile our templates because they are custom templates
  • We need to compile templates
  • Typescript compiler barfs at some of our code, we need to fix the code, or the compiler, or both, or hack in between them
  • The resulting Javascript is hundreds of kilobytes larger than any competition.
  • We need to somehow reduce the size
View webpack.config.js
module.exports = {
devtool: 'source-map',
entry: ['./src/index.tsx'],
output: {
filename: 'bundle.js',
path: __dirname + '/dist/'
},
module: {
rules: [
{
View webpack.config.js
/*
* TypeScript runs separately, not through loader, and outputs compiled files to
* .build_cache
*/
var path = require('path')
var webpack = require('webpack')
var HtmlWebpackPlugin = require('html-webpack-plugin')
var InlineManifestWebpackPlugin = require('inline-manifest-webpack-plugin')
View defer.ts
let deferreds = {} as { [key : string] : any[] }
let deferred_timers = {} as { [key : string] : number }
/*
* If you're waiting wor a `window.something`, and are not sure when it
* will appear (for example, you defer async load it), you can do the following:
*
* defer('something', (something) => ...)
*
* You can also check nested props:
View vnode.re
type any = Js.t {.};
type key =
| String string
| Int int;
type hero = {id: string};
type attach_data = Js.t {. placeholder : option any, real : option string}; /* TODO */