Skip to content

Instantly share code, notes, and snippets.

@Mobelis
Mobelis / machine.js
Created October 16, 2020 06:47
Generated by XState Viz: https://xstate.js.org/viz
const fetchMachine = Machine({
id: 'fetch',
initial: 'CLOSED',
context: {
retries: 0
},
states: {
CLOSED: {
on: {
APP_PASSIVE_OPEN: 'LISTEN',
@Mobelis
Mobelis / HighMiddle примеры рекомендованных знаний.md Рекомендованные знания для React разработчика high middle

Рекомендованные знания для React разработчика high middle

React

  • Варианты создания компонента (pureFunction, class, createElement)
  • pureRender - знания принципа ререндера Реакт приложений при изменениях хранилищ, какие props приводят к неоправданному перерендеру, кеширование результатов функций
  • Контейнер - его назначение, основные задачи, типовая структура
  • Глупый компонент - его назначение, основные задачи, принцип разбиения на компоненты, функции
  • React router - как создавать синхронный, асинхронный роутер, как отложить рендер компонента в Route на время загрузки, как работает функция match, как считывать параметры url ?q=1, #q=1 как их устанавливать при .
  • Последовательность DOM render, последовательность вызова всех функций компонента, например componentDidMount, componentWillMount, componentWillReceiveProps и всех остальных. Как использовать ref, в какой момент он вызывается.
@Mobelis
Mobelis / letsencrypt_2018.md
Created September 12, 2018 20:25 — forked from cecilemuller/letsencrypt_2020.md
How to setup Let's Encrypt for Nginx on Ubuntu 18.04 (including IPv6, HTTP/2 and A+ SSL rating)

How to setup Let's Encrypt for Nginx on Ubuntu 18.04 (including IPv6, HTTP/2 and A+ SLL rating)


Virtual hosts

Let's say you want to host domains first.com and second.com.

Create folders for their files:

let BitMessage = require("bitcoinjs-message");
var address = '1HZwkjkeaoZfTSaJxDw6aKkxp45agDiEzN'
var signature = 'HJLQlDWLyb1Ef8bQKEISzFbDAKctIlaqOpGbrk3YVtRsjmC61lpE5ErkPRUFtDKtx98vHFGUWlFhsh3DiW6N0rE'
var message = 'This is an example of a signed message'
function checkSignature(message, address, signature) {
return new Promise((resolve,reject) => {
let result = BitMessage.verify(message, address, signature);
if(result) {
@Mobelis
Mobelis / KrakenPriceTicker.sol
Created January 11, 2018 00:43 — forked from anonymous/KrakenPriceTicker.sol
Created using browser-solidity: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://ethereum.github.io/browser-solidity/#version=soljson-v0.4.4+commit.4633f3de.js&optimize=undefined&gist=
/*
Kraken-based ETH/XBT price ticker
This contract keeps in storage an updated ETH/XBT price,
which is updated every ~60 seconds.
*/
pragma solidity ^0.4.0;
import "github.com/oraclize/ethereum-api/oraclizeAPI.sol";
0x700F0094ef21Ad35EeE47117b46fBd1D52A215Ef