Skip to content

Instantly share code, notes, and snippets.

@ArtemGr
ArtemGr / mac-port-forwarding-fails.txt
Created February 17, 2020 21:55
mac-port-forwarding-fails.txt
administrator@macinvalut:~$ docker stop komodo-dex
komodo-dex
administrator@macinvalut:~$ docker run -d --rm -p 14868:14868 -p 14869:14869 --name komodo-dex komodo-dex
479ca54e6d7c2a6d53cab4823b47c44ba5bd1cb712cfd4bed8b5cb79cccf96e6
administrator@macinvalut:~$ docker logs komodo-dex
ASSETCHAINS_SUPPLY 999999
MAX_MONEY 100006220417438 1000062.20417438
>>>>>>>>>> DEXP2P: p2p.14868 rpc.14869 magic.6378a12f 1668849967 999999 coins
call komodo_args.(komodod) NOTARY_PUBKEY.()
nMaxConnections 384
@ArtemGr
ArtemGr / keybase.md
Created February 13, 2020 08:56
keybase.md

Keybase proof

I hereby claim:

  • I am artemgr on github.
  • I am artemciy (https://keybase.io/artemciy) on keybase.
  • I have a public key ASCUwRz1jGzzJ5ZZsUS6-rRSQSqBmYnZ77If1bdOyBWnfAo

To claim this, I am signing this object:

@ArtemGr
ArtemGr / druidstone-ch.ahk
Last active December 25, 2019 16:56
Example automating the Cheat Happens editor with AutoHotkey
#If WinActive("Druidstone")
q::
MouseGetPos, mouseStartX, mouseStartY
if WinExist("Cheat Happens Trainer") {
WinActivate
WinMove, 600, 111
MouseMove, 210, 180, 5
MouseClick, Left
MouseMove, 900, 320, 5
@ArtemGr
ArtemGr / main.dart
Created December 11, 2019 05:25
stackoverflow-33424185-2
// https://stackoverflow.com/questions/33424185/why-are-incorrect-type-assignments-allowed-in-dart
void main() {
Map<String, dynamic> map = {
'str': 'test',
'integer': 5,
'decimal': 1.5,
'list': [1,2,3]
};
@ArtemGr
ArtemGr / main.dart
Created December 11, 2019 05:18
stackoverflow-33424185-1
// https://stackoverflow.com/questions/33424185/why-are-incorrect-type-assignments-allowed-in-dart
void main() {
String str = "test";
int integer = 5;
double decimal = 1.5;
List list = [1,2,3];
String s = decimal; print(s); // 1.5
int i = str; print(i); // test
@ArtemGr
ArtemGr / pin-pepper.md
Last active June 19, 2019 14:31
PIN pepper

We need a second device to enforce the time limits

Password security relies to a large degree on the time limits imposed upon password verification.

That is, if I can verify three passwords per minute then guessing an alphanumeric password of eight characters might take approximately Math.pow (36, 8) / 2 / (86400 / 20) / 365 = 2236 years, but if I can verify three million passwords per second then guessing the same password might take Math.pow (36, 8) / 2 / (86400 * 3000000) = 5 days.

If we limit a PIN to be verified no more than three times per ten minutes

@ArtemGr
ArtemGr / Cargo.toml
Last active January 28, 2018 12:08
Inline hex escape
[package]
name = "hex"
version = "0.1.0"
[dependencies]
fomat-macros = "*"
@ArtemGr
ArtemGr / map_bench.rs
Last active June 5, 2020 15:13
small strings map benchmark
// [build] cd .. && cargo bench
#![feature(asm, test)]
extern crate inlinable_string;
extern crate ordermap;
extern crate seahash;
extern crate test;
use inlinable_string::{InlinableString, StringExt};
@ArtemGr
ArtemGr / verify.rs
Created February 25, 2017 19:26
Using OpenSSL to verify the JWT RS256 signature in Rust.
use openssl::sign::Verifier;
use openssl::rsa::Rsa;
use openssl::pkey::PKey;
use openssl::hash::MessageDigest;
use serde_json::{self as json, Value as Json};
pub fn firebase_id_token (headers: BTreeMap<&str, &str>, mut stream: &mut BufStream<TcpStream>) -> Result<(), String> {
#[derive(Deserialize, Debug)]
struct Post {firebase_id_token: String}
@ArtemGr
ArtemGr / cmake.rs
Last active October 7, 2016 12:47
cmake.rs - Use a proper generator under CLion
// [build] rustc -O cmake.rs
// cf. https://youtrack.jetbrains.com/issue/CPP-188#comment=27-899992
use std::env::args;
use std::fs::OpenOptions;
use std::io::Write;
use std::path::Path;
use std::process::Command;
fn main() {