Skip to content

Instantly share code, notes, and snippets.

View intech's full-sized avatar
🌍
The idea is not to live forever, it is to create something that will

Ivan Zhuravlev intech

🌍
The idea is not to live forever, it is to create something that will
View GitHub Profile
#!/bin/bash
useradd -m -d /home/$USER -s /bin/bash $USER
sudo -u$USER mkdir -p /home/$USER/.ssh
chmod 700 /home/$USER/.ssh
sudo -u$USER touch /home/$USER/.ssh/authorized_keys
chmod 600 /home/$USER/.ssh/authorized_keys
# Docker
usermod -aG docker $USER
@intech
intech / broker.js
Last active September 8, 2021 07:22
// broker.js
"use strict";
const { ServiceBroker } = require("moleculer");
const Sequelize = require("./middlewares/sequelize");
const broker = new ServiceBroker({
middlewares: [Sequelize()]
});
broker.createService({
name: "service",
for i in $(seq 1 3);
do
docker-compose pull roach$i
docker-compose exec roach$i /cockroach/cockroach quit --insecure
docker-compose up -d --build roach$i
done
require("http").request({host:"localhost",port:80,timeout:2000},res=>process.exit(res.statusCode!==200)).on("error",()=>process.exit(1));
#!/bin/sh -e
if [ $# != 3 ]
then
echo "usage: $0 <src-port> <dst-host> <dst-port>"
exit 0
fi
TMP=`mktemp -d`
PIPE=$TMP/pipe
@intech
intech / test.md
Last active October 10, 2021 03:12
Random string/uuid/id/etc

Unique hex-string (time+random) with fixed length 11:

(Math.round(Math.random() * 0x10000) + Date.now()).toString(16)
// 16c8e982dcd
// 16c95dc3c76
// 16cb7307195

Unique string (time+random) with fixed length 8:

Networking-streams

servers and clients

Any networked computer can be a server Any networked computer can be a client

Package a put in a little pieces.

tc vs udp

TCP - reliable transport: has ACK

β–ˆβ–ˆβ–ˆβ•—   β–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—     β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•—   β–ˆβ–ˆβ•—β–ˆβ–ˆβ•—     β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
β–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—
β–ˆβ–ˆβ•”β–ˆβ–ˆβ–ˆβ–ˆβ•”β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•
β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•”β•β•β•  β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•”β•β•β•  β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—
β–ˆβ–ˆβ•‘ β•šβ•β• β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘
β•šβ•β•     β•šβ•β• β•šβ•β•β•β•β•β• β•šβ•β•β•β•β•β•β•β•šβ•β•β•β•β•β•β• β•šβ•β•β•β•β•β• β•šβ•β•β•β•β•β• β•šβ•β•β•β•β•β•β•β•šβ•β•β•β•β•β•β•β•šβ•β•  β•šβ•β•

leveldb

am e,bedded key/value database. Is good to be a modular database. If you wanna run applications on browser as well as in node.

its embedded it is in the same process. It lives in the program. It was built for chrome.

install

Since leveldb is a standalone database, you can install it with npm:

describe("Test route.path and aliases", () => {
let broker;
let app;
let service;
let nextHandler = jest.fn((req, res) => res.sendStatus(200));
beforeAll(() => {
broker = new ServiceBroker({ logger: false });