Skip to content

Instantly share code, notes, and snippets.

@ruslanys
ruslanys / text.md
Created June 19, 2025 14:17 — forked from Akiyamov/text.md
Установка Xray, VLESS + Reality со своим доменом с помощью Caddy. Steal oneself

Обновленный гайд

В данном гайде будет рассмотрена установка прокси-сервера XRay и Caddy для маскировки под свой сайт со своим доменом. Если вы попали на эту статью не из репозитория скрипта, то вы всегда можете перейти в него по этой ссылке.
Гайд сделан для Ubuntu и Debian.

Домен

Для установки потребуется свой домен, лучше покупать не .ru и .рф, так как для них требуется паспорт.
После покупки домена советую перенести его на Cloudflare ради удобства. Как это сделать можно посмотреть здесь.
Добавьте A-запись, которая указывает на ваш виртуальный сервер, выключив при этом проксирование от Cloudflare, CDN нам не нужен. Если вы не понимаете как это сделать, то можете посмотреть это здесь.
Если вы купили домен, который исползьует punycode, например, в зоне .рф, то стоит сразу перевести

@ruslanys
ruslanys / zendesk_backup.py
Last active June 14, 2022 19:27
Python script to fetch Zendesk Knowledgebase + Download Images
import csv
import datetime
import mimetypes
import os
import re
import requests
credentials = '{your_zendesk_email}', '{your_zendesk_password}'
session = requests.Session()
@ruslanys
ruslanys / change_primary_key.md
Created December 4, 2020 11:08 — forked from scaryguy/change_primary_key.md
How to change PRIMARY KEY of an existing PostgreSQL table?
-- Firstly, remove PRIMARY KEY attribute of former PRIMARY KEY
ALTER TABLE <table_name> DROP CONSTRAINT <table_name>_pkey;
-- Then change column name of  your PRIMARY KEY and PRIMARY KEY candidates properly.
ALTER TABLE <table_name> RENAME COLUMN <primary_key_candidate> TO id;
@ruslanys
ruslanys / register Hibernate EventListener in Spring.md
Created October 6, 2020 11:03 — forked from kekru/register Hibernate EventListener in Spring.md
Register a Hibernate Envers EventListener in Spring Boot (Hibernate 4, Hibernate 5)

Hibernate 4 introduced a new Audit API for event listening.
org.hibernate.envers.event.AuditEventListener was replaced by org.hibernate.event.spi.*, for example org.hibernate.event.spi.PostDeleteEventListener.

First create your custom listener. Example: You want do disable auditing for delete operations.

import org.hibernate.envers.event.spi.EnversPostDeleteEventListenerImpl;
import org.hibernate.event.spi.PostDeleteEvent;

public class MyAuditListener extends EnversPostDeleteEventListenerImpl {
@ruslanys
ruslanys / postgres_queries_and_commands.sql
Last active August 19, 2020 14:36 — forked from rgreenjr/postgres_queries_and_commands.sql
Useful PostgreSQL Queries and Commands
-- show tuples
SELECT
relname AS ObjectName
,pg_stat_get_live_tuples(c.oid) AS LiveTuples
,pg_stat_get_dead_tuples(c.oid) AS DeadTuples
FROM pg_class c;
-- show running queries (pre 9.2)
SELECT procpid, age(clock_timestamp(), query_start), usename, current_query
FROM pg_stat_activity

Keybase proof

I hereby claim:

  • I am ruslanys on github.
  • I am ruslanys (https://keybase.io/ruslanys) on keybase.
  • I have a public key whose fingerprint is 5E74 CC87 539D 32A4 0A7A 487D CD8C 59CF F76F EBBF

To claim this, I am signing this object:

@ruslanys
ruslanys / wkhtmltopdf.sh
Created December 4, 2019 16:55 — forked from Rajeshr34/wkhtmltopdf.sh
Wkhtmltopdf With Patched QT Setup Ubuntu 16+
cd ~
apt-get install libfontenc1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils openssl build-essential libssl-dev libxrender-dev git-core libx11-dev libxext-dev libfontconfig1-dev libfreetype6-dev fontconfig -y
#https://github.com/wkhtmltopdf/wkhtmltopdf/releases
#replace arch
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb
dpkg -i wkhtmltox_0.12.5-1.bionic_amd64.deb
apt --fix-broken install
@ruslanys
ruslanys / latency.markdown
Created November 11, 2019 11:12 — forked from hellerbarde/latency.markdown
Latency numbers every programmer should know

Latency numbers every programmer should know

L1 cache reference ......................... 0.5 ns
Branch mispredict ............................ 5 ns
L2 cache reference ........................... 7 ns
Mutex lock/unlock ........................... 25 ns
Main memory reference ...................... 100 ns             
Compress 1K bytes with Zippy ............. 3,000 ns  =   3 µs
Send 2K bytes over 1 Gbps network ....... 20,000 ns  =  20 µs
SSD random read ........................ 150,000 ns  = 150 µs

Read 1 MB sequentially from memory ..... 250,000 ns = 250 µs

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
public class UniqueWords {
#!/usr/bin/env node
var fs = require('fs');
// arg
const filePath = process.argv[2];
// read file
let content = fs.readFileSync(filePath, 'utf8');