Skip to content

Instantly share code, notes, and snippets.

View FlyInk13's full-sized avatar
🌚
Может поработаете?

Evgenii Kotliarov FlyInk13

🌚
Может поработаете?
View GitHub Profile
import { useEffect, useState } from "react";
type VisualViewportData = {
visualHeight: number,
windowHeight: number,
};
export const useViewportHeight = (): VisualViewportData => {
const [data, setData] = useState<VisualViewportData>({
visualHeight: 0,
@FlyInk13
FlyInk13 / react-ssh-tunnel.md
Created October 3, 2022 16:50
Открываем локальный проект на своем сервере без передачи кода, посредством ssh туннеля.
  • Арендуем сервер и привязываем к нему сайт через dns, либо используем домен предоставляемый хостингом.
  • Для примера представим что наш сайт example.com ведет на этот сервер.
  • Запускаем команду, которая прокидывает ssh туннель до сервера
ssh -R 127.0.0.1:8080:127.0.0.1:3000 -N -f username@example.com

# Описание аргументов:
# -R [bind_address:]port:host:hostport - Прокидывает локальный порт на удаленный сервер
# 3000 - Порт на котором висит локально работающий проект
# 8080 - Порт на котором мы хотим видеть проект на сервере, в целом можно указать 80, если ничего на нем нет и есть домен от хостинга.
@FlyInk13
FlyInk13 / proxy.js
Created August 10, 2022 19:28
simple node js proxy
/* jshint esversion: 6 */
let http = require('http'),
net = require('net'),
url = require('url'),
settings = {
port: 8081,
username: "username",
password: "password"
};
@FlyInk13
FlyInk13 / app.yaml
Last active November 23, 2021 17:13
Example k8s config with ingress
# export KUBECONFIG=~/.kube/kubeconfig.yaml
# kubectl apply -f app.yaml
# Deployment: app1-pods - cluster backend app
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: basic-server-image
spec:
replicas: 1
@FlyInk13
FlyInk13 / LifeGame.js
Last active June 14, 2021 12:59
Conway's Game of Life using vanilla JavaScript
let size = 20;
let border = 1;
let pause = true;
let sizeX = 0;
let sizeY = 0;
let cursor = [0, 0];
let map = [];
let ctx;
function updateBlock(map, x, y) {
@FlyInk13
FlyInk13 / App.jsx
Last active April 30, 2020 23:27
vk api without vk-bridge (with jsonp)
class App extends React.Component {
constructor(props) {
super(props);
this.state = {};
this.api = new PromiseAPI();
this.api.view = this;
// vk brirge
this.api.access_token = 'vk bridge token';
// call
@FlyInk13
FlyInk13 / React-Userscript.user.js
Last active April 12, 2021 13:11
Пример пользовательского скрипта с React
// ==UserScript==
// @name React Userscript
// @namespace http://tampermonkey.net/
// @version 0.1
// @description shows how to use babel compiler
// @author You
// @require https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.18.2/babel.js
// @require https://cdnjs.cloudflare.com/ajax/libs/babel-polyfill/6.16.0/polyfill.js
// @require https://unpkg.com/react@16/umd/react.development.js
// @require https://unpkg.com/react-dom@16/umd/react-dom.development.js
const url = require('url');
const http = require('http');
function getBody(req, res) {
return new Promise(function inPromise(resolve, reject) {
if (req.method !== "POST") {
resolve();
}
res.body = '';
const {createHmac} = require('crypto');
const querystring = require('querystring');
const sha256 = (string, pwd) => createHmac('sha256', pwd).update(string).digest('base64');
function checkSign(url, clientSecret) {
const parsedSearch = querystring.parse(url);
const checkSumRaw = Object
.keys(parsedSearch)
.filter((key) => /^vk_/.test(key))
@FlyInk13
FlyInk13 / snake.js
Last active March 25, 2021 13:29
Отрисовка змейки на node/canvas и стриминг ВКонтакте через ffmpeg. (Для запуска нужен токен VK Live https://vk.cc/6njXbx)
const https = require('https');
const fs = require('fs');
const { spawn } = require('child_process');
const { Image, createCanvas } = require('canvas');
const VK = require('VK-Promise');
const canvas = new createCanvas(1280, 720);
const streamer = VK(""); // https://vk.cc/6njXbx
const request = streamer.request;
const ctx = canvas.getContext('2d');
const fps = 30;