Skip to content

Instantly share code, notes, and snippets.

View optozorax's full-sized avatar

ilya sheprut optozorax

View GitHub Profile
@optozorax
optozorax / random.cpp
Last active January 12, 2019 12:54
random by mt19937
#include <random>
double random(void) {
static std::mt19937 generator(time(0));
static std::uniform_real_distribution<double> distribution(0, 1);
return distribution(generator);
}
@optozorax
optozorax / genetic_algorithm.cpp
Last active June 18, 2019 16:20
Genetic algorithm without crossover to solve travelling salesman problem
// https://www.youtube.com/watch?v=XP8R0yzAbdo
// CROSSOVER IS OVERRATED, I USED ONLY 1 MUTATION PER CHILDREN TO GET BEST RESULT ON CIRCLE GRAPH
#define _USE_MATH_DEFINES
#include <vector>
#include <random>
#include <algorithm>
#include <cmath>
#include <iostream>
@optozorax
optozorax / level_keys.md
Last active August 17, 2019 15:33
Концепция клавиш разного уровня

Итак, введём новые клавиши, под кодовым названием: lv буква, lv слово, lv строка, lv вкладка, lv окно, lv экран.

Эти клавиши означают что действие будет применяться к конкретному уровню, например, если нажать lv буква + Left, то курсор подвинется на одну букву влево, если же нажать lv окно + Left, то фокус переключится на окно слева в списке открытых окон.

Распишу некоторые интересные использования этих клавиш в комбинации с другими:

Действие lv буква lv слово lv строка lv вкладка lv окно lv экран
Стрелки вправо-влево Left, Right Ctrl+Left, Right Home, End Ctrl+Tab, Ctrl+Shift+Tab (Переключение на правую-левую вкладку относительно текущей) Переключение на левое-право окно относительно текущего в списке приложений Переключение фокуса на правый-левый экран
@optozorax
optozorax / common.h
Created August 25, 2019 11:39
Использование std::funciton для QMK
inline void press_key(int key, std::function<void()> f = [](){}) {
register_code(key);
f();
unregister_code(key);
}
@optozorax
optozorax / REAME.md
Last active August 27, 2019 09:06
Очередная шутка про говно
Курить посреди улицы Пердеть посреди улицы
Портишь воздух
Длительность Минуты Секунды
Наркотическая зависимость
Риск развития рака лёгких
Риск пожара
Общественное порицание

КАКОГО ЧЁРТА???

@optozorax
optozorax / each_key_is_function.cpp
Created August 31, 2019 16:05
Каждая клавиша - функция. Идея паттерна для программируемых клавиатур
/** Идея для программируемых клавиатур, когда каждая клавиша - функция.
В чатике много шутили, типо: давайте сделаем каждую клавишу - процессом)))000)), а давайте http-сервером)))00)). Так вот, эта идея является серьезной реализацией этих шуток, причём это даже может быть удобно.
*/
typedef std::function<void()> Key;
//----------------------------------------------------------------------------
// Стандартные клавиши
Key KC_NULL = [](){};
Key KC_0 = [](){
@optozorax
optozorax / main.rs
Created September 14, 2019 16:54
For with first and last element in Rust
trait Boundarized {
fn boundarize(self) -> Tripled<Self>;
}
struct Tripled<I> {
iter: I,
next: I,
}
impl<T> Boundarized for Iterator<Item = T> {
@optozorax
optozorax / README.md
Last active July 24, 2021 15:24
Style for kladenets
@optozorax
optozorax / tampermonkey.js
Created November 6, 2019 10:03
Автоматическое переключение языка для klava.org
// ==UserScript==
// @name Автоматическое переключение языка для раскладки ergozorax
// @version 0.1
// @description Для набора текстов со смешанным языком, чтобы не тратить мыслетопливо на переключение языка.
// @author optozorax
// @match https://klava.org/keyboard*
// @grant none
// ==/UserScript==
(function() {
@optozorax
optozorax / genetic_alg.rs
Last active February 23, 2020 07:19
genetic_alg.rs
/*
Что это такое? Читай начиная с https://t.me/optozorax_dev/46
*/
use enigo::*;
use spiril::unit::Unit;
use spiril::population::Population;
use rand::{thread_rng, Rng};
use std::process::{Command, Stdio};